Share via


서비스 주체 역할 관리

Azure 리소스에 대한 액세스를 제한하기 위해 서비스 주체를 사용하여 역할 할당을 관리할 수 있습니다. 각 역할은 Azure 리소스에 액세스할 때 사용자가 허용하는 다양한 권한을 제공합니다. 자습서의 이 단계에서는 서비스 주체 역할을 만들고 제거하는 방법을 설명합니다.

Azure CLI에는 역할 할당을 관리하는 다음 명령이 있습니다.

역할 할당 만들기 또는 제거

기여자 역할에는 Azure 계정을 읽고 쓸 수 있는 모든 권한이 있습니다. 읽기 전용 액세스 권한이 있는 읽기 권한자 역할은 더 제한적입니다. 항상 최소 권한 원칙을 사용합니다. Azure RBAC에서 사용 가능한 역할의 전체 목록은 Azure 기본 제공 역할을 참조 하세요.

역할을 추가해도 이전에 할당된 권한은 제한되지 않습니다 . 다음 예제에서는 Reader 역할을 추가하고 Contributor 역할을 제거합니다.

az role assignment create --assignee myServicePrincipalID \
                          --role Reader \
                          --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName

az role assignment delete --assignee myServicePrincipalID \
                          --role Contributor \
                          --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName

출력 콘솔:

{
  "condition": null,
  "conditionVersion": null,
  "createdBy": null,
  "createdOn": "yyyy-mm-ddT00:00:00.000000+00:00",
  "delegatedManagedIdentityResourceId": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-0000-000000000000",
  "principalType": "ServicePrincipal",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroupName",
  "type": "Microsoft.Authorization/roleAssignments",
  "updatedBy": "00000000-0000-0000-0000-000000000000",
  "updatedOn": "yyyy-mm-ddT00:00:00.000000+00:00"
}

범위 매개 변수에 대한 값을 가져오는 방법

한 가지 질문은 "매개 변수 값을 어떻게 할까요? 알고 --scope 있습니까?" 입니다. 대답은 서비스 주체가 액세스해야 하는 Azure 리소스의 리소스 ID를 찾아 복사하는 것입니다. 이 정보는 일반적으로 각 리소스의 Azure Portal 속성 또는 엔드포인트 페이지에서 찾을 수 있습니다 . 다음은 일반적인 --scope 예제이지만 실제 형식 및 값대한 리소스 ID를 사용합니다.

Scope 예시
구독 /subscriptions/mySubscriptionID
Resource group /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
가상 머신 /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Storage 계정 파일 서비스 /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
데이터 팩터리 /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName

자세한 범위 예제는 Azure RBAC에 대한 범위 이해를 참조 하세요.

변경 내용 확인

변경 내용은 할당된 역할을 나열하여 확인할 수 있습니다.

# list all role assignments for the current subscription
az role assignment list ---output table

# list role assignments for a user
az role assignment list --assignee myUserName@contoso.com

# list role assignments for a subscription
az role assignment list --subscription mySubscriptionID

Azure Portal 로 이동하여 IAM(액세스 제어) 메뉴에서 서비스 주체에 역할을 수동으로 할당할 수도 있습니다. 역할 할당을 나열하는 방법에 대한 자세한 예제는 Azure CLI를 사용하여 Azure 역할 할당 나열을 참조하세요.

다음 단계

이제 서비스 주체 역할을 관리하는 방법을 배웠으므로 다음 단계를 진행하여 서비스 주체를 사용하여 리소스를 만드는 방법을 알아봅니다.