RBAC 및 REST API를 사용하여 Azure 리소스에 대한 액세스 관리Manage access to Azure resources using RBAC and the REST API

RBAC(역할 기반 액세스 제어)는 Azure 리소스에 대한 액세스를 관리하는 방법입니다.Role-based access control (RBAC) is the way that you manage access to Azure resources. 이 문서에서는 RBAC 및 REST API를 사용하여 사용자, 그룹 및 애플리케이션의 액세스 권한을 관리하는 방법을 설명합니다.This article describes how you manage access for users, groups, and applications using RBAC and the REST API.

액세스 권한 나열List access

RBAC에서 역할 할당을 나열하면 액세스 권한이 나열됩니다.In RBAC, to list access, you list the role assignments. 역할 할당을 나열하려면 역할 할당 - 나열 REST API 중 하나를 사용합니다.To list role assignments, use one of the Role Assignments - List REST APIs. 결과를 구체화하려면 범위와 선택적 필터를 지정합니다.To refine your results, you specify a scope and an optional filter.

  1. 다음 요청으로 시작합니다.Start with the following request:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01&$filter={filter}
    
  2. URI 내에서 {scope} 를 역할 할당을 나열하려는 범위로 바꿉니다.Within the URI, replace {scope} with the scope for which you want to list the role assignments.

    범위Scope 형식Type
    providers/Microsoft.Management/managementGroups/{groupId1} 관리 그룹Management group
    subscriptions/{subscriptionId1} 구독Subscription
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 리소스 그룹Resource group
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1 리소스Resource

    이전 예제에서 microsoft. web은 App Service 인스턴스를 참조 하는 리소스 공급자입니다.In the previous example, microsoft.web is a resource provider that refers to an App Service instance. 마찬가지로 다른 리소스 공급자를 사용 하 여 범위를 지정할 수 있습니다.Similarly, you can use any other resource providers and specify the scope. 자세한 내용은 Azure 리소스 공급자 및 형식 및 지원 되는 Azure Resource Manager 리소스 공급자 작업을 참조 하세요.For more information, see Azure Resource providers and types and supported Azure Resource Manager resource provider operations.

  3. {filter} 를 역할 할당 목록을 필터링하기 위해 적용하려는 조건으로 바꿉니다.Replace {filter} with the condition that you want to apply to filter the role assignment list.

    FilterFilter 설명Description
    $filter=atScope() 하위 범위에 역할 할당을 포함 하지 않고 지정 된 범위에 대 한 역할 할당을 나열 합니다.Lists role assignments for only the specified scope, not including the role assignments at subscopes.
    $filter=principalId%20eq%20'{objectId}' 지정 된 사용자, 그룹 또는 서비스 사용자에 대 한 역할 할당을 나열 합니다.Lists role assignments for a specified user, group, or service principal.
    $filter=assignedTo('{objectId}') 지정 된 사용자 또는 서비스 사용자에 대 한 역할 할당을 나열 합니다.Lists role assignments for a specified user or service principal. 사용자가 역할 할당을 포함 하는 그룹의 구성원 인 경우 해당 역할 할당도 나열 됩니다.If the user is a member of a group that has a role assignment, that role assignment is also listed. 이 필터는 그룹에 대해 전이적입니다. 즉, 사용자가 그룹의 구성원이 고 해당 그룹이 역할 할당을 포함 하는 다른 그룹의 멤버인 경우 해당 역할 할당도 나열 됩니다.This filter is transitive for groups which means that if the user is a member of a group and that group is a member of another group that has a role assignment, that role assignment is also listed. 이 필터는 사용자 또는 서비스 사용자의 개체 ID만 허용 합니다.This filter only accepts an object ID for a user or a service principal. 그룹의 개체 ID를 전달할 수 없습니다.You cannot pass an object ID for a group.

액세스 허용Grant access

