Rollenzuweisungen ermöglichen es Ihnen, einem Prinzipal (z. B. Benutzer, Gruppe oder Dienstprinzipal) Zugriff auf eine bestimmte Azure-Ressource zu gewähren.
Um eine Rollenzuweisung zu definieren, erstellen Sie eine Ressource mit dem Typ Microsoft.Authorization/roleAssignments. Eine Rollendefinition verfügt über mehrere Eigenschaften, darunter einen Bereich, einen Namen, eine Rollendefinitions-ID, eine Prinzipal-ID und einen Prinzipaltyp.
`Scope`
Rollenzuweisungen gelten für einen bestimmten Bereich, der die Ressource oder Gruppe von Ressourcen definiert, der Sie Zugriff gewähren. Weitere Informationen finden Sie in der Grundlegendes zum Bereich von Azure RBAC.
Rollenzuweisungen sind Erweiterungsressourcen, d. h., sie gelten für eine andere Ressource. Im folgenden Beispiel wird gezeigt, wie ein Speicherkonto und eine Rollenzuweisung erstellt wird, die nur für dieses Speicherkonto gilt:
Wenn Sie den Bereich nicht explizit angeben, verwendet Bicep die Angabe für targetScope in der Datei. Im folgenden Beispiel wird keine scope-Eigenschaft angegeben, sodass die Rollenzuweisung auf das Abonnement beschränkt ist:
Verwenden Sie den kleinsten Bereich, den Sie benötigen, um Ihre Anforderungen zu erfüllen.
Wenn Sie beispielsweise einer verwalteten Identität Zugriff auf ein einzelnes Speicherkonto gewähren müssen, empfiehlt es sich aus Sicherheitsgründen, die Rollenzuweisung im Bereich des Speicherkontos und nicht im Bereich der Ressourcengruppe oder des Abonnements zu erstellen.
Name
Der Ressourcenname einer Rollenzuweisung muss eine GUID (Globally Unique Identifier) sein.
Die Ressourcennamen von Rollenzuweisungen müssen innerhalb des Microsoft Entra-Mandanten eindeutig sein, auch wenn der Gültigkeitsbereich kleiner ist.
Damit Ihre Bicep-Bereitstellung wiederholt werden kann, ist es wichtig, dass der Name deterministisch ist, d. h. bei jeder Bereitstellung muss derselbe Namen verwendet werden. Es ist sinnvoll, eine GUID mit einer Kombination aus Bereich, Prinzipal-ID und Rollen-ID zu erstellen. Es wird empfohlen, die Funktion guid() zu verwenden, um eine deterministische GUID für Ihre Rollenzuweisungsnamen zu erstellen, wie in diesem Beispiel:
Wenn Sie die Rollenzuweisungsressource erstellen, müssen Sie eine vollqualifizierte Ressourcen-ID angeben. Integrierte Rollendefinitions-IDs sind Ressourcen mit Abonnementbereich. Es empfiehlt sich, mithilfe einer existing-Ressource auf die integrierte Rolle zu verweisen und mit der .id-Eigenschaft auf die voll qualifizierte Ressourcen-ID zuzugreifen:
Bicep
paramprincipalIdstring
@description('This is the built-in Contributor role. See https://docs.microsoft.com/azure/role-based-access-control/built-in-roles#contributor')resourcecontributorRoleDefinition'Microsoft.Authorization/roleDefinitions@2022-04-01'existing = {
scope: subscription()name: 'b24988ac-6180-42a0-ab88-20f7382dd24c'
}
resourceroleAssignment'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(resourceGroup().id, principalId, contributorRoleDefinition.id)properties: {
roleDefinitionId: contributorRoleDefinition.idprincipalId: principalIdprincipalType: 'ServicePrincipal'
}
}
Prinzipal
Die Eigenschaft principalId muss auf eine GUID festgelegt werden, die den Microsoft Entra-Bezeichner für den Prinzipal repräsentiert. In Microsoft Entra ID wird dies mitunter als Objekt-ID bezeichnet.
Die Eigenschaft principalType gibt an, ob es sich bei dem Prinzipal um einen Benutzer, eine Gruppe oder einen Dienstprinzipal handelt. Verwaltete Identitäten sind eine Form von Dienstprinzipal.
Tipp
Es ist wichtig, die Eigenschaft principalType festzulegen, wenn Sie in Bicep eine Rollenzuweisung erstellen. Andernfalls kann es zu zeitweiligen Bereitstellungsfehlern kommen, insbesondere wenn Sie mit Dienstprinzipalen und verwalteten Identitäten arbeiten.
Das folgende Beispiel zeigt, wie Sie eine benutzerseitig zugewiesene verwaltete Identität und Rollenzuweisung erstellen:
Wenn Sie Benutzer*innen, Gruppen, Dienstprinzipale oder verwaltete Identitäten aus Microsoft Entra ID löschen, empfiehlt es sich, alle entsprechenden Rollenzuweisungen zu löschen. Sie werden nicht automatisch gelöscht.
Alle Rollenzuweisungen, die auf eine gelöschte Prinzipal-ID verweisen, werden ungültig. Wenn Sie versuchen, den Namen einer Rollenzuweisung für eine andere Rollenzuweisung wiederzuverwenden, schlägt die Bereitstellung fehl. Um dieses Verhalten zu umgehen, sollten Sie entweder die alte Rollenzuweisung entfernen, bevor Sie es neu erstellen oder sicherstellen, dass Sie einen eindeutigen Namen verwenden, wenn Sie eine neue Rollenzuweisung bereitstellen. Diese Schnellstartvorlage veranschaulicht, wie Sie eine Rollenzuweisung in einem Bicep-Modul definieren und eine Prinzipal-ID als Startwert für den Rollenzuweisungsnamen verwenden können.
Benutzerdefinierte Rollendefinitionen
Benutzerdefinierte Rollendefinitionen ermöglichen es Ihnen, einen Satz von Berechtigungen zu definieren, der dann anhand einer Rollenzuweisung einem Prinzipal zugewiesen werden kann. Weitere Informationen zu Rollendefinitionen finden Sie unter Grundlegendes zu Rollendefinitionen für Azure-Ressourcen.
Die Ressourcennamen von Rollendefinitionen müssen innerhalb des Microsoft Entra-Mandanten eindeutig sein, auch wenn die zuweisbaren Bereiche kleiner sind.
Veranschaulichen der Features von Microsoft Entra ID, um Identitätslösungen zu modernisieren sowie Hybridlösungen und Identitätsgovernance zu implementieren
Azure Microsoft.Authorization/roleAssignments-Syntax und -Eigenschaften, die in Azure Resource Manager-Vorlagen für die Bereitstellung der Ressource verwendet werden sollen. Neueste API-Version
Azure Microsoft.Authorization/roleAssignments-Syntax und -Eigenschaften, die in Azure Resource Manager-Vorlagen für die Bereitstellung der Ressource verwendet werden sollen. API-Version 2022-04-01
Azure Microsoft.Authorization/roleDefinitions-Syntax und -Eigenschaften, die in Azure Resource Manager-Vorlagen für die Bereitstellung der Ressource verwendet werden sollen. Neueste API-Version
Azure Microsoft.ManagedIdentity/userAssignedIdentities-Syntax und -Eigenschaften, die in Azure Resource Manager-Vorlagen für die Bereitstellung der Ressource verwendet werden sollen. Neueste API-Version
Hier erfahren Sie, wie Sie einem Benutzer im Ressourcengruppenbereich mithilfe von Bicep und der rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) Zugriff auf Azure-Ressourcen gewähren.
Azure Microsoft.KeyVault/Vaults-Syntax und -Eigenschaften, die in Azure Resource Manager-Vorlagen für die Bereitstellung der Ressource verwendet werden sollen. Neueste API-Version