Bereitstellen einer Richtlinie, die innerhalb eines delegierten Abonnements gewartet werden kann

Mit Azure Lighthouse können Dienstanbieter Richtliniendefinitionen innerhalb eines delegierten Abonnements erstellen und bearbeiten. Wenn Sie Richtlinien mit einem Wartungstask (also Richtlinien mit deployIfNotExists- oder modify-Effekt) bereitstellen möchten, müssen Sie eine verwaltete Identität im Kundenmandanten erstellen. Diese verwaltete Identität kann von Azure Policy verwendet werden, um die Vorlage innerhalb der Richtlinie bereitzustellen. In diesem Artikel werden die Schritte beschrieben, die für dieses Szenario erforderlich sind – sowohl beim Onboarding des Kunden für Azure Lighthouse als auch bei der Bereitstellung der eigentlichen Richtlinie.

Tipp

Zwar beziehen wir uns in diesem Thema auf Dienstanbieter und Kunden, doch können Unternehmen, die mehrere Mandanten verwalten, denselben Prozess verwenden.

Erstellen eines Benutzers, der einer verwalteten Identität im Kundenmandanten Rollen zuweisen kann

Beim Onboarding eines Kunden in Azure Lighthouse definieren Sie Autorisierungen, mit denen der Zugriff auf delegierte Ressourcen im Kundenmandanten erteilt wird. Bei jeder Autorisierung wird eine principalId angegeben, die einem Benutzer, einer Gruppe oder einem Dienstprinzipal von Microsoft Entra auf dem verwaltenden Mandanten entspricht, sowie eine roleDefinitionId für die integrierte Azure-Rolle angegeben, die gewährt wird.

Damit es einer principalId möglich ist, einer verwalteten Identität im Kundenmandanten Rollen zuzuweisen, müssen Sie deren roleDefinitionId auf Benutzerzugriffsadministrator festlegen. Diese Rolle wird zwar für Azure Lighthouse im Allgemeinen nicht unterstützt, in diesem spezifischen Szenario kann sie aber verwendet werden. Das Erteilen dieser Rolle für diese principalId ermöglicht es, verwalteten Identitäten bestimmte integrierte Rollen zuzuweisen. Diese Rollen sind in der Eigenschaft delegatedRoleDefinitionIds definiert und können eine beliebige unterstützte integrierte Azure-Rolle enthalten (mit Ausnahme von „Benutzerzugriffsadministrator“ und „Besitzer“).

Nach Abschluss des Kunden-Onboardings kann die in dieser Autorisierung erstellte Prinzipal-ID (principalId) verwalteten Identitäten im Kundenmandanten diese integrierten Rollen zuweisen. Sie besitzt keine der weiteren Berechtigungen, die normalerweise der Rolle „Benutzerzugriffsadministrator“ zugeordnet sind.

Hinweis

Rollenzuweisungen zwischen Mandanten müssen derzeit über APIs erfolgen und nicht im Azure-Portal.

Das folgende Beispiel zeigt eine Prinzipal-ID (principalId), die über die Rolle „Benutzerzugriffsadministrator“ verfügt. Dieser Benutzer kann verwalteten Identitäten im Kundenmandanten zwei integrierte Rollen zuweisen: „Mitwirkender“ und „Log Analytics-Mitwirkender“.

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

Bereitstellen von Richtlinien, die gewartet werden können

Nachdem Sie gemäß der obigen Beschreibung den Benutzer mit den erforderlichen Berechtigungen erstellt haben, kann dieser Richtlinien im Kundenmandanten bereitstellen, die Wartungstasks innerhalb delegierter Kundenabonnements verwenden.

Nehmen wir beispielsweise an, Sie möchten Diagnosen für Azure Key Vault-Ressourcen im Kundenmandanten aktivieren, wie in diesem Beispiel veranschaulicht. In diesem Fall würde ein Benutzer im Verwaltungsmandanten mit entsprechenden Berechtigungen (wie oben beschrieben) eine Azure Resource Manager-Vorlage bereitstellen.

Die Richtlinienzuweisung zur Verwendung mit einem delegierten Abonnement muss aktuell über APIs erstellt werden, nicht über das Azure-Portal. Dabei muss die apiVersion auf 2019-04-01-preview oder höher festgelegt werden, die die neue Eigenschaft delegatedManagedIdentityResourceId enthält. Diese Eigenschaft ermöglicht es Ihnen, eine verwaltete Identität einzufügen, die sich im Kundenmandanten befindet (in einem Abonnement oder in einer Ressourcengruppe, das bzw. die mittels Onboarding in Azure Lighthouse integriert wurde).

Das folgende Beispiel zeigt eine Rollenzuweisung mit 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)]"
            }

Tipp

In einem ähnlichen Beispiel wird gezeigt, wie eine Richtlinie zugewiesen wird, die unter Verwendung des modify-Effekts einem delegierten Abonnement ein Tag hinzufügt oder ein Tag daraus entfernt.

Nächste Schritte