Azure 관리 그룹이란?

조직에 Azure 구독이 많으면 구독에 대한 액세스, 정책 및 준수를 효율적으로 관리하는 방법이 필요할 수 있습니다. 관리 그룹은 구독 위의 거버넌스 범위를 제공합니다. 연결된 모든 구독에 대한 상속을 통해 적용하는 거버넌스 조건을 관리 그룹으로 구성합니다.

관리 그룹을 사용하면 구독 유형에 관계없이 엔터프라이즈급 관리 기능을 대규모로 사용할 수 있습니다. 그러나 단일 관리 그룹 내의 모든 구독은 동일한 Azure AD(Azure Active Directory) 테넌트를 신뢰해야 합니다.

예를 들어, VM(가상 머신) 생성에 사용 가능한 지역을 제한하는 정책을 관리 그룹에 적용할 수 있습니다. 이 정책은 모든 중첩된 관리 그룹, 구독, 리소스에 적용되며 권한 있는 지역에서만 VM을 만들 수 있습니다.

관리 그룹 및 구독의 계층 구조

리소스를 통합 정책 및 액세스 관리를 위한 계층 구조로 구성하는 유연한 관리 그룹 및 구독 구조를 만들 수 있습니다. 다음 다이어그램에서는 관리 그룹을 사용하여 거버넌스 계층 구조를 만드는 예를 보여 줍니다.

Diagram of a sample management group hierarchy.

관리 그룹과 구독을 모두 보유하는 루트 관리 그룹의 다이어그램입니다. 일부 자식 관리 그룹은 관리 그룹을 보유하고, 일부는 구독을 보유하며, 일부는 모두를 보유합니다. 샘플 계층 구조의 예제 중 하나는 자식 수준을 모두 구독하는 네 가지 수준의 관리 그룹입니다.

예를 들어 "Corp"이라는 관리 그룹에서 VM 위치를 미국 서부 지역으로 제한하는 정책을 적용하는 계층을 만들 수 있습니다. 이 정책은 해당 관리 그룹의 하위 항목인 모든 EA(기업 계약) 구독으로 상속되어 해당 구독의 모든 VM에 적용됩니다. 거버넌스 향상을 위해 리소스 또는 구독 소유자가 해당 보안 정책을 변경할 수 없습니다.

참고 항목

관리 그룹은 현재 MCA(Microsoft 고객 계약) 구독에 대한 Cost Management 기능에서 지원되지 않습니다.

관리 그룹을 사용하는 또 다른 시나리오는 여러 구독에 대한 사용자 액세스를 제공하는 것입니다. 여러 구독을 해당 관리 그룹으로 이동하면 관리 그룹에 하나의 Azure 역할 할당을 만들 수 있습니다. 이는 모든 구독에 대한 해당 액세스 권한을 상속합니다. 관리 그룹에 하나만 할당하면 여러 구독에 Azure RBAC를 스크립팅하지 않고 사용자가 필요한 모든 항목에 액세스할 수 있습니다.

관리 그룹에 대한 중요 한 사실

  • 단일 디렉터리에서 지원할 수 있는 관리 그룹 수는 10,000개입니다.
  • 관리 그룹 트리에서 지원할 수 있는 최대 깊이 수준은 6입니다.
    • 이 제한에는 루트 수준 또는 구독 수준이 포함되지 않습니다.
  • 각 관리 그룹 및 구독은 하나의 부모만 지원할 수 있습니다.
  • 각 관리 그룹에는 여러 자식 요소가 있을 수 있습니다.
  • 모든 구독 및 관리 그룹은 각 디렉터리의 단일 계층 내에 위치합니다. 루트 관리 그룹에 대한 중요한 사실을 참조하세요.

각 디렉터리에 대한 루트 관리 그룹

각 디렉터리에는 루트 관리 그룹이라는 하나의 최상위 수준 관리 그룹이 있습니다. 이 루트 관리 그룹은 모든 관리 그룹과 구독이 루트 관리 그룹까지 접히도록 만들어집니다. 이 루트 관리 그룹은 글로벌 정책 및 Azure 역할 할당을 디렉터리 수준에서 적용하는 것을 허용합니다. 처음에 이 루트 그룹의 사용자 액세스 관리자 역할을 위해 Azure AD 글로벌 관리자는 자신을 승격해야 합니다. 액세스 권한 승격 후, 관리자는 다른 디렉터리 사용자 또는 그룹에 모든 Azure 역할을 할당하여 계층 구조를 관리할 수 있습니다. 관리자는 자신의 계정을 루트 관리 그룹의 소유자로 지정할 수 있습니다.

