Azure Container Registry: Rollen und Berechtigungen
Der Azure Container Registry-Dienst unterstützt mehrere integrierte Azure-Rollen, die unterschiedliche Berechtigungsstufen für eine Azure-Containerregistrierung bereitstellen. Verwenden Sie die rollenbasierte Zugriffssteuerung von Azure (Azure Role-Based Access Control, Azure RBAC), um Benutzern, Dienstprinzipalen oder anderen Identitäten, die mit einer Registrierung interagieren müssen, bestimmte Berechtigungen zuzuweisen, z. B. um Containerimages zu pullen oder zu pushen. Sie können für verschiedene Vorgänge auch benutzerdefinierte Rollen mit differenzierten Berechtigungen für eine Registrierung definieren.
Rolle/Berechtigung | Zugreifen auf Resource Manager | Erstellen/löschen einer Registrierung | Übertragen eines Image mithilfe von Push | Übertragen eines Images mithilfe von Pull | Löschen von Imagedaten | Ändern von Richtlinien | Signieren von Images |
---|---|---|---|---|---|---|---|
Besitzer | X | X | X | X | X | X | |
Mitwirkender | X | X | X | X | X | X | |
Leser | X | X | |||||
AcrPush | X | X | |||||
AcrPull | X | ||||||
AcrDelete | X | ||||||
AcrImageSigner | X |
Zuweisen von Rollen
Allgemeine Schritte zum Hinzufügen einer Rollenzuweisung zu einem vorhandenen Benutzer, einer Gruppe, einem Dienstprinzipal oder einer verwalteten Identität finden Sie unt4er Schritte zum Hinzufügen einer Rollenzuweisung. Hierfür können Sie das Azure-Portal, Azure CLI, Azure PowerShell oder andere Azure-Tools verwenden.
Beim Erstellen eines Dienstprinzipals konfigurieren Sie auch seinen Zugriff auf sowie seine Berechtigungen für Azure-Ressourcen, z. B. eine Containerregistrierung. Ein Beispielskript, das die Azure CLI verwendet, finden Sie unter Azure Container Registry-Authentifizierung mit Dienstprinzipalen.
Unterscheiden von Benutzern und Diensten
Immer wenn Berechtigungen angewendet werden, hat es sich bewährt, einen möglichst begrenzte Anzahl von Berechtigungen an eine Person oder einen Dienst bereitzustellen, um eine Aufgabe zu erfüllen. Die folgenden Berechtigungen stehen für mehrere Funktionen, die von Menschen und entkoppelten Diensten verwendet werden können.
CI/CD-Lösungen
Bei der Automatisierung von docker build
-Befehlen aus CI/CD-Lösungen benötigen Sie docker push
-Funktionen. Es wird empfohlen, für diese Szenarios entkoppelter Dienste die Rolle AcrPush zuzuweisen. Im Gegensatz zur umfassenderen Rolle Mitwirkender verhindert sie, dass das Konto andere Registrierungsvorgänge durchführt oder auf den Azure Resource Manager zugreift.
Containerhostknoten
Knoten, auf denen Ihre Container ausgeführt werden, benötigen ebenfalls die Rolle AcrPull, sollten aber keine Leserfunktionen erfordern.
Docker-Erweiterung für Visual Studio Code
Für Tools wie die Docker-Erweiterung für Visual Studio Code ist zusätzlicher Ressourcenanbieterzugriff erforderlich, um die verfügbaren Azure-Containerregistrierungen aufzulisten. Erteilen Sie Ihren Benutzern in diesem Fall Zugriff auf die Rollen Leser und Mitwirkender. Diese Rollen ermöglichen docker pull
, docker push
, az acr list
, az acr build
und andere Funktionen.
Zugreifen auf Resource Manager
Der Zugriff auf den Azure Resource Manager ist für das Azure-Portal und die Registrierungsverwaltung mit der Azure CLI erforderlich. Diese Berechtigungen benötigen Sie zum Beispiel, um mit dem az acr list
-Befehl eine Liste mit Registrierungen zu erhalten.
Erstellen und Löschen der Registrierung
Die Fähigkeit zum Erstellen und Löschen von Azure-Containerregistrierungen.
Übertragen eines Image mithilfe von Push
Die Fähigkeit, ein Image mithilfe von docker push
oder ein anderes unterstütztes Artefakt, z.B. ein Helm-Chart, mithilfe von Push an eine Registrierung zu übertragen. Dafür ist eine Authentifizierung bei der Registrierung mit der autorisierten Identität erforderlich.
Übertragen eines Images mithilfe von Pull
Die Fähigkeit, ein nicht unter Quarantäne stehendes Image mithilfe von docker pull
oder ein anderes unterstütztes Artefakt, z.B. ein Helm-Chart, mithilfe von Pull aus einer Registrierung zu übertragen. Dafür ist eine Authentifizierung bei der Registrierung mit der autorisierten Identität erforderlich.
Löschen von Imagedaten
Die Möglichkeit zum Löschen von Containerimages oder zum Löschen anderer unterstützter Artefakte wie Helm-Diagramme aus einer Registrierung.
Ändern von Richtlinien
Die Fähigkeit, Richtlinien für eine Registrierung zu konfigurieren. Die Richtlinien umfassen das Löschen von Images, das Aktivieren der Quarantäne und das Signieren von Images.
Signieren von Images
Die Fähigkeit, Images zu signieren, die in der Regel einem automatisierten Prozess zugewiesen wird, der einen Dienstprinzipal verwenden würde. Diese Berechtigung wird meist mit push image kombiniert, damit ein vertrauenswürdiges Image mithilfe von Push an eine Registrierung übertragen werden kann. Weitere Informationen finden Sie unter Inhaltsvertrauen in Azure Container Registry.
Benutzerdefinierte Rollen
Wie bei anderen Azure-Ressourcen können Sie benutzerdefinierte Rollen mit differenzierten Berechtigungen für Azure Container Registry erstellen. Weisen Sie die benutzerdefinierten Rollen dann Benutzern, Dienstprinzipalen oder anderen Identitäten zu, die mit einer Registrierung interagieren müssen.
Um festzustellen, welche Berechtigungen für eine benutzerdefinierte Rolle gelten sollen, lesen Sie die Liste der Microsoft.ContainerRegistry-Aktionen, überprüfen Sie die zulässigen Aktionen der integrierten ACR-Rollen, oder führen Sie den folgenden Befehl aus:
az provider operation show --namespace Microsoft.ContainerRegistry
Um eine benutzerdefinierte Rolle zu definieren, lesen Sie Schritte zum Erstellen einer benutzerdefinierten Rolle.
Hinweis
In Mandanten, die mit einer privaten Azure Resource Manager-Verbindung konfiguriert sind, unterstützt Azure Container Registry Platzhalteraktionen wie Microsoft.ContainerRegistry/*/read
oder Microsoft.ContainerRegistry/registries/*/write
in benutzerdefinierten Rollen und gewährt Zugriff auf alle entsprechenden Aktionen. Geben Sie in einem Mandanten ohne private ARM-Verbindung alle erforderlichen Registrierungsaktionen einzeln in einer benutzerdefinierten Rolle an.
Beispiel: Benutzerdefinierte Rolle zum Importieren von Images
Der folgende JSON-Code definiert beispielsweise die minimalen Aktionen für eine benutzerdefinierte Rolle, die das Importieren von Images in eine Registrierung erlaubt.
{
"assignableScopes": [
"/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
],
"description": "Can import images to registry",
"Name": "AcrImport",
"permissions": [
{
"actions": [
"Microsoft.ContainerRegistry/registries/push/write",
"Microsoft.ContainerRegistry/registries/pull/read",
"Microsoft.ContainerRegistry/registries/read",
"Microsoft.ContainerRegistry/registries/importImage/action"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleType": "CustomRole"
}
Um eine benutzerdefinierte Rolle unter Verwendung der JSON-Beschreibung zu erstellen oder zu aktualisieren, verwenden Sie die Azure CLI, die Azure Resource Manager-Vorlage, Azure PowerShell oder andere Azure-Tools. Sie können Rollenzuweisungen für eine benutzerdefinierte Rolle auf dieselbe Weise hinzufügen oder entfernen, wie Sie Rollenzuweisungen für integrierte Azure-Rollen verwalten.
Nächste Schritte
Erfahren Sie mehr über das Zuweisen von Azure-Rollen zu einer Azure-Identität über das Azure-Portal, die Azure CLI, Azure PowerShell oder andere Azure-Tools.
Weitere Informationen finden Sie unter den Authentifizierungsoptionen für Azure Container Registry.
Erfahren Sie, wie Sie repositorybezogene Berechtigungen in einer Containerregistrierung aktivieren.