RBAC에서 액세스 권한을 부여하기 위해 역할 할당을 만듭니다.In RBAC, to grant access, you create a role assignment. 역할 할당을 만들려면 역할 할당 - 만들기 REST API를 사용하고 보안 주체, 역할 정의 및 범위를 지정합니다.To create a role assignment, use the Role Assignments - Create REST API and specify the security principal, role definition, and scope. 이 API를 호출하려면 Microsoft.Authorization/roleAssignments/write 작업에 액세스할 수 있어야 합니다.To call this API, you must have access to the Microsoft.Authorization/roleAssignments/write operation. 기본 제공 역할의 경우 소유자사용자 액세스 관리자에게만 이러한 작업의 권한이 부여됩니다.Of the built-in roles, only Owner and User Access Administrator are granted access to this operation.

  1. 할당하려는 역할 정의에 대한 식별자를 가져오려면 역할 정의 - 나열 REST API를 사용하거나 기본 제공 역할을 참조하세요.Use the Role Definitions - List REST API or see Built-in roles to get the identifier for the role definition you want to assign.

  2. GUID 도구를 사용하여 역할 할당 식별자에 사용할 고유 식별자를 생성합니다.Use a GUID tool to generate a unique identifier that will be used for the role assignment identifier. 식별자의 형식은 00000000-0000-0000-0000-000000000000입니다.The identifier has the format: 00000000-0000-0000-0000-000000000000

  3. 다음 요청 및 본문으로 시작합니다.Start with the following request and body:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}?api-version=2015-07-01
    
    {
      "properties": {
        "roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
        "principalId": "{principalId}"
      }
    }
    
  4. URI 내에서 {scope} 를 역할 할당에 대한 범위로 바꿉니다.Within the URI, replace {scope} with the scope for the role assignment.

    범위Scope 형식Type
    providers/Microsoft.Management/managementGroups/{groupId1} 관리 그룹Management group
    subscriptions/{subscriptionId1} 구독Subscription
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 리소스 그룹Resource group
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/ providers/microsoft.web/sites/mysite1 리소스Resource
  5. {roleAssignmentName} 을 역할 할당의 GUID 식별자로 바꿉니다.Replace {roleAssignmentName} with the GUID identifier of the role assignment.

  6. 요청 본문 내에서 {scope} 를 역할 할당의 범위로 바꿉니다.Within the request body, replace {scope} with the scope for the role assignment.

    범위Scope 형식Type
    providers/Microsoft.Management/managementGroups/{groupId1} 관리 그룹Management group
    subscriptions/{subscriptionId1} 구독Subscription
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 리소스 그룹Resource group
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/ providers/microsoft.web/sites/mysite1 리소스Resource
  7. {roleDefinitionId} 를 역할 정의 식별자로 바꿉니다.Replace {roleDefinitionId} with the role definition identifier.

  8. {principalId} 를 역할이 할당될 사용자, 그룹 또는 서비스 주체의 개체 식별자로 바꿉니다.Replace {principalId} with the object identifier of the user, group, or service principal that will be assigned the role.

액세스 권한 제거Remove access

RBAC에서 액세스 권한을 제거하려면 역할 할당을 제거해야 합니다.In RBAC, to remove access, you remove a role assignment. 역할 할당을 제거하려면 역할 할당 - 삭제 REST API를 사용합니다.To remove a role assignment, use the Role Assignments - Delete REST API. 이 API를 호출하려면 Microsoft.Authorization/roleAssignments/delete 작업에 액세스할 수 있어야 합니다.To call this API, you must have access to the Microsoft.Authorization/roleAssignments/delete operation. 기본 제공 역할의 경우 소유자사용자 액세스 관리자에게만 이러한 작업의 권한이 부여됩니다.Of the built-in roles, only Owner and User Access Administrator are granted access to this operation.

  1. 역할 할당 식별자(GUID)를 가져옵니다.Get the role assignment identifier (GUID). 이 식별자는 역할 할당을 처음 만들 때 반환되거나 역할 할당을 나열하여 가져올 수 있습니다.This identifier is returned when you first create the role assignment or you can get it by listing the role assignments.

  2. 다음 요청으로 시작합니다.Start with the following request:

    DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}?api-version=2015-07-01
    
  3. URI 내에서 {scope} 를 제거할 역할 할당에 대한 범위로 바꿉니다.Within the URI, replace {scope} with the scope for removing the role assignment.

    범위Scope 형식Type
    providers/Microsoft.Management/managementGroups/{groupId1} 관리 그룹Management group
    subscriptions/{subscriptionId1} 구독Subscription
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 리소스 그룹Resource group
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/ providers/microsoft.web/sites/mysite1 리소스Resource
  4. {roleAssignmentName} 을 역할 할당의 GUID 식별자로 바꿉니다.Replace {roleAssignmentName} with the GUID identifier of the role assignment.

다음 단계Next steps