다음을 통해 공유


Azure 역할 할당 이해

역할 할당을 사용하면 특정 Azure 리소스에 대한 액세스 권한을 보안 주체(예: 사용자, 그룹, 관리 ID 또는 서비스 주체)에 부여할 수 있습니다. 이 문서에서는 역할 할당에 대해 자세히 설명합니다.

역할 할당

역할 할당을 만들면 Azure 리소스에 대한 액세스 권한이 부여되고, 역할 할당을 제거하면 액세스 권한이 취소됩니다.

역할 할당에는 다음을 포함한 여러 구성 요소가 있습니다.

  • 역할이 할당된 보안 주체 또는 사용자
  • 할당된 역할
  • 역할이 할당된 범위
  • 역할 할당 이름 및 역할이 할당된 이유를 설명하는 데 도움이 되는 설명

예를 들어 Azure RBAC를 사용하여 할당할 수 있는 역할은 다음과 같습니다.

  • Sally라는 사용자는 ContosoStorage 리소스 그룹의 contoso123 스토리지 계정에 대한 소유자 액세스 권한을 갖습니다.
  • Microsoft Entra ID의 클라우드 관리자 그룹에 속한 모든 사람은 리소스 그룹 ContosoStorage의 모든 리소스에 대한 읽기 권한자 액세스 권한을 갖습니다.
  • 애플리케이션과 연결된 관리 ID는 Contoso의 구독 내에서 가상 머신을 다시 시작할 수 있습니다.

Azure PowerShell을 사용하여 표시되는 역할 할당의 속성에 대한 예는 다음과 같습니다.

{
  "RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
  "RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "DisplayName": "User Name",
  "SignInName": "user@contoso.com",
  "RoleDefinitionName": "Contributor",
  "RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "ObjectId": "22222222-2222-2222-2222-222222222222",
  "ObjectType": "User",
  "CanDelegate": false,
  "Description": null,
  "ConditionVersion": null,
  "Condition": null
}

Azure CLI 또는 REST API를 사용하여 표시되는 역할 할당의 속성에 대한 예는 다음과 같습니다.

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "22222222-2222-2222-2222-222222222222",
  "principalName": "user@contoso.com",
  "principalType": "User",
  "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "roleDefinitionName": "Contributor",
  "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "type": "Microsoft.Authorization/roleAssignments"
}

다음 표에서는 역할 할당 속성의 의미에 대해 설명합니다.

속성 설명
RoleAssignmentName
name
GUID(Globally Unique Identifier)인 역할 할당의 이름입니다.
RoleAssignmentId
id
이름을 포함하는 역할 할당의 고유 ID입니다.
Scope
scope
역할 할당의 범위가 지정된 Azure 리소스 식별자입니다.
RoleDefinitionId
roleDefinitionId
역할의 고유 ID입니다.
RoleDefinitionName
roleDefinitionName
역할의 이름.
ObjectId
principalId
역할이 할당된 보안 주체에 대한 Microsoft Entra 개체 식별자입니다.
ObjectType
principalType
주체가 나타내는 Microsoft Entra 개체의 형식입니다. 유효한 값은 User, GroupServicePrincipal입니다.
DisplayName 사용자에 대한 역할 할당의 경우 사용자의 표시 이름입니다.
SignInName
principalName
사용자의 UPN(고유한 주체 이름) 또는 서비스 주체와 연결된 애플리케이션의 이름입니다.
Description
description
역할 할당에 대한 설명입니다.
Condition
condition
역할 정의 및 특성에서 하나 이상의 작업을 사용하여 작성된 조건문입니다.
ConditionVersion
conditionVersion
조건 버전 번호입니다. 기본값은 2.0이며 지원되는 유일한 버전입니다.
CanDelegate
canDelegate
구현되지 않았습니다.

범위

역할 할당을 만드는 경우 적용되는 범위를 지정해야 합니다. 범위는 보안 주체가 액세스할 수 있는 리소스 또는 리소스 집합을 나타냅니다. 역할 할당 범위를 단일 리소스, 리소스 그룹, 구독 또는 관리 그룹으로 지정할 수 있습니다.

요구 사항을 충족하는 데 필요한 가장 작은 범위를 사용합니다.

예를 들어, 단일 스토리지 계정에 관리 ID 액세스 권한을 부여해야 하는 경우 보안상 리소스 그룹 또는 구독 범위가 아니라 스토리지 계정 범위에서 역할 할당을 만드는 것이 좋습니다.

범위에 대한 자세한 내용은 범위 이해를 참조하세요.

할당할 역할

