Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Container Registry (ACR) unterstützt die attributbasierte Zugriffssteuerung (ABAC) von Microsoft Entra zum Verwalten von Repositoryberechtigungen. Dieses Feature verbessert die Sicherheit, indem eine differenziertere Berechtigungsverwaltung für Containerregistrierungsrepositorys ermöglicht wird. ABAC baut auf der rollenbasierten Zugriffssteuerung (RBAC) von Microsoft Entra auf, indem repositoryspezifische Bedingungen in Rollenzuweisungen eingeführt werden.
ABAC wurde für die Verwaltung von Repositoryberechtigungen mit rollenbasierter Microsoft Entra-Zugriffssteuerung (RBAC), Microsoft Entra-Rollenzuweisungen und Microsoft Entra-Identitäten entwickelt. Um Repositoryberechtigungen ohne Microsoft Entra zu verwalten, verwenden Sie stattdessen nicht von Microsoft Entra tokenbasierte Repositoryberechtigungen .
Konfigurieren des Berechtigungsmodus für Registrierungsrollenzuweisungen
Um Microsoft Entra ABAC zum Verwalten von Repositoryberechtigungen zu verwenden, stellen Sie sicher, dass der Berechtigungsmodus für die Registrierungsrollenzuweisung auf "RBAC-Registrierung + ABAC-Repositoryberechtigungen" festgelegt ist. Mit diesem Modus können Sie RBAC-Rollenzuweisungen (mit integrierten ACR-Rollen) mit optionalen ABAC-Bedingungen verwenden, um Rollenzuweisungen auf bestimmte Repositorys zu beschränken.
Sie können den Rollenzuweisungsberechtigungsmodus einer Registrierung entweder während der Registrierungserstellung oder durch Aktualisieren einer vorhandenen Registrierung konfigurieren. Diese Rollenzuweisung kann entweder über das Azure-Portal oder azure CLI erfolgen. Sie können ABAC für jede Registrierung unabhängig von der SKU aktivieren.
Hinweis
Stellen Sie sicher, dass Sie die neueste Version der Azure CLI installiert haben, indem Sie den Azure CLI-Befehl az upgrade
ausführen.
Wenn Sie zuvor an der privaten Vorschau dieses Features teilgenommen haben, haben Sie möglicherweise eine benutzerdefinierte private Vorschauerweiterung installiert, um ACR ABAC zu verwalten.
Diese benutzerdefinierte Erweiterung ist nicht mehr erforderlich und sollte deinstalliert werden (um Konflikte zu vermeiden), indem Sie den Azure CLI-Befehl az extension remove --name acrabac
ausführen.
Auswirkung auf vorhandene Rollenzuweisungen
Von Bedeutung
Wenn Sie eine Registrierung für die Verwendung von "RBAC-Registrierung + ABAC-Repositoryberechtigungen" konfigurieren, werden einige vorhandene Rollenzuweisungen nicht berücksichtigt, da eine andere Gruppe integrierter ACR-Rollen für ABAC-fähige Registrierungen gelten.
Beispielsweise werden die Rollen AcrPull
, AcrPush
und AcrDelete
in einer ABAC-fähigen Registrierung nicht berücksichtigt.
Verwenden Sie stattdessen in ABAC-fähigen Registrierungen die Container Registry Repository Reader
, Container Registry Repository Writer
und Container Registry Repository Contributor
Rollen, um registrierungsweiten oder repositoryspezifischen Imageberechtigungen zu gewähren.
Weitere Informationen zur Rolle basierend auf Ihrem Szenario und dem Berechtigungsmodus für Registrierungsrollenzuweisungen finden Sie in Szenarien für integrierte ACR-Rollen. Alternativ finden Sie in der integrierten ACR-Rollenreferenz eine ausführliche Beschreibung der einzelnen Rollen.
Erstellen einer Registrierung mit aktivierter ABAC
Wenn Sie eine neue Registrierung über das Azure-Portal erstellen, wählen Sie im Dropdownmenü "Rollenzuweisungsberechtigungen" die Option "RBAC-Registrierung + ABAC-Repositoryberechtigungen" aus.
Füllen Sie den Rest des Registrierungserstellungsformulars aus, und klicken Sie dann auf "Erstellen", um die Registrierung zu erstellen. Weitere Informationen zum Erstellen einer Registrierung finden Sie unter Erstellen einer Azure-Containerregistrierung mithilfe des Azure-Portals.
Aktualisieren einer vorhandenen Registrierung zum Aktivieren von ABAC
Um den vorhandenen Rollenzuweisungsberechtigungsmodus einer Registrierung anzuzeigen, navigieren Sie zum Blatt "Eigenschaften" der Registrierung. Der aktuelle Modus für Rollenzuweisungsberechtigungen wird im Feld "Rollenzuweisungsberechtigungsmodus" angezeigt.
Um den Modus "Rollenzuweisungsberechtigungen" einer vorhandenen Registrierung zu aktualisieren, wählen Sie "RBAC Registry + ABAC Repository Permissions" aus, und klicken Sie auf "Speichern", um die Registrierung zu aktualisieren.
Zuweisen von Microsoft Entra ABAC-Repositoryberechtigungen
Sie können entweder das Azure-Portal oder die Azure CLI verwenden, um Microsoft Entra ABAC-Bedingungen zuzuweisen, um Rollenzuweisungen auf bestimmte Repositorys zu beschränken. Dieser Abschnitt enthält Beispiele zum Hinzufügen von ABAC-Bedingungen für ein bestimmtes Repository, ein Repositorypräfix (Wildcard) oder mehrere Repositorypräfixe (mehrere Wildcards).
ABAC-fähige integrierte Rollen
Die folgenden integrierten ACR-Rollen sind ABAC-fähige Rollen. Sie können optionale ABAC-Bedingungen für die folgenden Rollen angeben, um optional Rollenzuweisungen für bestimmte Repositorys festzulegen.
Container Registry Repository Reader
– ABAC-fähige Rolle, die Berechtigungen zum Lesen von Bildern, Tags und Metadaten innerhalb von Repositorys in einer Registrierung gewährt.Container Registry Repository Writer
– ABAC-fähige Rolle, die Berechtigungen zum Lesen, Schreiben und Aktualisieren von Bildern, Tags und Metadaten in Repositorys in einer Registrierung gewährt.Container Registry Repository Contributor
– ABAC-fähige Rolle, die Berechtigungen zum Lesen, Schreiben, Aktualisieren und Löschen von Bildern, Tags und Metadaten in Repositorys in einer Registrierung gewährt.
Beachten Sie, dass diese Rollen keine Berechtigungen zum Auflisten von Repositorys im Katalog in einer Registrierung unterstützen.
Um alle Repositorys in einer Registrierung auflisten (ohne Berechtigungen zum Lesen von Repositoryinhalten zu erteilen), müssen Sie die Container Registry Repository Catalog Lister
Rolle zusätzlich zuweisen.
Diese separate Rolle unterstützt keine ABAC-Bedingungen und verfügt immer über Berechtigungen zum Auflisten aller Repositorys in einer Registrierung.
Von Bedeutung
Wenn Sie eine ABAC-fähige Rolle ohne ABAC-Bedingungen zuweisen, wird die Rollenzuweisung nicht auf bestimmte Repositories beschränkt. Dies bedeutet, dass eine Rollenzuweisung ohne ABAC-Bedingungen als registrierungsweite Rollenzuweisung behandelt wird und allen Repositorys in der Registrierung Berechtigungen erteilt. Um eine Rollenzuweisung auf bestimmte Repositorys festzulegen, müssen Sie ABAC-Bedingungen einschließen, wenn Sie eine ABAC-fähige Rolle zuweisen.
Weitere Informationen zur Rolle basierend auf Ihrem Szenario und dem Berechtigungsmodus für Registrierungsrollenzuweisungen finden Sie in Szenarien für integrierte ACR-Rollen. Alternativ finden Sie in der integrierten ACR-Rollenreferenz eine ausführliche Beschreibung der einzelnen Rollen.
Bereichsrollenzuweisung zu einem bestimmten Repository
In diesem Beispiel weisen wir die Container Registry Repository Reader
Rolle zu, um Pullberechtigungen für ein einzelnes Repository zu erteilen.
Durch Hinzufügen von ABAC-Bedingungen ermöglicht diese Rollenzuweisung der Identität, Bilder abzurufen, Tags anzuzeigen und Metadaten nur aus dem angegebenen Repository zu lesen, sodass der Zugriff auf andere Repositorys in der Registrierung verhindert wird.
Navigieren Sie zum Blatt „Zugriffssteuerung (IAM)“ der Registrierung. Klicken Sie auf "Hinzufügen", und wählen Sie "Rollenzuweisung hinzufügen" aus.
Wählen Sie Container Registry Repository Reader
als Rolle aus.
Fahren Sie fort, indem Sie die Identität auswählen, der die Rolle zugewiesen werden soll.
Fahren Sie anschließend mit der Registerkarte "Bedingungen" fort. Wählen Sie die Schaltfläche "Bedingung hinzufügen" aus, um eine neue ABAC-Bedingung hinzuzufügen, um den Rollenzuweisungsbereich einzuschränken.
Wählen Sie die Option "Visual Editor" im ABAC-Bedingungs-Generator aus.
Wählen Sie die Aktionen (Berechtigungen) aus, die dieser Rollenzuweisung im Repositorybereich gewährt werden sollen. Wählen Sie in den meisten Anwendungsfällen alle Aktionen (Berechtigungen) aus, die zu der zuvor ausgewählten Rolle gehören, und stellen Sie sicher, dass Identitäten diese Aktionen nur innerhalb des Repositorybereichs ausführen können.
Fügen Sie einen Ausdruck für die ABAC-Bedingung hinzu, um die Rollenzuweisung auf ein bestimmtes Repository einzuschränken.
Konfigurieren Sie die folgenden Optionen für den Ausdruck, um die ABAC-Bedingung auf ein bestimmtes Repository zu beschränken:
- Attributquelle:
Request
- Attribut:
Repository name
- Operator:
StringEqualsIgnoreCase
- Wert:
<repository-name>
- der vollständige Name des Repositorys.- Zum Beispiel, wenn der vollständige Repositoryname
nginx
ist, geben Sienginx
ein. - Wenn der vollständige Repositoryname lautet
backend/nginx
, geben Siebackend/nginx
.
- Zum Beispiel, wenn der vollständige Repositoryname
Klicken Sie auf "Speichern", um die ABAC-Bedingung zu speichern.
Überprüfen Sie die ABAC-Bedingung für die Rollenzuweisung. Die Überprüfungsseite enthält einen Codeausdruck der ABAC-Bedingung, der verwendet werden kann, um dieselbe Rollenzuweisung mit derselben ABAC-Bedingung mit Azure CLI auszuführen.
Führen Sie die Rollenzuweisung aus, indem Sie auf "Überprüfen + Zuweisen" klicken.
Nachdem die Rollenzuweisung erstellt wurde, können Sie die Rollenzuweisung anzeigen, bearbeiten oder löschen. Navigieren Sie zur Registrierung "Zugriffssteuerung (IAM)", und wählen Sie die Registerkarte "Rollenzuweisungen" aus, um die Liste der vorhandenen Rollenzuweisungen anzuzeigen, die für die Registrierung gelten.
Festlegen des Bereichs der Rollenzuweisung auf mehrere Repositorys mithilfe des Repositorypräfixes (Platzhalter)
In diesem Beispiel weisen wir die Container Registry Repository Reader
Rolle zu, um Pullberechtigungen für mehrere Repositorys mit einem gemeinsamen Präfix (Wildcard) zu erteilen.
Durch Hinzufügen von ABAC-Bedingungen ermöglicht diese Rollenzuweisung der Identität, Bilder abzurufen, Tags anzuzeigen und Metadaten nur aus Repositorys mit einem gemeinsamen Präfix zu lesen, sodass der Zugriff auf andere Repositorys in der Registrierung verhindert wird.
Wenn Sie dem vorherigen Beispiel zum Zuweisen der Container Registry Repository Reader
Rolle zu einem bestimmten Repository gefolgt sind, müssen Sie diese Rollenzuweisung löschen (indem Sie zum Blatt "Zugriffssteuerung (IAM)" navigieren und die Registerkarte "Rollenzuweisungen" auswählen), bevor Sie eine neue mit einer ABAC-Bedingung erstellen, die auf ein Repositorypräfix festgelegt ist.
Führen Sie die gleichen Schritte wie im vorherigen Beispiel aus, um eine Rollenzuweisung mit ABAC-Bedingungen auszuführen.
Konfigurieren Sie im Schritt zum Hinzufügen eines Ausdrucks für die ABAC-Bedingung einen Ausdruck für eine ABAC-Bedingung, um die Rollenzuweisung auf mehrere Repositorys mit einem gemeinsamen Präfix (Platzhalter) zu beschränken. Konfigurieren Sie die folgenden Optionen:
- Attributquelle:
Request
- Attribut:
Repository name
- Operator:
StringStartsWithIgnoreCase
- Wert:
<repository-prefix>
– das Präfix der Repositorys, einschließlich des nachgestellten Schrägstrichs/
.- Wenn Sie z. B. Berechtigungen für alle Repositorys mit dem Präfix
backend/
erteilen möchten, wiebackend/nginx
undbackend/redis
, geben Siebackend/
ein. - Geben Sie zum Erteilen von Berechtigungen für alle Repositorys mit dem Präfix
frontend/js/
, wie zum Beispielfrontend/js/react
undfrontend/js/vue
,frontend/js/
ein.
- Wenn Sie z. B. Berechtigungen für alle Repositorys mit dem Präfix
Von Bedeutung
Der nachfolgende Schrägstrich /
ist im Value
Feld für den Ausdruck der ABAC-Bedingung erforderlich.
Wenn Sie den nachgestellten Schrägstrich /
nicht einschließen, können Sie unbeabsichtigt Berechtigungen für andere Repositorys gewähren, die nicht mit dem Präfix übereinstimmen.
Wenn Sie beispielsweise backend
ohne den nachgestellten Schrägstrich /
eingeben, gewährt die Rollenzuweisung allen Repositories mit dem Präfix backend
Berechtigungen, wie backend/nginx
, backend/redis
, backend-infra/k8s
, backend-backup/store
, backend
und backendsvc/containers
.
Klicken Sie auf "Speichern", um die ABAC-Bedingung zu speichern.
Überprüfen Sie die ABAC-Bedingung für die Rollenzuweisung. Die Überprüfungsseite enthält einen Codeausdruck der ABAC-Bedingung, der verwendet werden kann, um dieselbe Rollenzuweisung mit derselben ABAC-Bedingung mit Azure CLI auszuführen.
Führen Sie die Rollenzuweisung aus, indem Sie auf "Überprüfen + Zuweisen" klicken.
Nachdem die Rollenzuweisung erstellt wurde, können Sie die Rollenzuweisung anzeigen, bearbeiten oder löschen. Navigieren Sie zur Registrierung "Zugriffssteuerung (IAM)", und wählen Sie die Registerkarte "Rollenzuweisungen" aus, um die Liste der vorhandenen Rollenzuweisungen anzuzeigen, die für die Registrierung gelten.
Festlegen des Bereichs der Rollenzuweisung auf mehrere Repositorys mit mehreren Repositorypräfixen (mehrere Platzhalter)
In diesem Beispiel weisen wir die Container Registry Repository Reader
Rolle zu, um Pullberechtigungen für mehrere Repositorys unter zwei verschiedenen Präfixen (mehrere Wildcards) zu erteilen.
Durch das Hinzufügen von ABAC-Bedingungen ermöglicht diese Rollenzuweisung der Identität, Bilder abzurufen, Tags anzuzeigen und Metadaten nur aus dem angegebenen Repository zu lesen, wodurch der Zugriff auf andere Repositorys in der Registry verhindert wird.
Wenn Sie dem vorherigen Beispiel zum Zuweisen der Container Registry Repository Reader
Rolle zu einem bestimmten Repository gefolgt sind, müssen Sie diese Rollenzuweisung löschen (indem Sie zum Blatt "Zugriffssteuerung (IAM)" navigieren und die Registerkarte "Rollenzuweisungen" auswählen), bevor Sie eine neue mit einer ABAC-Bedingung erstellen, die auf ein Repositorypräfix festgelegt ist.
Führen Sie die gleichen Schritte wie im vorherigen Beispiel aus, um eine Rollenzuweisung mit ABAC-Bedingungen auszuführen.
Konfigurieren Sie im Schritt zum Hinzufügen eines Ausdrucks für die ABAC-Bedingung zwei Ausdrücke, um die Rollenzuweisung auf mehreren Repositorys unter zwei Präfixe einzuschränken: backend/
und frontend/js/
(mehrere Platzhalter).
Konfigurieren Sie für den ersten Ausdruck die folgenden Optionen:
- Attributquelle:
Request
- Attribut:
Repository name
- Operator:
StringStartsWithIgnoreCase
- Wert:
<repository-prefix>
– das Präfix der Repositorys, einschließlich des nachgestellten Schrägstrichs/
.- Wenn Sie z. B. allen Repositorys mit dem Präfix
backend/
Berechtigungen erteilen möchten, wiebackend/nginx
undbackend/redis
, geben Siebackend/
ein. - Geben Sie zum Erteilen von Berechtigungen für alle Repositorys mit dem Präfix
frontend/js/
, wie z. B.frontend/js/react
undfrontend/js/vue
,frontend/js/
ein.
- Wenn Sie z. B. allen Repositorys mit dem Präfix
Klicken Sie auf "Ausdruck hinzufügen". Stellen Sie sicher, dass der boolesche Operator auf "Or" festgelegt ist. Sie können optional "Gruppieren" auswählen, um Ausdrücke zusammen zu gruppieren und die Reihenfolge der Auswertung zu steuern. Der visuelle Editor unterstützt auch mehrere boolesche Operatoren, darunter "And", "Or", hierarchische Gruppierung und Negation.
Konfigurieren Sie für den zweiten Ausdruck die folgenden Optionen:
- Attributquelle:
Request
- Attribut:
Repository name
- Operator:
StringStartsWithIgnoreCase
- Wert:
<repository-prefix>
– das Präfix der Repositorys, einschließlich des nachgestellten Schrägstrichs/
.- Zum Beispiel, um allen Repositories mit dem Präfix
backend/
, wiebackend/nginx
undbackend/redis
, Berechtigungen zu erteilen, geben Siebackend/
ein. - Um Berechtigungen für alle Repositorys mit dem Präfix
frontend/js/
, wiefrontend/js/react
undfrontend/js/vue
, zu erteilen, geben Siefrontend/js/
ein.
- Zum Beispiel, um allen Repositories mit dem Präfix
Von Bedeutung
Der nachfolgende Schrägstrich /
ist im Value
Feld für den Ausdruck der ABAC-Bedingung erforderlich.
Wenn Sie den abschließenden Schrägstrich /
nicht einschließen, können Sie unbeabsichtigt Berechtigungen für andere Repositories erteilen, die nicht mit dem Präfix übereinstimmen.
Wenn Sie beispielsweise backend
ohne den nachgestellten Schrägstrich /
eingeben, gewährt die Rollenzuweisung Berechtigungen für alle Repositorys mit dem Präfix backend
, etwa backend/nginx
, backend/redis
, backend-infra/k8s
, backend-backup/store
, backend
und backendsvc/containers
.
Klicken Sie auf "Speichern", um die ABAC-Bedingung zu speichern.
Überprüfen Sie die ABAC-Bedingung für die Rollenzuweisung. Die Überprüfungsseite enthält einen Codeausdruck der ABAC-Bedingung, der verwendet werden kann, um dieselbe Rollenzuweisung mit derselben ABAC-Bedingung mit Azure CLI auszuführen.
Führen Sie die Rollenzuweisung aus, indem Sie auf "Überprüfen + Zuweisen" klicken.
Nachdem die Rollenzuweisung erstellt wurde, können Sie die Rollenzuweisung anzeigen, bearbeiten oder löschen. Navigieren Sie zur Registrierung "Zugriffssteuerung (IAM)", und wählen Sie die Registerkarte "Rollenzuweisungen" aus, um die Liste der vorhandenen Rollenzuweisungen anzuzeigen, die für die Registrierung gelten.
Maximale Anzahl von ABAC-Bedingungen
Das Azure-Portal unterstützt eine begrenzte Anzahl von ABAC-Bedingungen pro Rollenzuweisung.
Um mehr als das Azure-Portallimit für ABAC-Bedingungen hinzuzufügen, können Sie die Azure CLI verwenden, um die Rollenzuweisung mit mehr ABAC-Bedingungen zu erstellen.
Nächste Schritte
- Eine allgemeine Übersicht über diese integrierten Rollen – einschließlich unterstützter Identitätstypen für Rollenzuweisungen, Schritte zum Ausführen einer Rollenzuweisung und empfohlene Rollen für allgemeine Szenarien – finden Sie unter Azure Container Registry RBAC integrierte Rollen.
- Informationen zum Ausführen von Rollenzuweisungen mit optionalen Microsoft Entra ABAC-Bedingungen, um Rollenzuweisungen auf bestimmte Repositorys einzuschränken, finden Sie unter Microsoft Entra-basierte Repositoryberechtigungen.
- Eine detaillierte Referenz zu jeder integrierten ACR-Rolle, einschließlich der Berechtigungen, die von jeder Rolle gewährt werden, finden Sie in der Verzeichnisreferenz zu Azure Container Registry-Rollen.
- Weitere Informationen zum Erstellen von benutzerdefinierten Rollen, die Ihren spezifischen Anforderungen und Anforderungen entsprechen, finden Sie unter benutzerdefinierte Azure Container Registry-Rollen.