데이터 액세스 정책을 사용하여 역할 기반 액세스 제어 구성
올바른 사용자가 올바른 데이터 및 명령 집합에 액세스할 수 있도록 하려면 Azure Cache for Redis 인스턴스에 대한 액세스 관리가 중요합니다. Redis 버전 6에서는 ACL(액세스 제어 목록)이 도입되었습니다. ACL은 특정 명령을 실행할 수 있는 사용자와 사용자가 액세스할 수 있는 키를 제한합니다. 예를 들어 특정 사용자가 DEL 명령을 사용하여 캐시의 키를 삭제하지 못하도록 금지할 수 있습니다.
이제 Azure Cache for Redis는 이 ACL 기능을 Microsoft Entra ID와 통합하여 애플리케이션의 서비스 주체 및 관리 ID에 대한 데이터 액세스 정책을 구성할 수 있습니다.
Azure Cache for Redis는 데이터 소유자, 데이터 기여자 및 데이터 읽기 권한자라는 세 가지 기본 제공 액세스 정책을 제공합니다. 기본 제공 액세스 정책이 데이터 보호 및 격리 요구 사항을 충족하지 않는 경우, 사용자 지정 데이터 액세스 정책 구성에 설명된 대로 고유한 사용자 지정 데이터 액세스 정책을 만들고 사용할 수 있습니다.
가용성 범위
계층 | Basic, Standard, Premium | Enterprise, Enterprise Flash |
---|---|---|
가용성 | 예 | 아니요 |
필수 구성 요소 및 제한 사항
- Redis ACL 및 데이터 액세스 정책은 Redis 버전 4를 실행하는 Azure Cache for Redis 인스턴스에서 지원되지 않습니다.
- Microsoft Entra 인증 및 권한 부여는 SSL 연결에 대해서만 지원됩니다.
- 일부 Redis 명령은 차단됩니다.
데이터 액세스 정책에 대한 사용 권한
Redis 액세스 제어 목록에 설명된 대로 Redis 버전 6.0의 ACL을 사용하면 다음 세 영역에 대한 액세스 권한을 구성할 수 있습니다.
명령 범주
Redis에서는 명령 그룹에 대한 사용 권한을 더 쉽게 설정할 수 있도록 관리 명령, 위험한 명령 등과 같은 명령 그룹을 만들었습니다.
+@commandcategory
를 사용하여 명령 범주 허용-@commandcategory
를 사용하여 명령 범주 허용 안 함
이러한 명령은 여전히 차단됩니다. 다음 그룹은 Redis에서 지원하는 유용한 명령 범주입니다. 명령 범주에 대한 자세한 내용은 명령 범주 제목 아래의 전체 목록을 참조하세요.
admin
- 관리 명령. 일반 애플리케이션은 이러한 명령(예:
MONITOR
,SHUTDOWN
및 기타 등등)을 사용할 필요가 없습니다.
- 관리 명령. 일반 애플리케이션은 이러한 명령(예:
dangerous
- 잠재적으로 위험한 명령. 각 명령은
FLUSHALL
,RESTORE
,SORT
,KEYS
,CLIENT
,DEBUG
,INFO
,CONFIG
등과 같은 다양한 이유로 주의하여 고려해야 합니다.
- 잠재적으로 위험한 명령. 각 명령은
keyspace
DEL
,RESTORE
,DUMP
,RENAME
,EXISTS
,DBSIZE
,KEYS
,EXPIRE
,TTL
,FLUSHALL
등과 같은 형식에 관계없이 키, 데이터베이스 또는 해당 메타데이터를 작성하거나 읽습니다. 키스페이스, 키 또는 메타데이터를 수정할 수 있는 명령에는 쓰기 범주도 있습니다. 키스페이스, 키 또는 메타데이터를 읽기만 하는 명령에는 읽기 범주가 있습니다.
pubsub
- PubSub 관련 명령.
read
- 키, 값 또는 메타데이터에서 읽습니다. 키와 상호 작용하지 않는 명령에는 읽기 또는 쓰기가 없습니다.
set
- 데이터 형식: 집합 관련.
sortedset
- 데이터 형식: 정렬된 집합 관련.
stream
- 데이터 형식: 스트림 관련.
string
- 데이터 형식: 문자열 관련.
write
- 키에 쓰기(값 또는 메타데이터).
명령
명령을 사용하면 특정 Redis 사용자가 실행할 수 있는 특정 명령을 제어할 수 있습니다.
- 명령을 허용하려면
+command
를 사용합니다. - 명령을 허용하지 않으려면
-command
를 사용합니다.
구성
키를 사용하면 캐시에 저장된 특정 키 또는 키 그룹에 대한 액세스를 제어할 수 있습니다.
키에 대한 패턴을 제공하려면
~<pattern>
을 사용합니다.~*
또는allkeys
를 사용하여 명령 범주 권한이 캐시 인스턴스의 모든 키에 적용되도록 나타냅니다.
사용 권한을 지정하는 방법
사용 권한을 지정하려면 사용자 지정 액세스 정책으로 저장할 문자열을 만든 다음, Azure Cache for Redis 사용자에게 문자열을 할당해야 합니다.
다음 목록에는 다양한 시나리오의 사용 권한 문자열에 대한 몇 가지 예제가 포함되어 있습니다.
애플리케이션에서 모든 키에 대해 모든 명령을 실행하도록 허용
사용 권한 문자열:
+@all allkeys
애플리케이션에서 읽기 명령만 실행하도록 허용
사용 권한 문자열:
+@read ~*
애플리케이션이 읽기 명령 범주를 실행하고 접두사
Az
를 사용하여 키에 명령을 설정하도록 허용합니다.사용 권한 문자열:
+@read +set ~Az*
애플리케이션에 대한 사용자 지정 데이터 액세스 정책 구성
Azure Portal에서 Microsoft Entra 토큰 기반 인증을 구성하려는 Azure Cache for Redis 인스턴스를 선택합니다.
리소스 메뉴에서 데이터 액세스 구성을 선택합니다.
추가를 선택하고 새 액세스 정책을 선택합니다.
액세스 정책의 이름을 제공합니다.
요구 사항에 따라 사용 권한을 구성합니다.
Microsoft Entra ID를 사용하여 액세스 정책에 사용자를 추가하려면 먼저 리소스 메뉴에서 인증을 선택하여 Microsoft Entra ID를 사용하도록 설정해야 합니다.
작업 창에서 탭으로 Microsoft Entra 인증 사용을 선택합니다.
아직 선택하지 않은 경우 Microsoft Entra 인증 사용 확인란을 선택하고 확인을 선택합니다. 그런 다음 저장을 선택합니다.
구성을 업데이트할지 묻는 팝업 대화 상자가 표시되고, 업데이트하는 데 몇 분이 걸린다는 사실을 알려 줍니다. 예를 선택합니다.
Important
사용 작업이 완료되면 캐시 인스턴스의 노드가 다시 부팅되어 새 구성을 로드합니다. 이 작업은 유지 관리 기간 동안에 수행하거나 가장 바쁜 업무 시간을 피해 수행하는 것이 좋습니다. 이 작업은 최대 30분이 걸릴 수 있습니다.
Microsoft Entra ID를 사용하도록 Redis 클라이언트 구성
역할 기반 액세스 제어를 구성하기 위해 Redis 사용자 및 데이터 액세스 정책을 구성했으므로, 이제 특정 사용자/암호를 사용하여 인증을 지원하도록 클라이언트 워크플로를 업데이트해야 합니다. 특정 Redis 사용자로 캐시 인스턴스에 연결하도록 클라이언트 애플리케이션을 구성하는 방법을 알아보려면 Microsoft Entra를 사용하도록 Redis 클라이언트 구성을 참조하세요.