루트 관리 그룹에 대한 중요한 사실

  • 기본적으로 루트 관리 그룹의 표시 이름은 테넌트 루트 그룹이며 관리 그룹으로 자체 작동합니다. ID는 Azure AD(Azure Active Directory) 테넌트 ID와 동일한 값입니다.
  • 표시 이름을 변경하려면 계정에 루트 관리 그룹의 소유자 또는 기여자 역할이 할당되어야 합니다. 관리 그룹 이름을 변경하려면 관리 그룹의 이름 변경을 참조하세요.
  • 루트 관리 그룹은 다른 관리 그룹과는 다르게 이동하거나 삭제할 수 없습니다.
  • 모든 구독 및 관리 그룹은 디렉터리 내 하나의 루트 관리 그룹이 될 때까지 접을 수 있습니다.
    • 디렉터리의 모든 리소스는 전역 관리를 위해 루트 관리 그룹까지 접을 수 있습니다.
    • 새 구독이 생성될 때 자동으로 루트 관리 그룹에 기본값이 지정되지 않습니다.
  • 모든 Azure 고객은 루트 관리 그룹을 볼 수 있지만 일부 고객에게는 해당 루트 관리 그룹을 관리하는 액세스 권한이 없습니다.
    • 구독에 대한 액세스 권한이 있는 모든 사용자는 계층 구조에 있는 해당 구독의 컨텍스트를 볼 수 있습니다.
    • 사용자에게는 루트 관리 그룹에 대한 기본 액세스 권한이 부여되지 않습니다. Azure AD 글로벌 관리자는 액세스 권한을 스스로 높일 수 있는 유일한 사용자입니다. 루트 관리 그룹에 대한 액세스 권한이 있는 글로벌 관리자는 다른 사용자에게 Azure 역할을 할당하여 관리할 수 있습니다.

Important

루트 관리 그룹에서 사용자 액세스 또는 정책은 디렉터리 내의 모든 리소스에 적용됩니다. 이로 인해 모든 고객은 이 범위에서 정의된 항목을 가져야 하는 필요성을 평가해야 합니다. 사용자 액세스 및 정책 할당은 이 범위에만 "있어야" 합니다.

관리 그룹의 초기 설치

사용자가 관리 그룹을 사용하기 시작하는 경우 발생하는 초기 설치 프로세스가 있습니다. 첫 번째 단계는 루트 관리 그룹을 디렉터리에 만드는 것입니다. 이 그룹을 만들면 디렉터리에 있는 모든 기존 구독이 루트 관리 그룹의 자식 요소를 만듭니다. 이 프로세스는 디렉터리 내에 하나의 관리 그룹 계층 구조가 있도록 했기 때문에 발생합니다. 디렉터리 내의 단일 계층 구조를 사용하면 관리 고객은 디렉터리 내의 다른 고객이 무시할 수 없는 전역 액세스 및 정책을 적용할 수 있습니다. 루트에 할당된 모든 항목은 전체 계층 구조에 적용되며 여기에는 해당 Azure AD 테넌트 내의 모든 관리 그룹, 구독, 리소스 그룹 및 리소스가 포함됩니다.

관리 그룹 액세스

Azure 관리 그룹은 모든 리소스 액세스 및 역할 정의를 위한 Azure RBAC(Azure 역할 기반 액세스 제어)를 지원합니다. 이러한 권한은 해당 계층 구조에 있는 자식 리소스에 상속됩니다. 모든 Azure 역할은 리소스에 대한 계층 구조를 상속하는 관리 그룹에 할당할 수 있습니다. 예를 들어 Azure 역할 VM 기여자는 관리 그룹에 할당할 수 있습니다. 역할은 관리 그룹에 대한 조치를 취하지 않지만 해당 관리 그룹에서 모든 VM에 상속됩니다.

다음 차트에서는 관리 그룹에 대한 역할 및 지원되는 작업 목록을 보여줍니다.

Azure 역할 이름 생성 이름 바꾸기 이동** 삭제 액세스 권한 할당 정책 할당 읽음
담당자 X X X X X X X
참가자 X X X X X
MG 기여자* X X X X X
판독기 X
MG 읽기 권한자* X
리소스 정책 기여자 X
사용자 액세스 관리자 X X

*: 관리 그룹 기여자관리 그룹 읽기 권한자 역할을 통해 사용자는 관리 그룹 범위에서만 이러한 작업을 수행할 수 있습니다.

