Microsoft Entra ID를 사용하여 큐에 대한 액세스 권한을 부여합니다.
Azure Storage는 Microsoft Entra ID를 사용하여 큐 데이터에 대한 요청에 권한을 부여하는 것을 지원합니다. Microsoft Entra ID를 통해 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 사용자, 그룹 또는 애플리케이션 서비스 주체가 될 수 있는 보안 주체에 권한을 부여할 수 있습니다. 보안 주체는 OAuth 2.0 토큰을 반환하기 위해 Microsoft Entra ID에 의해 인증됩니다. 그런 다음 토큰을 사용하여 큐 서비스에 대한 요청을 승인할 수 있습니다.
Microsoft Entra ID를 통한 권한 부여는 공유 키 권한 부여보다 뛰어난 보안과 사용 편의성을 제공합니다. Microsoft는 최소한의 필수 권한으로 액세스를 보장하기 위해 가능한 경우 큐 애플리케이션에 Microsoft Entra 권한 부여를 사용하는 것이 좋습니다.
Microsoft Entra ID를 통한 권한 부여는 모든 공용 지역 및 국가 클라우드의 모든 범용 스토리지 계정에 사용할 수 있습니다. Azure Resource Manager 배포 모델로 만든 스토리지 계정에서만 Microsoft Entra 권한 부여를 지원합니다.
큐용 Microsoft Entra ID 개요
보안 주체(사용자, 그룹 또는 애플리케이션)가 큐 리소스에 액세스하려고 할 때 익명 액세스에 사용할 수 있는 큐가 아닌 경우 요청에 권한이 부여되어야 합니다. Microsoft Entra ID를 사용하면 리소스에 대한 액세스가 2단계 프로세스로 이루어집니다.
먼저, 보안 주체의 ID가 인증되고 OAuth 2.0 토큰이 반환됩니다.
인증 단계를 수행하려면 런타임 시 애플리케이션 요청에 OAuth 2.0 액세스 토큰이 있어야 합니다. 애플리케이션이 Azure VM, Virtual Machine Scale Set 또는 Azure Functions 앱과 같은 Azure 엔터티 내에서 실행되는 경우 관리 ID를 사용하여 큐 데이터에 액세스할 수 있습니다.
다음으로 토큰은 큐 서비스에 대한 요청의 일부로 전달되고 서비스에서 지정된 리소스에 대한 액세스 권한을 부여하는 데 사용됩니다.
권한 부여 단계에서는 요청하는 보안 주체에게 하나 이상의 Azure RBAC 역할을 할당해야 합니다. 자세한 내용은 액세스 권한에 대해 Azure 역할 할당을 참조하세요.
포털, PowerShell 또는 Azure CLI에서 Microsoft Entra 계정 사용
Microsoft Entra 계정으로 Azure Portal의 데이터에 액세스하는 방법을 알아보려면 Azure Portal에서 데이터 액세스를 참조하세요. Microsoft Entra 계정으로 Azure PowerShell 또는 Azure CLI 명령을 호출하는 방법을 알아보려면 PowerShell 또는 Azure CLI에서 데이터 액세스를 참조하세요.
Microsoft Entra ID를 사용하여 애플리케이션 코드에 대한 액세스 권한 부여
Microsoft Entra ID로 Azure Storage에 대한 액세스 권한을 부여하려면 다음 클라이언트 라이브러리 중 하나를 사용하여 OAuth 2.0 토큰을 획득할 수 있습니다.
- Azure ID 클라이언트 라이브러리는 대부분의 개발 시나리오에 권장됩니다.
- MSAL(Microsoft 인증 라이브러리)은 특정 고급 시나리오에 적합할 수 있습니다.
Azure ID 클라이언트 라이브러리
Azure ID 클라이언트 라이브러리는 Azure SDK를 통해 Microsoft Entra ID로 권한 부여를 위한 OAuth 2.0 액세스 토큰을 가져오는 프로세스를 간소화합니다. .NET, Java, Python, JavaScript 및 Go용 Azure Storage 클라이언트 라이브러리의 최신 버전은 각 언어에 대한 Azure ID 라이브러리와 통합되어 Azure Storage 요청의 권한 부여를 위한 액세스 토큰을 가져오는 간단하고 안전한 수단을 제공합니다.
Azure ID 클라이언트 라이브러리의 장점은 애플리케이션이 개발 환경 또는 Azure에서 실행되는지에 관계없이 동일한 코드를 사용하여 액세스 토큰을 획득할 수 있다는 것입니다. Azure ID 클라이언트 라이브러리는 보안 주체에 대한 액세스 토큰을 반환합니다. 코드가 Azure에서 실행되는 경우 보안 주체는 Azure 리소스, 서비스 주체 또는 사용자나 그룹에 대한 관리 ID일 수 있습니다. 개발 환경에서 클라이언트 라이브러리는 테스트를 위해 사용자 또는 서비스 주체에 대한 액세스 토큰을 제공합니다.
Azure ID 클라이언트 라이브러리에서 반환하는 액세스 토큰은 토큰 자격 증명에 캡슐화됩니다. 그런 다음, 토큰 자격 증명을 사용하여 Azure Storage에 대해 권한이 부여된 작업을 수행하는 데 사용할 서비스 클라이언트 개체를 가져올 수 있습니다. 액세스 토큰 및 토큰 자격 증명을 가져오는 간단한 방법은 Azure ID 클라이언트 라이브러리에서 제공하는 DefaultAzureCredential 클래스를 사용하는 것입니다. DefaultAzureCredential은 여러 다른 자격 증명 형식을 순차적으로 시도하여 토큰 자격 증명을 가져오려고 합니다. DefaultAzureCredential은 개발 환경과 Azure 모두에서 작동합니다.
다음 테이블은 다양한 시나리오에서 데이터에 대한 액세스 권한을 부여하기 위한 추가 정보를 가리킵니다.
MSAL(Microsoft 인증 라이브러리)
Microsoft는 가급적 Azure ID 클라이언트 라이브러리를 사용하는 것을 권장하지만, MSAL 라이브러리는 특정 고급 시나리오에서 사용하기에 적절할 수 있습니다. 자세한 내용은 MSAL에 대해 알아보기를 참조하세요.
MSAL을 사용하여 Azure Storage에 액세스하기 위한 OAuth 토큰을 획득하는 경우 Microsoft Entra 리소스 ID를 제공해야 합니다. Microsoft Entra 리소스 ID는 발급된 토큰을 사용하여 Azure 리소스에 대한 액세스를 제공할 수 있는 대상 그룹을 나타냅니다. Azure Storage의 경우 리소스 ID는 단일 스토리지 계정에 특정되거나 모든 스토리지 계정에 적용될 수 있습니다.
단일 스토리지 계정 및 서비스와 관련된 리소스 ID를 제공하는 경우 리소스 ID는 지정된 계정 및 서비스에 대한 요청에만 권한을 부여하기 위한 토큰을 획득하는 데 사용됩니다. 다음 표에는 작업 중인 클라우드를 기반으로 리소스 ID에 사용할 값이 나열되어 있습니다. <account-name>
을 스토리지 계정 이름으로 바꿉니다.
클라우드 | 리소스 ID |
---|---|
Azure 글로벌 | https://<account-name>.queue.core.windows.net |
Azure Government | https://<account-name>.queue.core.usgovcloudapi.net |
Azure 중국 21Vianet | https://<account-name>.queue.core.chinacloudapi.cn |
다음 표에 표시된 대로 모든 스토리지 계정에 적용되는 리소스 ID를 제공할 수도 있습니다. 이 리소스 ID는 모든 공용 및 소버린 클라우드에서 동일하며 모든 스토리지 계정에 대한 요청을 권한 부여하기 위한 토큰을 획득하는 데 사용됩니다.
클라우드 | 리소스 ID |
---|---|
Azure 글로벌 Azure Government Azure 중국 21Vianet |
https://storage.azure.com/ |
액세스 권한을 위한 Azure 역할 할당
Microsoft Entra는 Azure RBAC를 통해 보안 리소스에 대한 액세스 권한을 부여합니다. Azure Storage는 큐 데이터에 액세스하는 데 사용되는 공통 권한 집합을 포함하는 기본 제공 RBAC 역할 집합을 정의합니다. 대기열 데이터에 액세스하기 위한 사용자 지정 역할을 정의할 수도 있습니다. 대기열 액세스를 위한 Azure 역할 할당에 대한 자세한 내용은 대기열 데이터에 대한 액세스를 위한 Azure 역할 할당을 참조하세요.
Microsoft Entra 보안 주체는 사용자, 그룹, 애플리케이션 서비스 주체 또는 Azure 리소스에 대한 관리 ID일 수 있습니다. 보안 주체에 할당된 RBAC 역할은 보안 주체가 갖게 될 권한을 결정합니다. 큐 액세스를 위한 Azure 역할 할당에 대한 자세한 내용은 큐 데이터에 대한 액세스를 위한 Azure 역할 할당을 참조하세요
경우에 따라 스토리지 리소스에 대한 역할 할당이 많은 경우 큐 리소스에 대한 세분화된 액세스를 사용하도록 설정하거나 권한을 단순화해야 할 수 있습니다. Azure 특성 기반 액세스 제어(Azure ABAC)를 사용하여 역할 할당에 대한 조건을 구성할 수 있습니다. 사용자 지정 역할과 함께 조건을 사용하거나 기본 제공 역할을 선택할 수 있습니다. ABAC를 사용하여 Azure Storage 리소스에 대한 조건을 구성하는 방법에 대한 자세한 내용은 Azure 역할 할당 조건을 사용하여 큐에 대한 액세스 권한 부여를 참조하세요. 큐 데이터 작업에 지원되는 조건에 대한 자세한 내용은 Azure 대기열의 Azure 역할 할당 조건에 대한 작업 및 특성을 참조하세요.
참고 항목
Azure Storage 계정을 만들 때 Microsoft Entra ID를 통해 데이터에 액세스할 수 있는 권한이 자동으로 할당되지 않습니다. Queue Storage에 액세스하기 위해 Azure 역할을 자신에게 명시적으로 할당해야 합니다. 구독, 리소스 그룹, 스토리지 계정 또는 큐 수준으로 지정할 수 있습니다.
리소스 범위
Azure RBAC 역할을 보안 주체에 할당하기 전에 보안 주체에게 부여해야 하는 액세스 범위를 결정합니다. 모범 사례에 따르면 항상 가능한 가장 좁은 범위만 부여하는 것이 가장 좋습니다. 더 광범위한 범위에서 정의된 Azure RBAC 역할은 그 아래에 있는 리소스에 상속됩니다.
가장 좁은 범위에서 시작 하 여 다음 수준에서 Azure queue 리소스에 대 한 액세스 범위를 지정할 수 있습니다.
- 개별 큐. 이 범위의 역할 할당은 큐의 메시지와 큐 속성 및 메타데이터에 적용됩니다.
- 스토리지 계정. 이 범위의 역할 할당은 모든 큐와 해당 메시지에 적용됩니다.
- 리소스 그룹. 이 범위의 역할 할당은 리소스 그룹의 모든 스토리지 계정에 있는 모든 큐에 적용됩니다.
- 구독. 이 범위의 역할 할당은 구독의 모든 리소스 그룹에 있는 모든 스토리지 계정의 모든 큐에 적용됩니다.
- 관리 그룹. 이 범위의 역할 할당은 관리 그룹의 모든 구독에 있는 모든 리소스 그룹의 모든 스토리지 계정에 있는 모든 큐에 적용됩니다.
Azure RBAC 역할 할당 범위에 대한 자세한 내용은 Azure RBAC 범위 이해를 참조하세요.
큐에 대한 Azure 기본 제공 역할
Azure RBAC는 Microsoft Entra ID 및 OAuth를 사용하여 큐 데이터에 대한 액세스 권한을 부여하기 위한 몇 가지 기본 제공 역할을 제공합니다. Azure Storage의 데이터 리소스에 대한 권한을 제공하는 역할의 몇 가지 예는 다음과 같습니다.
- Storage 큐 데이터 기여자: Azure 큐에 대한 읽기/쓰기/삭제 권한을 부여하는 데 사용합니다.
- Storage 큐 데이터 읽기 권한자: Azure 큐에 대한 읽기 전용 권한을 부여하는 데 사용합니다.
- Storage 큐 데이터 메시지 처리자: Azure Storage 큐의 메시지에 대한 선택, 검색 및 삭제 권한을 부여하는 데 사용됩니다.
- Storage 큐 데이터 메시지 보내는 사람: Azure Storage 큐의 메시지에 대한 추가 권한을 부여하는 데 사용됩니다.
Azure 기본 제공 역할을 보안 주체에 할당하는 방법을 알아보려면 대기열 데이터에 액세스하기 위한 Azure 역할 할당을 참조하세요. Azure RBAC 역할 및 해당 권한을 나열하는 방법을 알아보려면 Azure 역할 정의 나열을 참조하세요.
기본 제공 역할을 Azure Storage에 정의하는 방법에 대한 자세한 내용은 역할 정의 이해를 참조하세요. Azure 사용자 지정 역할 만들기에 대한 자세한 내용은 Azure 사용자 지정 역할을 참조하세요.
데이터 액세스에 대해 명시적으로 정의된 역할만 보안 주체가 큐 데이터에 액세스할 수 있도록 허용합니다. 소유자, 기여자 및 스토리지 계정 기여자와 같은 기본 제공 역할을 통해 보안 주체가 스토리지 계정을 관리할 수 있지만 해당 계정에 대한 액세스 권한은 제공되지 않습니다. Microsoft Entra ID를 통해 해당 계정 내에서 데이터를 큐에 넣습니다. 그러나 역할에 Microsoft.Storage/storageAccounts/listKeys/action이 포함되어 있는 경우에는 해당 역할이 할당된 사용자가 계정 액세스 키를 사용하여 공유 키 인증을 통해 스토리지 계정의 데이터에 액세스할 수 있습니다. 자세한 내용은 Azure Portal에서 큐 데이터에 대한 액세스 권한을 부여하는 방법 선택을 참조하세요.
데이터 서비스 및 관리 서비스에 대한 Azure Storage의 Azure 기본 제공 역할에 대한 자세한 내용은 Azure RBAC에 대한 Azure 기본 제공 역할의 스토리지 섹션을 참조하세요. 또한 Azure에서 권한을 제공하는 다양한 역할 형식에 대한 자세한 내용은 Azure 역할, Microsoft Entra 역할 및 클래식 구독 관리자 역할을 참조하세요.
Important
Azure 역할 할당이 전파되는 데 최대 30분이 걸릴 수 있습니다.
데이터 작업에 대한 액세스 권한
특정 큐 서비스 작업을 호출하는 데 필요한 권한에 대한 자세한 내용은 데이터 작업 호출 권한을 참조하세요.
Microsoft Entra 계정으로 데이터에 액세스
Azure Portal, PowerShell 또는 Azure CLI를 통한 큐 데이터 액세스는 사용자의 Microsoft Entra 계정을 사용하거나 계정 액세스 키(공유 키 권한 부여)를 사용하여 권한 부여될 수 있습니다.
주의
공유 키를 사용한 권한 부여는 안전하지 않을 수 있어 권장하지 않습니다. 최적의 보안을 위해 Azure Storage 계정에 대한 공유 키 권한 부여 방지에 설명된 대로 스토리지 계정에 대해 공유 키를 통한 권한 부여를 비활성화합니다.
액세스 키 및 연결 문자열 사용은 프로덕션 또는 중요한 데이터에 액세스하지 않는 초기 개념 증명 앱 또는 개발 프로토타입으로 제한되어야 합니다. 그렇지 않으면 Azure 리소스에 인증할 때 Azure SDK에서 사용할 수 있는 토큰 기반 인증 클래스를 항상 기본으로 설정해야 합니다.
Microsoft에서는 클라이언트가 Microsoft Entra ID 또는 SAS(공유 액세스 서명)를 사용하여 Azure Storage의 데이터에 대한 액세스 권한을 부여하는 것이 좋습니다. 자세한 내용은 데이터 액세스에 대한 작업 권한 부여를 참조하세요.
Azure Portal에서 데이터 액세스
Azure Portal은 Microsoft Entra 계정 또는 계정 액세스 키를 사용하여 Azure Storage 계정의 큐 데이터에 액세스할 수 있습니다. Azure Portal에서 사용하는 권한 부여 체계는 할당된 Azure 역할에 따라 달라집니다.
대기열 데이터에 액세스하려고 하면 Azure Portal은 먼저 Microsoft.Storage/storageAccounts/listkeys/action을 사용하여 Azure 역할이 할당되었는지 확인합니다. 이 작업으로 역할이 할당된 경우 Azure Portal은 공유 키 권한 부여를 통해 큐 데이터에 액세스하기 위해 계정 키를 사용합니다. 이 작업에 대한 역할이 할당되지 않은 경우 Azure Portal은 Microsoft Entra 계정을 사용하여 데이터에 액세스하려고 시도합니다.
Microsoft Entra ID 계정을 사용하여 Azure Portal에서 큐 데이터에 액세스하려면 큐 데이터에 액세스할 수 있는 권한이 필요하고 Azure Portal에서 스토리지 계정 리소스를 탐색할 수 있는 권한도 필요합니다. Azure Storage에서 제공하는 기본 제공 역할은 큐 리소스에 대한 액세스 권한을 부여하지만 스토리지 계정 리소스에 대한 권한은 부여하지 않습니다. 이러한 이유로 포털에 액세스하려면 스토리지 계정 수준 이상으로 범위가 지정된 읽기 권한자 역할과 같은 Azure Resource Manager 역할도 할당해야 합니다. Reader 역할은 가장 제한된 사용 권한을 부여하지만, 스토리지 계정 관리 리소스에 대한 액세스 권한을 부여하는 다른 Azure Resource Manager 역할도 허용됩니다. Microsoft Entra 계정을 사용하여 Azure Portal에서 데이터 액세스를 위해 사용자에게 권한을 할당하는 방법에 대해 자세히 알아보려면 큐 데이터에 액세스하기 위한 Azure 역할 할당을 참조하세요.
Azure Portal은 큐로 이동할 때 사용 중인 권한 부여 체계를 나타냅니다. 포털의 데이터 액세스에 대한 자세한 내용은 Azure Portal에서 큐 데이터에 대한 액세스 권한을 부여하는 방법 선택을 참조하세요.
PowerShell 또는 Azure CLI에서 데이터 액세스
Azure CLI 및 PowerShell은 Microsoft Entra 자격 증명을 사용한 로그인을 지원합니다. 로그인하면 세션이 해당 자격 증명으로 실행됩니다. 다음 문서에서 자세한 내용을 참조하세요.
- Azure CLI에서 큐 데이터에 대한 액세스 권한을 부여하는 방법 선택
- 큐 데이터에 액세스하려면 Microsoft Entra 자격 증명으로 PowerShell 명령을 실행합니다.