자습서: Azure PowerShell을 사용하여 Azure 리소스에 대한 그룹 액세스 권한 부여
Azure RBAC(Azure 역할 기반 액세스 제어)는 Azure 리소스에 대한 액세스를 관리하는 방법입니다. 이 자습서에서는 Azure PowerShell을 사용하여 그룹에 구독의 모든 항목을 살펴보고 리소스 그룹의 모든 항목을 관리할 수 있는 액세스 권한을 부여합니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 다양한 범위에서 그룹에 액세스 권한 부여
- 액세스 권한 나열
- 액세스 권한 제거
Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
필수 조건
이 자습서를 완료하려면 다음 항목이 필요합니다.
- Microsoft Entra ID에서 그룹을 만드는(또는 기존 그룹을 사용하는) 권한
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
역할 할당
Azure RBAC에서 액세스 권한을 부여하기 위해 역할 할당을 만듭니다. 역할 할당은 보안 주체, 역할 정의, 범위의 세 가지 요소로 구성됩니다. 이 자습서에서는 다음과 같은 두 가지 역할 할당을 수행할 것입니다.
할당할 수 있습니다. | 역할 정의 | 범위 |
---|---|---|
그룹 (RBAC 자습서 그룹) |
판독기 | 구독 |
그룹 (RBAC 자습서 그룹) |
기여자 | Resource group (rbac-tutorial-resource-group) |
그룹 만들기
역할을 할당하려면 사용자, 그룹 또는 서비스 주체가 필요합니다. 아직 그룹이 없는 경우 새로 만들면 됩니다.
Azure Cloud Shell에서 New-MgGroup 명령을 사용하여 새 그룹을 만듭니다.
New-MgGroup -DisplayName "RBAC Tutorial Group" -MailEnabled:$false ` -SecurityEnabled:$true -MailNickName "NotSet"
DisplayName Id MailNickname Description GroupTypes ----------- -- ------------ ----------- ---------- RBAC Tutorial Group aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet {}
그룹을 만들 수 있는 권한이 없는 경우 자습서: Azure PowerShell을 사용하여 Azure 리소스에 대한 사용자 액세스 권한 부여를 시도할 수 있습니다.
리소스 그룹 만들기
리소스 그룹을 사용하여 리소스 그룹 범위에서 역할을 할당하는 방법을 보여줍니다.
Get-AzLocation 명령을 사용하여 영역 위치 목록을 가져옵니다.
Get-AzLocation | select Location
가까운 위치를 선택하고 변수에 할당합니다.
$location = "westus"
New-AzResourceGroup 명령을 사용하여 새 리소스 그룹을 만듭니다.
New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
ResourceGroupName : rbac-tutorial-resource-group Location : westus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
액세스 허가
그룹에 액세스 권한을 부여하려면 New-AzRoleAssignment 명령을 사용하여 역할을 할당합니다. 보안 주체, 역할 정의 및 범위를 지정해야 합니다.
Get-MgGroup 명령을 사용하여 그룹의 개체 ID를 가져옵니다.
Get-MgGroup -Filter "DisplayName eq 'RBAC Tutorial Group'"
DisplayName Id MailNickname Description GroupTypes ----------- -- ------------ ----------- ---------- RBAC Tutorial Group aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet {}
그룹 개체 ID를 변수에 저장합니다.
$groupId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
Get-AzSubscription 명령을 사용하여 구독 ID를 가져옵니다.
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee State : Enabled
구독 범위를 변수에 저장합니다.
$subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
구독 범위에서 그룹에 읽기 권한자 역할을 할당합니다.
New-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Reader" ` -Scope $subScope
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
리소스 그룹 범위에서 그룹에 기여자 역할을 할당합니다.
New-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
액세스 권한 나열
구독에 대한 액세스 권한을 확인하려면 Get-AzRoleAssignment 명령을 사용하여 역할 할당을 나열합니다.
Get-AzRoleAssignment -ObjectId $groupId -Scope $subScope
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
출력을 보면 구독 범위에서 읽기 권한자 역할이 RBAC 자습서 그룹에 할당된 것을 볼 수 있습니다.
리소스 그룹에 대한 액세스 권한을 확인하려면 Get-AzRoleAssignment 명령을 사용하여 역할 할당을 나열합니다.
Get-AzRoleAssignment -ObjectId $groupId -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : Group CanDelegate : False
출력을 보면 RBAC 자습서 그룹에 기여자 및 읽기 권한자 역할이 모두 할당된 것을 볼 수 있습니다. 기여자 역할은 rbac-tutorial-resource-group 범위이고 읽기 권한자 역할은 구독 범위입니다.
(선택 사항) Azure Portal을 사용하여 액세스 권한 나열
Azure Portal에서 역할 할당이 어떻게 보이는지 확인하려면 구독의 액세스 제어(IAM) 블레이드를 살펴봅니다.
리소스 그룹의 액세스 제어(IAM) 블레이드를 살펴봅니다.
액세스 권한 제거
사용자, 그룹 및 애플리케이션의 액세스 권한을 제거하려면 Remove-AzRoleAssignment 명령을 사용하여 역할 할당을 제거합니다.
다음 명령을 사용하여 리소스 그룹 범위에서 그룹의 기여자 역할 할당을 제거합니다.
Remove-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
다음 명령을 사용하여 구독 범위에서 그룹의 읽기 권한자 역할 할당을 제거합니다.
Remove-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Reader" ` -Scope $subScope
리소스 정리
이 자습서에서 만든 리소스를 정리하려면 리소스 그룹 및 그룹을 삭제합니다.
Remove-AzResourceGroup 명령을 사용하여 리소스 그룹을 제거합니다.
Remove-AzResourceGroup -Name "rbac-tutorial-resource-group"
Confirm Are you sure you want to remove resource group 'rbac-tutorial-resource-group' [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
확인을 묻는 메시지가 나타나면 Y를 선택합니다. 삭제에 몇 초 정도 걸립니다.
Remove-MgGroup 명령을 사용하여 그룹을 삭제합니다.
Remove-MgGroup -GroupID $groupId
그룹을 삭제하려고 할 때 오류가 발생하면 포털에서 그룹을 삭제해도 됩니다.