Azure Policy를 사용하여 관리 ID 할당(미리 보기)

Azure Policy는 조직 표준을 적용하고 대규모로 규정 준수를 평가하는 데 도움이 됩니다. 규정 준수 대시보드에서 Azure 정책은 관리자가 전체적인 환경 상태를 평가할 수 있도록 하는 집계된 보기를 제공합니다. 리소스별, 정책별 세분성으로 드릴다운할 수 있습니다. 또한 기존 리소스에 대한 대량 수정 및 새 리소스에 대한 자동 수정을 통해 리소스를 규정 준수 상태로 전환할 수 있습니다. Azure Policy에 대한 일반적인 사용 사례에는 다음에 대한 거버넌스 구현이 포함됩니다.

  • 리소스 일관성
  • 규정 준수
  • 보안
  • 비용
  • 관리

이러한 일반적인 사용 사례에 대한 정책 정의는 Azure 환경에서 이미 사용할 수 있으므로 시작하는 데 도움이 됩니다.

Azure Monitoring Agent에는 모니터링되는 Azure VM(Virtual Machines)의 관리 ID가 필요합니다. 이 문서에서는 이러한 시나리오에 필요한 관리 ID가 VM에 대규모로 할당되도록 하는 데 도움이 되는 Microsoft에서 제공하는 기본 제공 Azure Policy 동작을 설명합니다.

시스템 할당 관리 ID를 사용할 수 있지만 대규모로 사용할 경우(예: 구독의 모든 VM에 대해) Microsoft Entra ID에서 상당한 수의 ID가 생성(및 삭제)됩니다. 이러한 ID 변동을 방지하려면 한 번 만들어 여러 VM에서 공유할 수 있는 사용자 할당 관리 ID를 사용하는 것이 좋습니다.

참고 항목

Azure 지역별로 Azure 구독당 사용자 할당 관리 ID를 사용하는 것이 좋습니다.

이 정책은 이 권장 사항을 구현하도록 디자인되었습니다.

정책 정의 및 세부 정보

실행되면 정책은 다음 작업을 수행합니다.

  1. 존재하지 않는 경우 정책 범위에 있는 VM을 기준으로 구독 및 각 Azure 지역에 새 기본 제공 사용자 할당 관리 ID를 만듭니다.
  2. 만든 후에는 실수로 삭제되지 않도록 사용자 할당 관리 ID에 잠금을 배치합니다.
  3. 정책 범위에 있는 VM에 따라 구독 및 지역에서 Virtual Machines에 기본 제공 사용자 할당 관리 ID를 할당합니다.

참고 항목

Virtual Machine에 사용자가 할당한 관리 ID가 정확히 1개 있는 경우 정책은 이 VM을 건너뛰고 기본 제공 ID를 할당합니다. 이렇게 하면 IMDS에서 토큰 엔드포인트의 기본 동작에 종속되는 애플리케이션이 정책 할당으로 인해 중단되지 않을 수 있습니다.

정책을 사용하는 다음 두 가지 시나리오가 있습니다.

  • 정책에서 "기본 제공" 사용자 할당 관리 ID를 만들고 사용하도록 합니다.
  • 사용자 고유의 사용자 할당 관리 ID

정책은 다음 입력 매개 변수를 사용합니다.

  • Bring-Your-Own-UAMI? - 없는 경우 정책에서 새 사용자 할당 관리 ID를 만들어야 하나요?
  • true로 설정하면 다음을 지정해야 합니다.
    • 관리 ID의 이름
    • 관리 ID를 만들어야 하는 리소스 그룹입니다.
  • false로 설정하면 추가 입력이 필요하지 않습니다.
    • 정책은 "built-in-identity-rg"라는 리소스 그룹에 "built-in-identity"라는 필수 사용자 할당 관리 ID를 만듭니다.

정책 사용

정책 할당 만들기

정책 정의는 관리 그룹 구독 또는 특정 리소스 그룹에서 Azure의 다양한 범위에 할당할 수 있습니다. 정책을 항상 적용해야 하므로 정책 할당 개체와 연결된 관리 ID를 사용하여 할당 작업이 수행됩니다. 정책 할당 개체는 시스템 할당 및 사용자 할당 관리 ID를 모두 지원합니다. 예를 들어 Joe는 PolicyAssignmentMI라는 사용자 할당 관리 ID를 만들 수 있습니다. 기본 제공 정책은 정책 할당 범위에 있는 리소스를 사용하여 각 구독 및 각 지역에 사용자 할당 관리 ID를 만듭니다. 정책에서 만든 사용자 할당 관리 ID의 resourceId 형식은 다음과 같습니다.

/subscriptions/your-subscription-id/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-{location}

예시:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-eastus

필수 인증

PolicyAssignmentMI 관리 ID가 지정된 범위에서 기본 제공 정책을 할당할 수 있도록 하려면 Azure RBAC(Azure 역할 기반 액세스 제어) 역할 할당으로 표현된 다음 권한이 필요합니다.

주 서버 역할/작업 Scope 목적
PolicyAssigmentMI 관리 ID 운영자 /subscription/subscription-id/resourceGroups/built-in-identity
OR
Bring-your-own-User-assinged-Managed identity
VM에 기본 제공 ID를 할당하는 데 필요합니다.
PolicyAssigmentMI 참가자 /subscription/subscription-id> 구독에서 기본 제공 관리 ID를 보유하는 리소스 그룹을 만드는 데 필요합니다.
PolicyAssigmentMI 관리 ID 참가자 /subscription/subscription-id/resourceGroups/built-in-identity 새 사용자가 할당한 관리 ID를 만드는 데 필요합니다.
PolicyAssigmentMI 사용자 액세스 관리자 /subscription/subscription-id/resourceGroups/built-in-identity
OR
Bring-your-own-User-assigned-Managed identity
정책에서 만든 사용자 할당 관리 ID에 대한 잠금을 설정하는 데 필요합니다.

사전에 정책 할당 개체에 이 권한이 있어야 하므로 PolicyAssignmentMI는 이 시나리오에 대한 시스템 할당 관리 ID가 될 수 없습니다. 정책 할당 작업을 수행하는 사용자는 위의 역할 할당을 사용하여 사전에 PolicyAssignmentMI에 권한을 부여해야 합니다.

보시다시피 필요한 최소 권한 역할은 구독 범위에서 "기여자"입니다.

알려진 문제

VM에 할당된 ID를 변경하는 다른 배포의 가능한 경합 조건은 예기치 않은 결과를 초래할 수 있습니다.

동일한 가상 머신을 업데이트하는 두 개 이상의 병렬 배포가 있고 모두 가상 머신의 ID 구성을 변경하는 경우 특정 경합 조건에서 모든 예상 ID가 머신에 할당되지 않을 수 있습니다. 예를 들어 이 문서의 정책이 VM의 관리 ID를 업데이트하는 동시에 다른 프로세스도 관리 ID 섹션을 변경하는 경우 예상되는 모든 ID가 VM에 올바르게 할당된다는 보장은 없습니다.

다음 단계