Menyebarkan kebijakan yang dapat diremediasi dalam langganan yang didelegasikan

Azure Lighthouse memungkinkan penyedia layanan untuk membuat dan mengedit definisi kebijakan dalam langganan yang didelegasikan. Untuk menyebarkan kebijakan yang menggunakan tugas remediasi (yaitu, kebijakan dengan efek deployIfNotExists atau modifikasi), Anda harus membuat identitas terkelola di penyewa pelanggan. Identitas terkelola ini dapat digunakan oleh Azure Policy untuk menerapkan templat dalam kebijakan. Artikel ini menjelaskan langkah-langkah yang diperlukan untuk mengaktifkan skenario ini, baik saat Anda onboarding pelanggan untuk Azure Lighthouse, dan saat Anda menyebarkan kebijakan itu sendiri.

Tip

Meskipun kami mengacu pada penyedia layanan dan pelanggan dalam topik ini, perusahaan yang mengelola banyak penyewa dapat menggunakan proses yang sama.

Membuat pengguna yang dapat menetapkan peran ke identitas terkelola di penyewa pelanggan

Saat Anda melakukan onboarding pelanggan ke Azure Lighthouse, Anda menentukan otorisasi yang memberikan akses ke sumber daya yang didelegasikan di penyewa pelanggan. Setiap otorisasi menentukan principalId yang sesuai dengan pengguna, grup, atau perwakilan layanan Microsoft Entra dalam penyewa pengelola, dan roleDefinitionId yang sesuai dengan peran bawaan Azure yang akan diberikan.

Untuk mengizinkan principalId menetapkan peran ke identitas terkelola di penyewa pelanggan, Anda harus mengatur roleDefinitionId-nya ke Administrator Akses Pengguna. Meskipun peran ini umumnya tidak didukung untuk Azure Lighthouse, peran ini dapat digunakan dalam skenario khusus ini. Memberikan peran ini kepada principalId ini memungkinkannya untuk menetapkan peran bawaan tertentu ke identitas terkelola. Peran ini didefinisikan dalam properti delegatedRoleDefinitionIds dan dapat menyertakan peran bawaan Azure yang didukung kecuali untuk Pemilik atau Administrator Akses Pengguna.

Setelah pelanggan telah melakukan onboarding, prinsipalid yang dibuat dalam otorisasi ini akan dapat menetapkan peran bawaan untuk identitas terkelola di penyewa pelanggan. Namun, mereka tidak akan memiliki izin lain yang biasanya terkait dengan peran Administrator Akses Pengguna.

Catatan

Penetapan peran di seluruh penyewa saat ini harus dilakukan melalui API, bukan di portal Azure.

Contoh di bawah ini menunjukkan principalId yang akan memiliki peran Administrator Akses Pengguna. Pengguna ini akan dapat menetapkan dua peran bawaan untuk identitas terkelola di penyewa pelanggan: Kontributor dan Kontributor Analitik Log.

{
    "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"
    ]
}

Menyebarkan kebijakan yang dapat diremediasi

Setelah Anda membuat pengguna dengan izin yang diperlukan seperti yang dijelaskan di atas, pengguna tersebut dapat menyebarkan kebijakan yang menggunakan tugas remediasi dalam langganan pelanggan yang didelegasikan.

Misalnya, Anda ingin mengaktifkan diagnostik pada sumber daya Azure Key Vault di penyewa pelanggan, seperti yang diilustrasikan dalam sampel ini. Pengguna dalam penyewa pengelola dengan izin yang sesuai (seperti yang dijelaskan di atas) akan menyebarkan templat Azure Resource Manager untuk mengaktifkan skenario ini.

Membuat penetapan kebijakan untuk digunakan dengan langganan yang didelegasikan saat ini harus dilakukan melalui API, bukan di portal Azure. Saat melakukannya, apiVersion harus diatur ke 2019-04-01-preview atau yang lebih baru untuk menyertakan properti delegatedManagedIdentityResourceId yang baru. Properti ini memungkinkan Anda menyertakan identitas terkelola yang berada di penyewa pelanggan (dalam langganan atau grup sumber daya yang telah melakukan onboarding ke Azure Lighthouse).

Contoh berikut menunjukkan penetapan peran dengan 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)]"
            }

Tip

Sampel serupa tersedia untuk menunjukkan cara menyebarkan kebijakan yang menambahkan atau menghapus tag (menggunakan efek modifikasi) ke langganan yang didelegasikan.

Langkah berikutnya