역할 할당은 역할 정의와 연결됩니다. 역할 정의는 역할 할당 범위 내에서 보안 주체에 있어야 하는 권한을 지정합니다.

기본 제공 역할 정의 또는 사용자 지정 역할 정의를 할당할 수 있습니다. 역할 할당을 만들 때 일부 도구에서는 역할 정의 ID를 사용해야 하지만 다른 도구에서는 역할 이름을 제공할 수 있습니다.

역할 정의에 대한 자세한 내용은 역할 정의 이해를 참조하세요.

주 서버

보안 주체에는 사용자, 보안 그룹, 관리 ID, 워크로드 ID 및 서비스 주체가 포함됩니다. 주체는 Microsoft Entra 테넌트에서 만들어지고 관리됩니다. 역할은 모든 보안 주체에 할당할 수 있습니다. Microsoft Entra ID 개체 ID를 사용하여 역할을 할당하려는 주체를 식별합니다.

Azure PowerShell, Azure CLI, Bicep 또는 다른 IaC(Infrastructure as Code) 기술을 사용하여 역할 할당을 만들 때 보안 주체 유형을 지정합니다. 보안 주체 유형에는 User, GroupServicePrincipal이 포함됩니다. 보안 주체 유형을 올바르게 지정해야 합니다. 그렇지 않으면 특히 서비스 주체 및 관리 ID를 사용하는 경우 일시적인 배포 오류가 발생할 수 있습니다.

이름

역할 할당의 리소스 이름은 GUID(Globally Unique IDentifier)이어야 합니다.

역할 할당 리소스 이름은 역할 할당 범위가 더 좁은 경우에도 Microsoft Entra 테넌트 내에서 고유해야 합니다.

Azure Portal, Azure PowerShell 또는 Azure CLI를 사용하여 역할 할당을 만드는 경우 만들기 프로세스에서 자동으로 고유한 이름을 역할 할당에 지정합니다.

Bicep 또는 다른 IaC(Infrastructure as Code) 기술을 사용하여 역할 할당을 만드는 경우 역할 할당의 이름을 지정하는 방법을 신중하게 계획해야 합니다. 자세한 내용은 Bicep을 사용하여 Azure RBAC 리소스 만들기를 참조하세요.

리소스 삭제 동작

Microsoft Entra ID에서 사용자, 그룹, 서비스 주체 또는 관리 ID를 삭제할 때 모든 역할 할당을 삭제하는 것이 좋습니다. 자동으로 삭제되지 않습니다. 삭제된 보안 주체 ID를 참조하는 모든 역할 할당은 무효화됩니다.

다른 역할 할당에 역할 할당 이름을 재사용하려고 하면 배포가 실패합니다. 이러한 도구를 사용하는 경우 역할 할당 이름을 명시적으로 설정해야 하므로 이 문제는 Bicep 또는 ARM 템플릿(Azure Resource Manager 템플릿)을 사용하여 역할 할당을 배포할 때 발생할 가능성이 더 큽니다. 이 동작을 해결하려면 이전 역할 할당을 다시 만들기 전에 제거하거나 새 역할 할당을 배포할 때 고유한 이름을 사용해야 합니다.

설명

텍스트 설명을 역할 할당에 추가할 수 있습니다. 설명은 선택 사항이지만 역할 할당에 추가하는 것이 좋습니다. 보안 주체에 할당된 역할이 필요한 이유에 대한 간단한 근거를 제공합니다. 누군가가 역할 할당을 감사할 때 설명은 해당 역할 할당이 만들어진 이유와 여전히 적용 가능한지 여부를 이해하는 데 도움이 될 수 있습니다.

조건

일부 역할은 특정 작업의 컨텍스트에서 특성을 기반으로 하는 역할 할당 조건을 지원합니다. 역할 할당 조건은 필요에 따라 역할 할당에 추가하여 보다 세분화된 액세스 제어를 제공할 수 있는 추가 검사입니다.

예를 들어 사용자가 개체를 읽을 수 있도록 개체에 특정 태그가 있어야 한다는 조건을 추가할 수 있습니다.

일반적으로 시각적 조건 편집기를 사용하여 조건을 작성하지만 코드의 조건 예제는 다음과 같습니다.

