Temsilci aboneliği içinde düzeltilebilen bir ilke dağıtma

Azure Lighthouse , hizmet sağlayıcılarının temsilci abonelik içinde ilke tanımları oluşturmasına ve düzenlemesine olanak tanır. Bir düzeltme görevi (yani deployIfNotExists ile ilkeler veya değişiklik etkisi) kullanan ilkeleri dağıtmak için müşteri kiracısında yönetilen kimlik oluşturmanız gerekir. Bu yönetilen kimlik, şablonu ilke içinde dağıtmak için Azure İlkesi tarafından kullanılabilir. Bu makalede, hem müşteriyi Azure Lighthouse'a eklerken hem de ilkenin kendisini dağıtırken bu senaryoyu etkinleştirmek için gereken adımlar açıklanmaktadır.

Bahşiş

Bu konu başlığında hizmet sağlayıcılarına ve müşterilere başvursak da, birden çok kiracıyı yöneten kuruluşlar aynı işlemleri kullanabilir.

Müşteri kiracısında yönetilen kimliğe rol atayabilen bir kullanıcı oluşturma

Azure Lighthouse'a bir müşteri eklediğinizde, müşteri kiracısında temsilci olarak atanan kaynaklara erişim veren yetkilendirmeler tanımlarsınız. Her yetkilendirme, yönetim kiracısında bir Microsoft Entra kullanıcısına, grubuna veya hizmet sorumlusuna karşılık gelen bir principalId ve verilecek Azure yerleşik rolüne karşılık gelen roleDefinitionIddeğerini belirtir.

PrincipalId'nin müşteri kiracısında yönetilen kimliğe rol atamasına izin vermek için roleDefinitionIddeğerini Kullanıcı Erişimi Yönetici istrator olarak ayarlamanız gerekir. Bu rol Azure Lighthouse için genel olarak desteklenmese de, bu özel senaryoda kullanılabilir. Bu rolün bu principalId'ye verilmesi, yönetilen kimliklere belirli yerleşik rolleri atamasına olanak tanır. Bu roller delegatedRoleDefinitionIds özelliğinde tanımlanır ve Kullanıcı Erişimi Yönetici istrator veya Sahip dışında desteklenen azure yerleşik rollerini içerebilir.

Müşteri eklendiğinde, bu yetkilendirmede oluşturulan principalId bu yerleşik rolleri müşteri kiracısında yönetilen kimliklere atayabilir. Normalde Kullanıcı Erişimi Yönetici istrator rolüyle ilişkilendirilmiş başka bir izni olmayacaktır.

Dekont

Kiracılar arasında rol atamaları şu anda Azure portalında değil API'ler aracılığıyla yapılmalıdır.

Aşağıdaki örnekte, Kullanıcı Erişimi Yönetici istrator rolüne sahip olacak bir principalId gösterilmektedir. Bu kullanıcı, müşteri kiracısında yönetilen kimliklere iki yerleşik rol atayabilir: Katkıda Bulunan ve Log Analytics Katkıda Bulunanı.

{
    "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üzeltilebilen ilkeleri dağıtma

Kullanıcıyı yukarıda açıklandığı gibi gerekli izinlerle oluşturduktan sonra, bu kullanıcı temsilci müşteri abonelikleri içinde düzeltme görevlerini kullanan ilkeler dağıtabilir.

Örneğin, bu örnekte gösterildiği gibi müşteri kiracısında Azure Key Vault kaynaklarında tanılamayı etkinleştirmek istediğinizi varsayalım. Yönetici kiracıdaki uygun izinlere sahip bir kullanıcı (yukarıda açıklandığı gibi) bu senaryoyu etkinleştirmek için bir Azure Resource Manager şablonu dağıtabilir.

Temsilci aboneliğiyle kullanmak üzere ilke ataması oluşturma işlemi şu anda Azure portalında değil API'ler aracılığıyla yapılmalıdır. Bunu yaparken apiVersion, yeni delegatedManagedIdentityResourceId özelliğini eklemek için 2019-04-01-preview veya üzeri olarak ayarlanmalıdır. Bu özellik, müşteri kiracısında (Azure Lighthouse'a eklenmiş bir abonelikte veya kaynak grubunda) bulunan bir yönetilen kimlik eklemenize olanak tanır.

Aşağıdaki örnekte, delegatedManagedIdentityResourceId ile rol ataması gösterilmektedir.

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

Bahşiş

Benzer bir örnek , temsilci aboneliğine etiket ekleyen veya kaldıran bir ilkenin (değiştirme efektini kullanarak) nasıl dağıtılacağını göstermek için kullanılabilir.

Sonraki adımlar