위임된 구독 내에서 수정할 수 있는 정책 배포

Azure Lighthouse를 사용하면 서비스 공급자가 위임된 구독 내에서 정책 정의를 만들고 편집할 수 있습니다. 수정 작업(즉, deployIfNotExists 또는 modify 효과를 사용하는 정책)을 사용하는 정책을 배포하려면 고객 테넌트에서 관리 ID를 만들어야 합니다. Azure Policy에서 이 관리 ID를 사용하여 정책 내에서 템플릿을 배포할 수 있습니다. 이 문서에서는 Azure Lighthouse에 고객을 등록하고 정책 자체를 배포할 때 이 시나리오를 활성화하는 데 필요한 단계를 설명합니다.

이 항목에서는 서비스 공급자 및 고객만 언급하지만 여러 테넌트를 관리하는 기업에서도 동일한 프로세스를 사용할 수 있습니다.

고객 테넌트에서 관리 ID에 역할을 할당할 수 있는 사용자 만들기

고객을 Azure Lighthouse에 온보딩할 때 고객 테넌트의 위임된 리소스에 대한 액세스 권한을 부여하는 권한 부여를 정의합니다. 각 권한 부여는 관리 테넌트에서 Microsoft Entra 사용자, 그룹 또는 서비스 주체에 해당하는 principalId 및 권한을 받는 Azure 기본 제공 역할에 해당하는 roleDefinitionId를 지정합니다.

principalId가 고객 테넌트에서 관리 ID에 대한 역할을 할당하려면 해당 roleDefinitionId사용자 액세스 관리자로 설정해야 합니다. 이 역할은 일반적으로 Azure Lighthouse에서 지원되지 않지만 이 특정 시나리오에서 사용할 수 있습니다. 이 principalId에 이 역할을 부여하면 관리 ID에 특정 기본 제공 역할을 할당할 수 있습니다. 이러한 역할은 delegatedRoleDefinitionIds 속성에서 정의되며 사용자 액세스 관리자 또는 소유자를 제외한 모든 지원되는 Azure 기본 제공 역할을 포함할 수 있습니다.

고객이 등록된 후 이 권한 부여에서 만든 principalId는 이러한 기본 제공 역할을 고객 테넌트의 관리 ID에 할당할 수 있습니다. 일반적으로 사용자 액세스 관리자 역할과 연결된 다른 권한은 없습니다.

참고 항목

테넌트 간 역할 할당은 현재 Azure Portal이 아닌 API를 통해 수행해야 합니다.

아래 예제에서는 사용자 액세스 관리자 역할을 보유하는 principalId를 보여 줍니다. 이 사용자는 고객 테넌트에서 관리 ID에 두 개의 기본 제공 역할(참가자 및 Log Analytics 참가자)을 할당할 수 있습니다.

{
    "principalId": "3kl47fff-5655-4779-b726-2cf02b05c7c4",
    "principalIdDisplayName": "Policy Automation Account",
    "roleDefinitionId": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
    "delegatedRoleDefinitionIds": [
         "b24988ac-6180-42a0-ab88-20f7382dd24c",
         "92aaf0da-9dab-42b6-94a3-d43ce8d16293"
    ]
}

수정할 수 있는 정책 배포

위의 설명대로 필수 권한을 사용하여 사용자를 만든 후에는 해당 사용자가 위임된 고객 구독 내에서 수정 작업을 사용하는 정책을 배포할 수 있습니다.

예를 들어, 이 샘플에 설명된 대로 고객 테넌트에서 Azure Key Vault 리소스에서 진단을 사용하도록 설정하려고 한다고 가정합니다. 위에서 설명한 것처럼 적절한 권한이 있는 관리 테넌트의 사용자는 이 시나리오를 활성화하기 위해 Azure Resource Manager 템플릿을 배포합니다.

위임된 구독과 함께 사용할 정책 할당을 만드는 작업은 현재 Azure Portal이 아닌 API를 통해 수행해야 합니다. 이렇게 하려면 apiVersion2019-04-01-preview 이상으로 설정하여 새 delegatedManagedIdentityResourceId 속성을 포함해야 합니다. 이 속성을 사용하면 고객 테넌트(Azure Lighthouse에 온보딩된 구독 또는 리소스 그룹)에 있는 관리 ID를 포함할 수 있습니다.

다음 예제에서는 delegatedManagedIdentityResourceId를 사용하는 역할 할당을 보여 줍니다.

"type": "Microsoft.Authorization/roleAssignments",
            "apiVersion": "2019-04-01-preview",
            "name": "[parameters('rbacGuid')]",
            "dependsOn": [
                "[variables('policyAssignment')]"
            ],
            "properties": {
                "roleDefinitionId": "[concat(subscription().id, '/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]",
                "principalType": "ServicePrincipal",
                "delegatedManagedIdentityResourceId": "[concat(subscription().id, '/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignment'))]",
                "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignment')), '2018-05-01', 'Full' ).identity.principalId)]"
            }

유사한 샘플을 사용하여 위임된 구독에 태그(수정 효과 사용)를 추가하거나 제거하는 정책을 배포하는 방법을 보여 줄 수 있습니다.

다음 단계