((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'))

앞의 조건을 통해 사용자는 Project라는 Blob 인덱스 태그 키와 Cascade라는 값을 사용하여 Blob을 읽을 수 있습니다.

조건에 대한 자세한 내용은 Azure ABAC(Azure 특성 기반 액세스 제어)란?을 참조하세요.

Privileged Identity Management와의 통합(미리 보기)

Important

Privileged Identity Management와의 Azure 역할 할당 통합은 현재 미리 보기 단계에 있습니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

Microsoft Entra ID P2 또는 Microsoft Entra ID Governance 라이선스가 있는 경우 Microsoft Entra PIM(Privileged Identity Management)가 역할 할당 단계에 통합됩니다. 예를 들어, 제한된 기간 동안 사용자에게 역할을 할당할 수 있습니다. 사용자에게 역할 할당 자격을 부여하여 역할을 사용하기 위해 활성화해야 하는 경우도 있습니다(예: 승인 요청). 적격 역할 할당은 제한된 기간 동안 역할에 대한 Just-In-Time 액세스를 제공합니다. 애플리케이션, 서비스 주체 또는 관리 ID는 활성화 단계를 수행할 수 없으므로 이에 대한 적격 역할 할당을 만들 수 없습니다. 관리 그룹, 구독 및 리소스 그룹 범위에서 적격 역할 할당을 만들 수 있지만, 리소스 범위에서는 만들 수 없습니다. 이 기능은 단계적으로 배포되므로 사용자의 테넌트에서 아직 사용할 수 없거나 인터페이스가 다를 수 있습니다.

사용 가능한 할당 유형 옵션은 PIM 정책에 따라 달라질 수 있습니다. 예를 들어, PIM 정책은 영구 할당을 만들 수 있는지 여부, 시간 제한이 있는 할당의 최대 기간, 역할 활성화 요구 사항(승인, 다단계 인증 또는 조건부 액세스 인증 컨텍스트) 및 기타 설정을 정의합니다. 자세한 내용은 Privileged Identity Management에서 Azure 리소스 역할 설정 구성을 참조하세요.

PIM 기능을 사용하지 않으려면 활성 할당 유형 및 영구 할당 기간 옵션을 선택합니다. 이러한 설정은 주체가 항상 역할에 대한 권한을 갖는 역할 할당을 만듭니다.

역할 할당 추가와 할당 유형 옵션이 표시된 스크린샷.

PIM을 더 잘 이해하려면 다음 용어를 검토해야 합니다.

용어 또는 개념 역할 할당 범주 설명
적격 Type 사용자가 역할을 사용하기 위해 하나 이상의 작업을 수행해야 하는 역할 할당입니다. 사용자가 역할에 대한 자격을 얻은 경우 권한 있는 작업을 수행해야 할 때 해당 역할을 활성화할 수 있음을 의미합니다. 영구 및 적격 역할 할당을 비교했을 때 이 둘을 통해 다른 사람에게 주어진 액세스에는 차이가 없습니다. 유일한 차이는 사람들이 그 액세스를 항상 필요로 하지 않는다는 점입니다.
활성 Type 사용자가 역할을 사용하기 위해 어떤 작업을 수행할 필요가 없는 역할 할당입니다. 활성으로 할당된 사용자에게는 역할에 할당된 권한이 있습니다.
설치 사용자가 자격이 있는 역할을 사용하기 위해 하나 이상의 작업을 수행하는 프로세스입니다. 작업은 MFA(Multi-Factor Authentication) 검사를 수행하고, 비즈니스 근거를 제공하거나 지정된 승인자의 승인을 요청하는 과정을 포함할 수 있습니다.
영구 적격 기간 사용자가 항상 역할을 활성화할 수 있는 자격이 있는 역할 할당입니다.
영구 활성 기간 사용자가 어떤 작업도 수행하지 않고 항상 역할을 사용할 수 있는 역할 할당입니다.
시간 범위 적격 기간 사용자가 시작 및 종료 날짜 내에만 역할을 활성화할 수 있는 자격이 있는 역할 할당입니다.
시간 범위 활성 기간 사용자가 시작 및 종료 날짜에만 역할을 사용할 수 있는 역할 할당입니다.
JIT(Just In Time) 액세스 사용자가 권한 있는 작업을 수행하기 위해 임시 사용 권한을 받는 모델이며, 악의적 또는 권한이 없는 사용자가 권한이 만료된 후 액세스 권한을 획득하는 것을 방지합니다. 액세스 권한은 사용자에게 필요한 경우에만 부여됩니다.
최소 권한 액세스 원칙 모든 사용자에게 수행할 권한이 있는 작업을 수행하는 데 필요한 최소 권한만 제공하는 권장 보안 방법입니다. 이 방법은 글로벌 관리자 수를 최소화하고, 그 대신 특정 시나리오에 대해 구체적 관리자 역할을 사용합니다.

자세한 내용은 Microsoft Entra Privileged Identity Management란?을 참조하세요.

다음 단계