Udostępnij za pośrednictwem


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