Wdrażanie zasad, które można skorygować w ramach subskrypcji delegowanej
Usługa Azure Lighthouse umożliwia dostawcom usług tworzenie i edytowanie definicji zasad w ramach delegowanej subskrypcji. Aby wdrożyć zasady korzystające z zadania korygowania (czyli zasad z efektem wdrażaniaIfNotExists lub modyfikowania), należy utworzyć tożsamość zarządzaną w dzierżawie klienta. Ta tożsamość zarządzana może służyć przez usługę Azure Policy do wdrażania szablonu w ramach zasad. W tym artykule opisano kroki wymagane do włączenia tego scenariusza, zarówno podczas dołączania klienta do usługi Azure Lighthouse, jak i wdrażania samych zasad.
Napiwek
Chociaż w tym temacie odwołujemy się do dostawców usług i klientów, przedsiębiorstwa zarządzające wieloma dzierżawami mogą używać tych samych procesów.
Tworzenie użytkownika, który może przypisywać role do tożsamości zarządzanej w dzierżawie klienta
Po dołączeniu klienta do usługi Azure Lighthouse należy zdefiniować autoryzacje, które udzielają dostępu do delegowanych zasobów w dzierżawie klienta. Każda autoryzacja określa identyfikator principalId odpowiadający użytkownikowi, grupie lub jednostce usługi firmy Microsoft w dzierżawie zarządzającej oraz roliDefinitionId odpowiadającej wbudowanej roli platformy Azure, która zostanie udzielona.
Aby zezwolić identyfikatorowi principalId na przypisywanie ról do tożsamości zarządzanej w dzierżawie klienta, należy ustawić jego rolęDefinitionId na administrator dostępu użytkowników. Chociaż ta rola nie jest ogólnie obsługiwana w usłudze Azure Lighthouse, może być używana w tym konkretnym scenariuszu. Przyznanie tej roli temu identyfikatorowi principalId umożliwia przypisanie określonych wbudowanych ról do tożsamości zarządzanych. Te role są definiowane we właściwości delegatedRoleDefinitionIds i mogą zawierać dowolną obsługiwaną rolę wbudowaną platformy Azure z wyjątkiem administratora dostępu użytkowników lub właściciela.
Po dołączeniu klienta identyfikator principalId utworzony w tej autoryzacji będzie mógł przypisać te wbudowane role do tożsamości zarządzanych w dzierżawie klienta. Nie będzie to żadnych innych uprawnień zwykle skojarzonych z rolą Administratora dostępu użytkowników.
Uwaga
Przypisania ról między dzierżawami muszą być obecnie wykonywane za pośrednictwem interfejsów API, a nie w witrynie Azure Portal.
W tym przykładzie przedstawiono identyfikator principalId z rolą Administratora dostępu użytkowników. Ten użytkownik będzie mógł przypisać dwie wbudowane role do tożsamości zarządzanych w dzierżawie klienta: Współautor i Współautor usługi Log Analytics.
{
"principalId": "00000000-0000-0000-0000-000000000000",
"principalIdDisplayName": "Policy Automation Account",
"roleDefinitionId": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"delegatedRoleDefinitionIds": [
"b24988ac-6180-42a0-ab88-20f7382dd24c",
"92aaf0da-9dab-42b6-94a3-d43ce8d16293"
]
}
Wdrażanie zasad, które można skorygować
Po utworzeniu użytkownika z niezbędnymi uprawnieniami użytkownik może wdrażać zasady korzystające z zadań korygujących w ramach delegowanych subskrypcji klienta.
Załóżmy na przykład, że chcesz włączyć diagnostykę zasobów usługi Azure Key Vault w dzierżawie klienta, jak pokazano w tym przykładzie. Użytkownik zarządzający dzierżawą z odpowiednimi uprawnieniami (zgodnie z powyższym opisem) wdroży szablon usługi Azure Resource Manager w celu włączenia tego scenariusza.
Tworzenie przypisania zasad do użycia z delegowana subskrypcją musi być obecnie wykonywane za pośrednictwem interfejsów API, a nie w witrynie Azure Portal. W tym przypadku parametr apiVersion musi być ustawiony na wartość 2019-04-01-preview lub nowszą, aby uwzględnić nową właściwość delegatedManagedIdentityResourceId. Ta właściwość umożliwia dołączenie tożsamości zarządzanej, która znajduje się w dzierżawie klienta (w subskrypcji lub grupie zasobów, która została dołączona do usługi Azure Lighthouse).
W poniższym przykładzie przedstawiono przypisanie roli z delegowanym identyfikatoremManagedIdentityResourceId.
"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)]"
}
Napiwek
Podobny przykład jest dostępny, aby zademonstrować sposób wdrażania zasad, które dodaje lub usuwa tag (przy użyciu efektu modyfikacji) do delegowanej subskrypcji.
Następne kroki
- Dowiedz się więcej o usłudze Azure Policy.
- Dowiedz się więcej o tożsamościach zarządzanych dla zasobów platformy Azure.