**: 구독 또는 관리 그룹을 이동하기 위해 루트 관리 그룹에 대한 역할을 할당할 필요가 없습니다.

계층 내에서 항목을 이동하는 방법에 대한 세부 정보는 관리 그룹을 사용하여 리소스 관리를 참조하세요.

Azure 사용자 지정 역할 정의 및 할당

Azure 사용자 지정 역할 정의에서 관리 그룹을 할당 가능한 범위로 정의할 수 있습니다. 그런 다음 해당 관리 그룹 및 다른 관리 그룹, 구독, 리소스 그룹 또는 리소스 그룹의 리소스에 Azure 사용자 지정 역할을 할당할 수 있습니다. 사용자 지정 역할은 기본 제공 역할과 마찬가지로 계층 구조를 상속합니다. 사용자 지정 역할 및 관리 그룹에 대한 제한 사항에 대한 자세한 내용은 제한 사항를 참조하세요.

예제 정의

사용자 지정 역할 정의 및 만들기는 관리 그룹을 포함해도 변경되지 않습니다. 전체 경로를 사용하여 /providers/Microsoft.Management/managementgroups/{groupId} 관리 그룹을 정의합니다.

관리 그룹의 표시 이름이 아니라 관리 그룹의 ID를 사용합니다. 이 일반 오류는 관리 그룹을 만들 때 둘 다 사용자 정의 필드이기 때문에 발생합니다.

...
{
  "Name": "MG Test Custom Role",
  "Id": "id",
  "IsCustom": true,
  "Description": "This role provides members understand custom roles.",
  "Actions": [
    "Microsoft.Management/managementgroups/delete",
    "Microsoft.Management/managementgroups/read",
    "Microsoft.Management/managementgroup/write",
    "Microsoft.Management/managementgroup/subscriptions/delete",
    "Microsoft.Management/managementgroup/subscriptions/write",
    "Microsoft.resources/subscriptions/read",
    "Microsoft.Authorization/policyAssignments/*",
    "Microsoft.Authorization/policyDefinitions/*",
    "Microsoft.Authorization/policySetDefinitions/*",
    "Microsoft.PolicyInsights/*",
    "Microsoft.Authorization/roleAssignments/*",
    "Microsoft.Authorization/roledefinitions/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
        "/providers/microsoft.management/managementGroups/ContosoCorporate"
  ]
}
...

역할 정의 및 할당 계층 경로를 위반하는 이슈

역할 정의는 관리 그룹 계층 구조 내부의 어느 위치에나 할당 가능한 범위입니다. 역할 정의는 부모 관리 그룹에서 정의할 수 있지만 실제 역할 할당은 자식 구독에 존재합니다. 두 항목 간에 관계가 있으므로, 해당 정의에서 할당을 분리하려고 시도하면 오류가 발생합니다.

예를 들어 시각적 개체의 계층 구조 일부를 살펴보겠습니다.

Diagram of a subset of the sample management group hierarchy.

다이어그램은 자식 랜딩 존 및 샌드박스 관리 그룹이 있는 루트 관리 그룹에 중점을 둡니다. 랜딩 존 관리 그룹에는 Corp 및 Online이라는 두 개의 자식 관리 그룹이 있고 샌드박스 관리 그룹에는 두 개의 자식 구독이 있습니다.

샌드박스 관리 그룹에 정의된 사용자 지정 역할이 있다고 가정해 보겠습니다. 그런 다음 해당 사용자 지정 역할이 두 개의 샌드박스 구독에 할당됩니다.

이러한 구독 중 하나를 Corp 관리 그룹의 자식으로 이동하려고 하면 구독 역할 할당에서 샌드박스 관리 그룹 역할 정의로의 경로가 끊어집니다. 이 시나리오에서는 이 관계를 손상하는 이동은 허용되지 않는다는 오류 메시지가 표시됩니다.

이 시나리오를 해결하는 다음과 같은 몇 가지 옵션이 있습니다.

  • 구독을 새 부모 MG로 이동하기 전에 구독에서 역할 할당을 제거합니다.
  • 역할 정의의 할당 가능한 범위에 구독을 추가합니다.
  • 역할 정의 내에서 할당 가능한 범위를 변경합니다. 위의 예제에서 계층 구조의 두 분기가 정의에 도달할 수 있도록 할당 가능한 범위를 샌드박스에서 루트 관리 그룹으로 업데이트할 수 있습니다.
  • 다른 분기에 정의되는 다른 사용자 지정 역할을 만듭니다. 이 새 역할을 사용하려면 구독에서도 역할 할당을 변경해야 합니다.

