PowerShell을 사용하여 보안 주체에 Azure 역할을 할당하려면 New-AzRoleAssignment 명령을 호출합니다. 명령을 실행하려면 Microsoft.Authorization/roleAssignments/write 권한이 포함된 역할이 해당 범위 또는 그 이상에 할당되어 있어야 합니다.
명령의 형식은 할당 범위에 따라 다를 수 있지만 -ObjectId 매개 변수와 -RoleDefinitionName 매개 변수가 필요합니다. 매개 변수는 -Scope 필요하지 않지만 최소 권한 원칙을 유지하기 위해 매개 변수를 포함합니다. 역할과 범위를 제한하면 보안 주체가 손상되는 경우 위험에 노출되는 리소스를 제한할 수 있습니다.
-ObjectId 매개 변수는 역할을 할당할 사용자, 그룹 또는 서비스 주체의 Microsoft Entra 개체 ID입니다. 식별자를 검색하려면 다음 예제와 같이 Get-AzADUser를 사용하여 Microsoft Entra 사용자를 필터링합니다.
Get-AzADUser -DisplayName '<Display Name>'
(Get-AzADUser -StartsWith '<substring>').Id
첫 번째 응답은 보안 주체를 반환하고, 두 번째 응답은 보안 주체의 개체 ID를 반환합니다.
UserPrincipalName : markpdaniels@contoso.com
ObjectType : User
DisplayName : Mark P. Daniels
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Type :
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
-RoleDefinitionName 매개 변수 값은 주체에 할당해야 하는 RBAC 역할의 이름입니다. Microsoft Entra 자격 증명을 사용하여 Azure Portal의 Blob 데이터에 액세스하려면 사용자에게 다음 역할 할당이 있어야 합니다.
- 데이터 액세스 역할(예: Storage Blob 데이터 기여자 또는 Storage Blob 데이터 읽기 권한자)
- Azure Resource Manager 읽기 권한자 역할
Blob 컨테이너 또는 스토리지 계정에 범위가 지정된 역할을 할당하려면 매개 변수에 대한 리소스 범위를 포함하는 문자열을 -Scope 지정합니다. 이 작업은 사용자가 작업 함수를 수행하는 데 필요한 최소한의 액세스 수준을 부여하는 정보 보안 개념인 최소 권한 원칙을 준수합니다. 이 연습은 불필요한 권한이 발생할 수 있는 실수 또는 의도적 손상의 잠재적 위험을 줄입니다.
컨테이너의 범위는 다음과 같은 형식입니다.
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
스토리지 계정의 범위는 다음과 같은 형식입니다.
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>
스토리지 계정에 범위가 지정된 역할을 할당하려면 --scope 매개 변수의 컨테이너 범위를 포함하는 문자열을 지정합니다.
다음 예제에서는 Storage Blob 데이터 기여자 역할을 사용자에게 할당합니다. 역할 할당의 범위는 컨테이너 수준으로 지정됩니다. 샘플 값과 대괄호(<>) 안의 자리 표시자 값을 고유한 값으로 바꿔야 합니다.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>"
다음 예제에서는 개체 ID를 지정하여 Storage Blob 데이터 읽기 권한자 역할을 사용자에게 할당합니다. 역할 할당은 스토리지 계정 수준으로 범위가 지정됩니다. 샘플 값과 대괄호(<>) 안의 자리 표시자 값을 고유한 값으로 바꿔야 합니다.
New-AzRoleAssignment -ObjectID "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" `
-RoleDefinitionName "Storage Blob Data Reader" `
-Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
다음과 유사하게 출력될 것입니다.
RoleAssignmentId : /subscriptions/<subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.Storage/storageAccounts/<Storage Account>/providers/Microsoft.Authorization/roleAssignments/<Role Assignment ID>
Scope : /subscriptions/<subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.Storage/storageAccounts/<Storage Account>
DisplayName : Mark Patrick
SignInName : markpdaniels@contoso.com
RoleDefinitionName : Storage Blob Data Reader
RoleDefinitionId : <Role Definition ID>
ObjectId : <Object ID>
ObjectType : User
CanDelegate : False
구독 또는 리소스 그룹 범위에서 PowerShell을 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Azure PowerShell을 사용하여 Azure 역할 할당을 참조하세요.
Azure CLI 사용하여 보안 주체에 Azure 역할을 할당하려면 az 역할 할당 만들기 명령을 사용합니다. 명령의 형식은 할당 범위에 따라 다를 수 있습니다. 명령을 실행하려면 해당 범위 또는 그 이상의 범위에 할당된 Microsoft.Authorization/roleAssignments/write 권한을 포함한 역할이 있어야 합니다.
컨테이너에 범위가 지정된 역할을 할당하려면 --scope 매개 변수의 컨테이너 범위를 포함하는 문자열을 지정합니다. 컨테이너의 범위는 다음과 같은 형식입니다.
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
다음 예제에서는 Storage Blob 데이터 기여자 역할을 사용자에게 할당합니다. 역할 할당의 범위는 컨테이너 수준으로 지정됩니다. 샘플 값과 대괄호(<>) 안의 자리 표시자 값을 고유한 값으로 바꿔야 합니다.
az role assignment create \
--role "Storage Blob Data Contributor" \
--assignee <email> \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>"
다음 예제에서는 개체 ID를 지정하여 Storage Blob 데이터 읽기 권한자 역할을 사용자에게 할당합니다.
--assignee-object-id 및 --assignee-principal-type 매개 변수에 대한 자세한 내용은 az role assignment를 참조하세요. 이 예제에서 역할 할당은 스토리지 계정 수준으로 범위가 지정됩니다. 샘플 값과 대괄호(<>) 안의 자리 표시자 값을 고유한 값으로 바꿔야 합니다.
az role assignment create \
--role "Storage Blob Data Reader" \
--assignee-object-id "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" \
--assignee-principal-type "User" \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
역할을 할당하거나 역할 할당을 제거하는 경우 변경 내용이 적용되는 데 최대 10분이 걸릴 수 있습니다.
구독, 리소스 그룹 또는 스토리지 계정 범위에서 Azure CLI를 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.