Temsilci bir abonelik içinde düzeltilebilir bir ilke dağıtınDeploy a policy that can be remediated within a delegated subscription

Azure ışıklı kullanım , hizmet sağlayıcılarının, temsilci bir abonelik içinde ilke tanımları oluşturmalarına ve düzenlemesine izin verir.Azure Lighthouse allows service providers to create and edit policy definitions within a delegated subscription. Ancak, bir Düzeltme görevi (yani, Deployifnotexists veya değişiklik etkisi olan ilkeler) kullanan ilkeleri dağıtmak için, müşteri kiracısında yönetilen bir kimlik oluşturmanız gerekir.However, to deploy policies that use a remediation task (that is, policies with the deployIfNotExists or modify effect), you’ll need to create a managed identity in the customer tenant. Bu yönetilen kimlik, şablonu ilke içinde dağıtmak için Azure Ilkesi tarafından kullanılabilir.This managed identity can be used by Azure Policy to deploy the template within the policy. Bu senaryoyu etkinleştirmek için, hem Azure tarafından atanan kaynak yönetimine ilişkin müşteriyi eklediğinizde hem de ilkeyi dağıtırken gereken adımlar vardır.There are steps required to enable this scenario, both when you onboard the customer for Azure delegated resource management, and when you deploy the policy itself.

Müşteri kiracısında yönetilen bir kimliğe roller atayabilecek bir kullanıcı oluşturunCreate a user who can assign roles to a managed identity in the customer tenant

Azure tarafından atanan kaynak yönetimi için bir müşteri eklediğinizde, yönetim kiracınızdaki kullanıcıları, Kullanıcı gruplarını ve hizmet sorumlularını, müşteri kiracısında Temsilcili kaynaklara erişebilecek şekilde tanımlayan bir parametreler dosyası ile birlikte bir Azure Resource Manager şablonu kullanırsınız.When you onboard a customer for Azure delegated resource management, you use an Azure Resource Manager template along with a parameters file that defines the users, user groups, and service principals in your managing tenant that will be able to access the delegated resources in the customer tenant. Parametreleriniz dosyasında, bu kullanıcıların (PrincipalId) her birine erişim düzeyini tanımlayan yerleşik bir rol (roledefinitionıd) atanır.In your parameters file, each of these users (principalId) is assigned a built-in role (roleDefinitionId) that defines the level of access.

PrincipalId 'nin müşteri kiracısında yönetilen bir kimlik oluşturmasına izin vermek Için, roledefinitionıd değerini Kullanıcı erişimi Yöneticisiolarak ayarlamanız gerekir.To allow a principalId to create a managed identity in the customer tenant, you must set its roleDefinitionId to User Access Administrator. Bu rol genellikle desteklenmekle birlikte, bu özel senaryoda kullanılabilir ve bu izne sahip kullanıcıların yönetilen kimliklere bir veya daha fazla yerleşik rol atamasını sağlar.While this role is not generally supported, it can be used in this specific scenario, allowing the users with this permission to assign one or more specific built-in roles to managed identities. Bu roller, Delegatedrotadefinitionıds özelliğinde tanımlanmıştır.These roles are defined in the delegatedRoleDefinitionIds property. Kullanıcı erişimi Yöneticisi veya sahibi dışında, burada herhangi bir yerleşik rolü ekleyebilirsiniz.You can include any built-in role here except for User Access Administrator or Owner.

Müşteri eklendi olduktan sonra, bu yetkilendirmede oluşturulan PrincipalId , bu yerleşik rolleri müşteri kiracısındaki yönetilen kimliklere atayabilecektir.After the customer is onboarded, the principalId created in this authorization will be able to assign these built-in roles to managed identities in the customer tenant. Ancak, normalde Kullanıcı erişimi Yöneticisi rolüyle ilişkili başka hiçbir izinleri olmayacaktır.However, they will not have any other permissions normally associated with the User Access Administrator role.

Aşağıdaki örnekte, Kullanıcı erişimi yönetici rolüne sahip olacak bir PrincipalId gösterilmektedir.The example below shows a principalId who will have the User Access Administrator role. Bu Kullanıcı, müşteri kiracısında yönetilen kimliklere iki yerleşik rol atayabilecektir: katkıda bulunan ve Log Analytics katkıda bulunan.This user will be able to assign two built-in roles to managed identities in the customer tenant: Contributor and Log Analytics Contributor.

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

Düzeltilenebilir ilkeleri dağıtmaDeploy policies that can be remediated

Yukarıda açıklanan izinlerle Kullanıcı oluşturduktan sonra, bu kullanıcı, müşteri kiracısında düzeltme görevleri kullanan ilkeler dağıtabilir.Once you have created the user with the necessary permissions as described above, that user can deploy policies in the customer tenant that use remediation tasks.

Örneğin, bu örnektegösterildiği gibi, müşteri kiracısındaki Azure Key Vault kaynaklarında tanılamayı etkinleştirmek istediğinizi varsayalım.For example, let’s say you wanted to enable diagnostics on Azure Key Vault resources in the customer tenant, as illustrated in this sample. Yönetim kiracısındaki bir kullanıcı uygun izinlerle (yukarıda açıklandığı gibi), bu senaryoyu etkinleştirmek için bir Azure Resource Manager şablonu dağıtır.A user in the managing tenant with the appropriate permissions (as described above) would deploy an Azure Resource Manager template to enable this scenario.

Temsilci olarak kullanılacak ilke atamasının, Azure portal değil, API 'Ler aracılığıyla yapılması gerektiğini unutmayın.Note that creating the policy assignment to use with a delegated subscription must currently be done through APIs, not in the Azure portal. Bunu yaparken, Apiversion 'ın yeni Delegatedmanagedıdentityresourceıd özelliğini içeren 2019-04-01-Previewolarak ayarlanması gerekir.When doing so, the apiVersion must be set to 2019-04-01-preview, which includes the new delegatedManagedIdentityResourceId property. Bu özellik, müşteri kiracısında bulunan yönetilen bir kimliği (Azure tarafından atanan kaynak yönetimine eklendi bir abonelik veya kaynak grubu) eklemenize olanak tanır.This property allows you to include a managed identity that resides in the customer tenant (in a subscription or resource group which has been onboarded to Azure delegated resource management).

Aşağıdaki örnek, bir Delegatedmanagedıdentityresourceıdile bir rol atamasını gösterir.The following example shows a role assignment with a 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)]"
            }

İpucu

Benzer bir örnek , bir etiketi (değiştirme efektini kullanarak) temsilci bir aboneliğe ekleyen veya kaldıran bir ilkenin nasıl dağıtılacağını göstermek için kullanılabilir.A similar sample is available to demonstrate how to deploy a policy that adds or removes a tag (using the modify effect) to a delegated subscription.

Sonraki adımlarNext steps