제한 사항

관리 그룹에 사용자 지정 역할을 사용할 때 몇 가지 제한 사항이 있습니다.

  • 새 역할의 할당 가능한 범위에서 관리 그룹을 하나만 정의할 수 있습니다. 이 제한은 역할 정의와 역할 할당의 연결이 끊어지는 상황을 줄이기 위해 마련되었습니다. 이 상황은 역할 할당이 있는 구독 또는 관리 그룹을 역할 정의가 없는 다른 부모로 이동할 때 발생합니다.
  • 리소스 공급자 데이터 평면 작업은 관리 그룹 사용자 지정 역할에서 정의할 수 없습니다. 이 제한은 데이터 평면 리소스 공급자를 업데이트하는 동안 대기 시간 문제가 있기 때문에 마련되었습니다. 이 대기 시간 이슈를 해결하기 위해 노력 중이며, 위험을 줄이기 위해 역할 정의에서 이러한 작업을 사용하지 않을 것입니다.
  • Azure Resource Manager는 관리 그룹이 역할 정의의 할당 가능한 범위에 있는지 확인하지 않습니다. 철자 오류가 있거나 잘못된 관리 그룹 ID가 나열되어 있는 경우에도 역할 정의는 계속 생성됩니다.

관리 그룹 및 구독 이동

관리 그룹 또는 구독을 다른 관리 그룹의 자식으로 이동하려면 세 가지 규칙이 true로 평가되어야 합니다.

이동 작업을 수행하는 경우 다음이 필요합니다.

  • 자식 구독 또는 관리 그룹에 대한 관리 그룹 쓰기 및 역할 할당 쓰기 권한.
    • 기본 제공 역할 예제: 소유자
  • 대상 부모 관리 그룹에 대한 관리 그룹 쓰기 액세스 권한.
    • 기본 제공 역할 예제: 소유자, 기여자, 관리 그룹 기여자
  • 기존 부모 관리 그룹에 대한 관리 그룹 쓰기 액세스 권한.
    • 기본 제공 역할 예제: 소유자, 기여자, 관리 그룹 기여자

예외: 대상 또는 기존 부모 관리 그룹이 루트 관리 그룹인 경우 권한 요구 사항이 적용되지 않습니다. 루트 관리 그룹은 모든 새 관리 그룹 및 구독의 기본 랜딩 스팟이므로 루트 관리 그룹에 대한 권한이 없어도 항목을 이동할 수 있습니다.

구독에 대한 소유자 역할이 현재 관리 그룹에서 상속되는 경우 이동 대상이 제한됩니다. 소유자 역할이 있는 다른 관리 그룹으로만 구독을 이동할 수 있습니다. 기여자인 관리 그룹으로는 이동할 수 없습니다. 구독의 소유권을 잃게 되기 때문입니다. 구독에 대한 소유자 역할에 직접 할당되는 경우(관리 그룹에서 상속되지 않음) 기여자 역할이 할당된 관리 그룹으로 이를 이동할 수 있습니다.

Important

Azure Resource Manager는 최대 30분 동안 관리 그룹 계층 구조 세부 정보를 캐시합니다. 따라서 관리 그룹을 이동하면 Azure Portal에 즉시 반영되지 않을 수 있습니다.

활동 로그를 사용하여 관리 그룹 감사

관리 그룹은 Azure 활동 로그 내에서 지원됩니다. 다른 Azure 리소스와 동일한 중앙 위치에서 관리 그룹에 발생하는 모든 이벤트를 검색할 수 있습니다. 예를 들어 특정 관리 그룹에 이루어진 모든 역할 할당 또는 정책 할당 변경 내용을 볼 수 있습니다.

Screenshot of Activity Logs and operations related to the selected management group.

Azure Portal 외부에서 관리 그룹의 쿼리를 살펴보면 관리 그룹에 대한 대상 범위가 "/providers/Microsoft.Management/managementGroups/{management-group-id}"와 같이 표시됩니다.

참고 항목

Azure Resource Manager REST API를 사용하고 관리 그룹에서 진단 설정을 사용하도록 설정하여 관련된 Azure 활동 로그 항목을 Log Analytics 작업 영역, Azure Storage 또는 Azure Event Hub로 보낼 수 있습니다. 자세한 내용은 관리 그룹 진단 설정 - 만들기 또는 업데이트를 참조하세요.

다음 단계

관리 그룹에 대해 자세히 알아보려면 다음 항목을 참조하세요.