Azure Managed Redis는 Microsoft Entra ID와 통합하여 암호 없는 인증 메커니즘을 제공합니다. Azure Managed Redis 캐시는 기본적으로 Microsoft Entra ID를 사용합니다. 새 캐시를 만들 때 관리 ID가 사용하도록 설정됩니다.
액세스 키 인증은 여전히 사용할 수 있지만 보안 및 암호 관리와 관련하여 일련의 과제가 제공됩니다. 이와 대조적으로 이 문서에서는 캐시 인증을 위해 Microsoft Entra 토큰을 사용하는 방법을 알아봅니다.
이 문서에서는 서비스 주체 또는 관리 ID를 사용하여 Redis 인스턴스에 연결하는 방법을 알아봅니다.
필수 구성 요소 및 제한 사항
- Microsoft Entra 인증은 SSL 연결을 위해서만 지원됩니다.
- Microsoft Entra 그룹은 지원되지 않습니다.
- 일부 Redis 명령은 차단됩니다. 차단된 명령의 전체 목록은 Azure Managed Redis에서 지원되지 않는 Redis 명령을 참조하세요.
중요합니다
Microsoft Entra 토큰을 사용하여 연결을 설정한 후에는 클라이언트 애플리케이션은 Microsoft Entra 토큰이 만료되기 전에 정기적으로 새로 고쳐야 합니다. 그런 다음 앱은 연결이 중단되는 것을 방지하기 위해 AUTH 명령을 Redis 서버로 보내야 합니다. 자세한 내용은 Microsoft Entra를 사용하도록 Redis 클라이언트 구성을 참조하세요.
Microsoft Entra를 사용하도록 Redis 클라이언트 구성
과거에 인증에 액세스 키를 사용한 경우 Microsoft Entra ID를 사용하여 인증을 지원하도록 클라이언트 워크플로를 업데이트해야 합니다. 이 섹션에서는 Microsoft Entra ID를 사용하여 Azure Managed Redis에 연결하는 방법을 알아봅니다.
캐시에 사용자 또는 시스템 주체 추가
Azure Portal에서 캐시에 연결합니다.
리소스 메뉴에서 인증을 선택합니다.
Microsoft Entra 인증 탭에서 사용자 또는 서비스 주체를 선택한 다음+ 멤버를 선택합니다.
프로그램을 실행하려는 사용자의 이름을 입력합니다. 목록에 추가할 사용자를 선택하고 선택합니다. 사용자가 Redis 사용자 목록에 추가됩니다.
Microsoft Entra 클라이언트 워크플로
https://redis.azure.com/.default을 사용하여acca5fbb-b7e4-4009-81f1-37e38fd66d78/.default또는 범위에 대한 Microsoft Entra 토큰을 획득하도록 클라이언트 애플리케이션을 구성합니다.다음
User및Password를 사용하도록 Redis 연결 논리를 업데이트합니다.-
User= 관리 ID 또는 서비스 사용자의 개체 ID -
Password= MSAL을 사용하여 획득한 Microsoft Entra 토큰
-
다음을 사용하여 Microsoft Entra 토큰이 만료되기 전에 클라이언트가 Redis
AUTH명령을 자동으로 실행하는지 확인합니다.-
User= 관리 ID 또는 서비스 사용자의 개체 ID -
Password= 주기적으로 새로 고쳐지는 Microsoft Entra 토큰
-
Microsoft Entra 인증 모범 사례
- 서비스 거부 공격으로부터 캐시를 보호하도록 프라이빗 링크 또는 방화벽 규칙을 구성합니다.
- 연결 중단을 방지하기 위해 클라이언트 애플리케이션에서 토큰 만료 최소 3분 전에 새 Microsoft Entra 토큰을 보내도록 합니다.
- Redis 서버
AUTH명령을 주기적으로 호출할 때AUTH명령이 엇갈리도록 jitter를 추가하는 것이 좋습니다. 이렇게 하면 Redis 서버가 동시에 너무 많은AUTH명령을 수신하지 않게 됩니다.
Microsoft Entra ID 및 캐시 문제 해결
애플리케이션이 Microsoft Entra ID를 통해 Azure Managed Redis 인스턴스에 액세스하지 못하는 경우 다음 PowerShell 스크립트를 사용합니다.
이 PowerShell 스크립트를 사용하여 Azure Managed Redis Cache 리소스에 대한 Microsoft Entra ID 토큰의 유효성을 검사합니다. 이 스크립트는 토큰의 유효성을 검사하고 인증 문제를 진단하는 데 도움이 되는 액세스 정책을 확인합니다.
Microsoft Entra ID를 사용하여 Redis 연결을 인증하는 데 문제가 있는 경우 이 스크립트를 실행하여 Microsoft Entra 토큰을 분석하고 문제를 식별합니다.
클라이언트 라이브러리 지원
Microsoft.Azure.StackExchangeRedis 라이브러리는 Microsoft Entra를 사용하여 Redis 클라이언트 애플리케이션에서 Azure Managed Redis로의 연결을 인증할 수 있는 StackExchange.Redis의 확장입니다. 확장은 만료되기 전에 앞서 토큰을 새로 고치는 것을 포함하여 인증 토큰을 관리하여 며칠 동안 지속적으로 Redis 연결을 유지합니다.
이 코드 샘플에서는 Microsoft Entra를 사용하여 Azure Managed Redis 인스턴스에 연결하기 위해 Microsoft.Azure.StackExchangeRedis NuGet 패키지를 사용하는 방법을 보여 줍니다.
다음 표에는 코드 샘플에 대한 링크가 포함되어 있습니다. 코드 샘플은 Microsoft Entra 토큰을 사용하여 Azure Managed Redis 인스턴스에 연결하는 방법을 보여줍니다. 다양한 클라이언트 라이브러리가 여러 언어로 포함되어 있습니다.
| 클라이언트 라이브러리 | 언어 | 샘플 코드에 연결 |
|---|---|---|
| StackExchange.Redis | 닷넷 | StackExchange.Redis 코드 샘플 |
| redis-py | 파이썬 | redis-py 코드 샘플 |
| 제디스 (미국) | 자바 | Jedis 코드 샘플 |
| 상추 | 자바 | Lettuce 코드 샘플 |
| node_redis | Node.js | node-redis 코드 샘플 |
| go-redis | Go | go 코드 샘플 |
캐시에서 액세스 키 인증을 사용하지 않도록 설정합니다.
액세스 키를 사용하는 캐시가 있는 경우 캐시를 연결하고 액세스 키를 사용하지 않도록 설정하는 안전한 방법으로 Microsoft Entra ID로 전환하는 것이 좋습니다.
액세스 키를 사용하지 않도록 설정하면 시스템은 액세스 키 또는 Microsoft Entra ID 인증을 사용하는지 여부에 관계없이 모든 기존 클라이언트 연결을 종료합니다.
지역에서 복제된 캐시에서 액세스 키를 사용하지 않도록 설정하기 전에 다음을 수행해야 합니다.
- 캐시 연결을 해제합니다.
- 액세스 키를 사용하지 않도록 설정합니다.
- 캐시를 다시 연결합니다.
액세스 키를 사용하지 않도록 설정하려면 다음 절차를 따르세요.
Azure Portal에서 액세스 키를 비활성화하려는 Azure Managed Redis 인스턴스를 선택합니다.
리소스 메뉴에서 인증을 선택합니다.
작업 창에서 액세스 키를 선택합니다.
액세스 키를 사용하지 않도록 설정하려면 액세스 키 인증 컨트롤을 선택합니다.
예를 선택하여 구성을 업데이트할 것인지 확인합니다.
중요합니다
캐시에 대한 액세스 키 인증 설정이 변경되면 액세스 키 또는 Microsoft Entra를 사용하는 모든 기존 클라이언트 연결이 종료됩니다. Microsoft Entra 기반 연결을 다시 연결하기 위한 적절한 다시 시도 메커니즘을 구현하려면 모범 사례를 따릅니다. 자세한 내용은 연결 복원력을 참조하세요.