Erstellen eines Token mit repositorybezogenen Berechtigungen
In diesem Artikel wird beschrieben, wie Sie Token und Bereichszuordnungen erstellen, um den Zugriff auf Repositorys in Ihrer Containerregistrierung zu verwalten. Durch die Erstellung von Token kann ein Registrierungsbesitzer Benutzern oder Diensten einen bereichsbezogenen, zeitlich begrenzten Zugriff auf Repositorys gewähren, um Images zu pullen oder zu pushen oder andere Aktionen durchzuführen. Ein Token bietet detailliertere Berechtigungen als andere Authentifizierungsoptionen für Registrierungen, die Berechtigungen für eine gesamte Registrierung umfassen.
Häufige Szenarien für die Erstellung eines Tokens sind:
- IoT-Geräten mit individuellen Token das Pullen eines Images aus einem Repository gestatten
- Eine externe Organisation mit Berechtigungen für ein Repository bereitstellen
- Einschränken des Zugriffs auf verschiedene Benutzergruppen in Ihrer Organisation. Beispielsweise Bereitstellen von Schreib- und Lesezugriff für Entwickler, die Images für bestimmte Repositorys erstellen, und von Lesezugriff für Teams, die aus diesen Repositorys Bereitstellungen durchführen.
Dieses Feature ist in allen Dienstebenen verfügbar. Informationen zu den Tarifen und Einschränkungen des Registrierungsdiensts finden Sie unter Azure Container Registry-Tarife.
Begrenzungen
- Zurzeit können Sie einer Microsoft Entra-Identität (z. B. einem Dienstprinzipal oder einer verwalteten Identität) keine repositorybezogenen Berechtigungen zuweisen.
Konzepte
Zum Konfigurieren von repositorybezogenen Berechtigungen erstellen Sie ein Token mit einer zugehörigen Bereichszuordnung.
Ein Token zusammen mit einem generierten Kennwort ermöglicht dem Benutzer die Authentifizierung bei der Registrierung. Sie können ein Ablaufdatum für ein Tokenkennwort festlegen oder ein Token jederzeit deaktivieren.
Nach der Authentifizierung mit einem Token kann der Benutzer oder Dienst eine oder mehrere Aktionen durchführen, die auf ein oder mehrere Repositorys verteilt sind.
Aktion Beschreibung Beispiel content/delete
Entfernen von Daten aus dem Repository Löschen eines Repositorys oder eines Manifests content/read
Lesen von Daten aus dem Repository Pullen eines Artefakts content/write
Schreiben von Daten in das Repository Verwenden der Aktion zusammen mit content/read
zum Pushen eines Artefaktsmetadata/read
Lesen von Metadaten aus dem Repository Auflisten von Tags oder Manifesten metadata/write
Schreiben von Metadaten in das Repository Aktivieren oder Deaktivieren von Lese-, Schreib- oder Löschvorgängen
Hinweis
Repository-bezogene Berechtigungen unterstützen nicht die Möglichkeit, den Katalog aller Repositorys in der Registrierung aufzulisten.
Eine Bereichszuordnung gruppiert die Repositoryberechtigungen, die Sie auf ein Token anwenden oder auf andere Token erneut anwenden. Jedes Token ist einer einzelnen Gültigkeitsbereichszuordnung zugeordnet. Mit einer Bereichszuordnung können Sie:
- mehrerer Token mit identischen Berechtigungen für eine Gruppe von Repositorys konfigurieren.
- Tokenberechtigungen beim Hinzufügen oder Entfernen von Repositoryaktionen in der Bereichszuordnung oder beim Anwenden einer anderen Gültigkeitsbereichszuordnung aktualisieren.
Azure Container Registry bietet auch mehrere vom System definierte Bereichszuordnungen, die Sie beim Erstellen von Token anwenden können. Die Berechtigungen der vom System definierten Bereichszuordnungen gelten für alle Repositorys in der Registrierung. Die einzelnen Aktionen entsprechen dem Grenzwert für Repositorys pro Bereichszuordnung.
In der folgenden Abbildung wird die Beziehung zwischen Token und Gültigkeitsbereichszuordnungen veranschaulicht.
Voraussetzungen
- Azure-Befehlszeilenschnittstelle: Für die Azure CLI-Befehlsbeispiele in diesem Artikel ist mindestens Version 2.17.0 der Azure-Befehlszeilenschnittstelle erforderlich. Führen Sie
az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI. - Docker: Um sich zum Pullen oder Pushen von Images bei der Registrierung zu authentifizieren, benötigen Sie eine lokale Docker-Installation. Docker-Installationsanleitungen stehen für Systeme unter macOS, Windows und Linux zur Verfügung.
- Containerregistrierung: Erstellen Sie in Ihrem Azure-Abonnement eine Containerregistrierung, wenn noch keine Registrierung vorhanden ist. Verwenden Sie beispielsweise das Azure-Portal oder die Azure CLI.
Token erstellen – Befehlszeilenschnittstelle
Erstellen eines Tokens und Angeben von Repositorys
Erstellen Sie mit dem Befehl az acr token create ein Token. Wenn Sie ein Token erstellen, können Sie mindestens ein Repository und zugehörige Aktionen für jedes Repository angeben. Die Repositorys müssen sich noch nicht in der Registrierung befinden. Um ein Token durch die Angabe einer vorhandenen Gültigkeitsbereichszuordnung zu erstellen, lesen Sie den nächsten Abschnitt.
Das folgende Beispiel erstellt ein Token in der Registrierung myregistry mit den folgenden Berechtigungen für das samples/hello-world
-Repository: content/write
und content/read
. Standardmäßig legt der Befehl den standardmäßigen Tokenstatus auf enabled
fest, aber Sie können den Status jederzeit auf disabled
aktualisieren.
az acr token create --name MyToken --registry myregistry \
--repository samples/hello-world \
content/write content/read \
--output json
Die Ausgabe zeigt Details zum Token an. Standardmäßig werden zwei Kennwörter generiert, die nicht ablaufen. Sie können jedoch optional ein Ablaufdatum festlegen. Es wird empfohlen, die Kennwörter an einem sicheren Ort zu speichern, um sie später für die Authentifizierung zu verwenden. Die Kennwörter können nicht erneut abgerufen werden, aber es können neue Kennwörter generiert werden.
{
"creationDate": "2020-01-18T00:15:34.066221+00:00",
"credentials": {
"certificates": [],
"passwords": [
{
"creationTime": "2020-01-18T00:15:52.837651+00:00",
"expiry": null,
"name": "password1",
"value": "uH54BxxxxK7KOxxxxRbr26dAs8JXxxxx"
},
{
"creationTime": "2020-01-18T00:15:52.837651+00:00",
"expiry": null,
"name": "password2",
"value": "kPX6Or/xxxxLXpqowxxxxkA0idwLtmxxxx"
}
],
"username": "MyToken"
},
"id": "/subscriptions/xxxxxxxx-adbd-4cb4-c864-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.ContainerRegistry/registries/myregistry/tokens/MyToken",
"name": "MyToken",
"objectId": null,
"provisioningState": "Succeeded",
"resourceGroup": "myresourcegroup",
"scopeMapId": "/subscriptions/xxxxxxxx-adbd-4cb4-c864-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.ContainerRegistry/registries/myregistry/scopeMaps/MyToken-scope-map",
"status": "enabled",
"type": "Microsoft.ContainerRegistry/registries/tokens"
}
Hinweis
Informationen zum erneuten Generieren von Tokenkennwörtern und Ablauffristen finden Sie unter Erneutes Generieren von Tokenkennwörtern weiter unten in diesem Artikel.
Die Ausgabe enthält Details über die vom Befehl erstellte Gültigkeitsbereichszuordnung. Mit der Gültigkeitsbereichszuordnung, hier unter der Bezeichnung MyToken-scope-map
, können Sie dieselben Repositoryaktionen auf andere Token anwenden. Oder aktualisieren Sie die Gültigkeitsbereichszuordnung später, um die Berechtigungen der zugeordneten Token zu ändern.
Erstellen eines Tokens und Angeben der Gültigkeitsbereichszuordnung
Eine alternative Möglichkeit zum Erstellen eines Tokens besteht darin, eine vorhandene Gültigkeitsbereichszuordnung anzugeben. Wenn Sie nicht bereits über eine Gültigkeitsbereichszuordnung verfügen, erstellen Sie zunächst eine, indem Sie Repositorys und zugehörige Aktionen angeben. Geben Sie dann beim Erstellen eines Tokens die Gültigkeitsbereichszuordnung an.
Um eine Gültigkeitsbereichszuordnung zu erstellen, verwenden Sie den Befehl az acr scope-map create. Der folgende Befehl erstellt eine Gültigkeitsbereichszuordnung mit denselben Berechtigungen für das zuvor verwendete samples/hello-world
-Repository.
az acr scope-map create --name MyScopeMap --registry myregistry \
--repository samples/hello-world \
content/write content/read \
--description "Sample scope map"
Führen Sie az acr token create aus, um ein Token zu erstellen, das die Gültigkeitsbereichszuordnung MyScopeMap angibt. Wie im vorherigen Beispiel legt der Befehl den standardmäßigen Tokenstatus auf enabled
fest.
az acr token create --name MyToken \
--registry myregistry \
--scope-map MyScopeMap
Die Ausgabe zeigt Details zum Token an. Standardmäßig werden zwei Kennwörter generiert. Es wird empfohlen, die Kennwörter an einem sicheren Ort zu speichern, um sie später für die Authentifizierung zu verwenden. Die Kennwörter können nicht erneut abgerufen werden, aber es können neue Kennwörter generiert werden.
Hinweis
Informationen zum erneuten Generieren von Tokenkennwörtern und Ablauffristen finden Sie unter Erneutes Generieren von Tokenkennwörtern weiter unten in diesem Artikel.
Verwenden von Bereichszuordnungen zum Definieren und Zuweisen von Berechtigungen für mehrere Repositorys
Eine Bereichszuordnung ermöglicht die Verwendung eines Platzhalters zum Definieren und Erteilen ähnlicher Berechtigungen für mehrere Repositorys, die ein gemeinsames Präfix verwenden. Repositorys mit bestimmten Berechtigungen und Repositorys mit einem Platzhalter können auch in derselben Bereichszuordnung verwendet werden. Dies bietet Flexibilität beim Verwalten von Berechtigungen für mehrere Repositorys in einer einzelnen Bereichszuordnung.
Repositoryberechtigungen können erstellt werden, wenn eine Bereichszuordnung erstellt und einem Token zugewiesen wird. Alternativ kann ein Token erstellt und direkt einem Repository zugewiesen werden.
Im folgenden Beispiel wird eine Bereichszuordnung mit einem Platzhalter erstellt und dann einem Token zugewiesen.
az acr scope-map create --name MyScopeMapWildcard --registry myregistry \
--repository samples/* \
content/write content/read \
--description "Sample scope map with wildcards"
az acr token create --name MyTokenWildcard \
--registry myregistry \
--scope-map MyScopeMapWildcard
Im folgenden Beispiel wird ein Token mit einem Platzhalter erstellt.
az acr token create --name MyTokenWildcard --registry myregistry \
--repository samples/* \
content/write content/read \
Platzhalterberechtigungen sind additiv, was bedeutet, dass beim Zugriff auf ein bestimmtes Repository die entstandene Berechtigungen die Berechtigungen für alle Bereichszuordnungsregeln enthalten, die mit dem Platzhalterpräfix übereinstimmen.
In diesem Beispiel definiert die Bereichszuordnung Berechtigungen für drei verschiedene Repositorytypen:
Repository | Berechtigung |
---|---|
sample/* |
content/read |
sample/teamA/* |
content/write |
sample/teamA/projectB |
content/delete |
Dem Token wird eine Bereichszuordnung zugewiesen, um [content/read, content/write, content/delete]
-Berechtigungen für den Zugriff auf das Repository „sample/teamA/projectB
“ zu erteilen. Wenn jedoch dasselbe Token für den Zugriff auf das sample/teamA/projectC
-Repository verwendet wird, verfügt es nur über [content/read, content/write]
-Berechtigungen.
Wichtig
Repositorys mit Platzhaltern in der Bereichszuordnung sollten immer auf ein /*
-Suffix enden, das gültig sein muss, und einen einzelnen Platzhalter im Repositorynamen aufweisen.
Hier sind einige Beispiele für ungültige Platzhalter:
sample/*/teamA
mit einem Platzhalter in der Mitte des Repositorynamens.sample/teamA*
mit einem Platzhalter, der nicht auf „/*“ endet.sample/teamA/*/projectB/*
mit mehreren Platzhaltern im Repositorynamen.
Platzhalter auf Stammebene
Platzhalter können auch auf eine Stammebene angewendet werden. Dies bedeutet, dass alle Berechtigungen, die dem Repository zugewiesen sind, das als „*
“ definiert ist, in der Registrierung angewendet werden.
Das Beispiel zeigt, wie Sie ein Token mit einem Platzhalter auf Stammebene erstellen, das den Token [content/read, content/write]
-Berechtigungen für alle Repositorys in der Registrierung erteilen würde. Dies bietet eine einfache Möglichkeit, Berechtigungen für alle Repositorys in der Registrierung zu erteilen, ohne jedes Repository einzeln angeben zu müssen.
az acr token create --name MyTokenWildcard --registry myregistry \
--repository * \
content/write content/read \
Wichtig
Wenn eine Platzhalterregel ein Repository umfasst, das noch nicht vorhanden ist, gelten die Berechtigungen der Platzhalterregel trotzdem für diesen Repositorynamen.
Beispielsweise ein Token, das einer Bereichszuordnung zugewiesen ist, die [content/write, metadata/write]
-Berechtigungen für sample/*
-Repositorys gewährt.
Nehmen wir außerdem an, dass das Repository „sample/teamC/teamCimage
“ noch nicht vorhanden ist.
Das Token verfügt über Berechtigungen zum Pushen von Images an Repository „sample/teamC/teamCimage
“, wodurch das Repository erstellt wird, sobald der Push erfolgreich war.
Token erstellen – Portal
Sie können das Azure-Portal zum Erstellen von Token und Gültigkeitsbereichszuordnungen verwenden. Wie beim CLI-Befehl az acr token create
können Sie eine vorhandene Gültigkeitsbereichszuordnung anwenden oder eine Gültigkeitsbereichszuordnung erstellen, wenn Sie ein Token erstellen, indem Sie ein oder mehrere Repositorys und zugehörige Aktionen angeben. Die Repositorys müssen sich noch nicht in der Registrierung befinden.
Das folgende Beispiel erstellt ein Token und erstellt eine Gültigkeitsbereichszuordnung mit den folgenden Berechtigungen im samples/hello-world
-Repository: content/write
und content/read
.
Navigieren Sie im Azure-Portal zu Ihrer Containerregistrierung.
Wählen Sie unter Repositoryberechtigungen die Option Token > + Hinzufügen aus.
Geben Sie einen Tokennamen ein.
Wählen Sie unter Gültigkeitsbereichszuordnung die Option Neu erstellen aus.
Konfigurieren der Gültigkeitsbereichszuordnung:
Geben Sie einen Namen und eine Beschreibung für die Gültigkeitsbereichszuordnung ein.
Unter Repositorys geben Sie
samples/hello-world
ein, und unter Berechtigungen wählen Siecontent/read
undcontent/write
aus. Wählen Sie dann +Hinzufügen aus.Nachdem Sie Repositorys und Berechtigungen hinzugefügt haben, wählen Sie Hinzufügen aus, um die Gültigkeitsbereichszuordnung hinzuzufügen.
Akzeptieren Sie den Status des Standardtokens von Aktiviert, und wählen Sie dann Erstellen aus.
Nachdem das Token überprüft und erstellt wurde, werden die Details des Tokens auf dem Bildschirm Token angezeigt.
Hinzufügen eines Tokenkennworts
Wenn Sie ein im Portal erstelltes Token verwenden möchten, müssen Sie ein Kennwort generieren. Sie können ein oder zwei Kennwörter generieren und für jedes ein Ablaufdatum festlegen. Neue Kennwörter, die für Token erstellt wurden, sind sofort verfügbar. Beim erneuten Generieren neuer Kennwörter für Token dauert die Replikation 60 Sekunden, wonach sie verfügbar sind.
Navigieren Sie im Azure-Portal zu Ihrer Containerregistrierung.
Wählen Sie unter Repositoryberechtigungen die Option Token und dann ein Token aus.
Wählen Sie in den Tokendetails die Option password1 oder password2 und dann das Symbol „Generieren“ aus.
Legen Sie auf dem Bildschirm für das Kennwort optional ein Ablaufdatum für das Kennwort fest, und wählen Sie Generieren aus. Sie sollten ein Ablaufdatum festlegen.
Nachdem Sie ein Kennwort generiert haben, kopieren und speichern Sie es an einem sicheren Ort. Sie können ein generiertes Kennwort nach dem Schließen des Bildschirms nicht mehr abrufen, aber Sie können ein neues Kennwort generieren.
Authentifizieren mit einem Token
Wenn ein Benutzer oder Dienst ein Token zur Authentifizierung bei der Zielregistrierung verwendet, stellt er den Tokennamen als Benutzernamen und eines seiner generierten Kennwörter zur Verfügung.
Die Authentifizierungsmethode hängt von der oder den konfigurierten Aktionen ab, die mit dem Token verbunden sind.
Aktion | Authentifizierung |
---|---|
content/delete |
az acr repository delete in der Azure CLIBeispiel: az acr repository delete --name myregistry --repository myrepo --username MyToken --password xxxxxxxxxx |
content/read |
docker login az acr login in der Azure CLIBeispiel: az acr login --name myregistry --username MyToken --password xxxxxxxxxx |
content/write |
docker login az acr login in der Azure CLI |
metadata/read |
az acr repository show az acr repository show-tags az acr manifest list-metadata in der Azure CLI |
metadata/write |
az acr repository untag az acr repository update in der Azure CLI |
Beispiele: Verwenden von Token
In den folgenden Beispielen wird das zuvor in diesem Artikel erstellte Token verwendet, um allgemeine Operationen für ein Repository durchzuführen: Images pushen und pullen, Images löschen und Repositorytags auflisten. Das Token wurde anfänglich mit Pushberechtigungen (content/write
- und content/read
-Aktionen) im samples/hello-world
-Repository eingerichtet.
Pullen und Kennzeichnen von Testimages
Pullen Sie für die folgenden Beispiele die öffentlichen Images hello-world
und nginx
aus Microsoft Container Registry, und markieren Sie sie für Ihre Registrierung und Ihr Repository.
docker pull mcr.microsoft.com/hello-world
docker pull mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
docker tag mcr.microsoft.com/hello-world myregistry.azurecr.io/samples/hello-world:v1
docker tag mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine myregistry.azurecr.io/samples/nginx:v1
Authentifizierung mithilfe des Tokens
Führen Sie docker login
oder az acr login
aus, um sich mit der Registrierung zu authentifizieren und Images zu pushen oder pullen. Geben Sie den Tokennamen als Benutzernamen ein, und geben Sie eines seiner Kennwörter an. Das Token muss den Status Enabled
aufweisen.
Das folgende Beispiel ist für die Bash-Shell formatiert und stellt die Werte mithilfe von Umgebungsvariablen bereit.
TOKEN_NAME=MyToken
TOKEN_PWD=<token password>
echo $TOKEN_PWD | docker login --username $TOKEN_NAME --password-stdin myregistry.azurecr.io
Die Ausgabe sollte die erfolgreiche Authentifizierung anzeigen:
Login Succeeded
Übertragen von Images in die Registrierung per Push
Versuchen Sie nach erfolgreicher Anmeldung, die markierten Images in die Registrierung zu pushen. Da das Token über die Berechtigung verfügt, die Images in das samples/hello-world
-Repository zu pushen, ist der folgende Pushvorgang erfolgreich:
docker push myregistry.azurecr.io/samples/hello-world:v1
Das Token hat keine Berechtigungen für das samples/nginx
-Repository, sodass beim folgenden Pushversuch ein Fehler auftritt, der requested access to the resource is denied
ähnelt:
docker push myregistry.azurecr.io/samples/nginx:v1
Aktualisieren von Tokenberechtigungen
Um Berechtigungen eines Tokens zu aktualisieren, aktualisieren Sie die Berechtigungen in der zugehörigen Gültigkeitsbereichszuordnung. Die aktualisierte Gültigkeitsbereichszuordnung wird sofort auf alle zugeordneten Token angewendet.
Aktualisieren Sie z. B. MyToken-scope-map
mit den Aktionen content/write
und content/read
im samples/ngnx
-Repository, und entfernen Sie die Aktion content/write
im samples/hello-world
-Repository.
Führen Sie az acr scope-map update zum Aktualisieren der Gültigkeitsbereichszuordnung aus, um die Azure CLI zu verwenden:
az acr scope-map update \
--name MyScopeMap \
--registry myregistry \
--add-repository samples/nginx content/write content/read \
--remove-repository samples/hello-world content/write
Führen Sie im Azure-Portal die folgenden Schritte aus:
- Navigieren Sie zu Ihrer Containerregistrierung.
- Wählen Sie unter Repositoryberechtigungen die Option Bereichszuordnungen und dann die zu aktualisierende Bereichszuordnung aus.
- Unter Repositorys geben Sie
samples/nginx
ein, und unter Berechtigungen wählen Siecontent/read
undcontent/write
aus. Wählen Sie dann +Hinzufügen aus. - Unter Repositorys wählen Sie
samples/hello-world
aus, und unter Berechtigungen deaktivieren Siecontent/write
. Klicken Sie dann auf Speichern.
Nach der Aktualisierung der Gültigkeitsbereichszuordnung wird der folgende Pushvorgang erfolgreich durchgeführt:
docker push myregistry.azurecr.io/samples/nginx:v1
Da die Gültigkeitsbereichszuordnung nur die content/read
-Berechtigung für das samples/hello-world
-Repository besitzt, tritt jetzt ein Fehler beim Pushversuch für das samples/hello-world
-Repository auf:
docker push myregistry.azurecr.io/samples/hello-world:v1
Das Pullen von Images aus beiden Repositorys wird erfolgreich durchgeführt, da die Gültigkeitsbereichszuordnung content/read
-Berechtigungen für beide Repositorys bereitstellt:
docker pull myregistry.azurecr.io/samples/nginx:v1
docker pull myregistry.azurecr.io/samples/hello-world:v1
Löschen von Images
Aktualisieren Sie die Gültigkeitsbereichszuordnung durch Hinzufügen der Aktion content/delete
zum nginx
-Repository. Diese Aktion ermöglicht das Löschen von Images im Repository oder das Löschen des gesamten Repositorys.
Der Kürze halber zeigen wir nur den Befehl az acr scope-map update zur Aktualisierung der Gültigkeitsbereichszuordnung an:
az acr scope-map update \
--name MyScopeMap \
--registry myregistry \
--add-repository samples/nginx content/delete
Informationen zum Aktualisieren der Bereichszuordnung über das Portal finden Sie im vorherigen Abschnitt.
Verwenden Sie den folgenden Befehl az acr repository delete, um das samples/nginx
-Repository zu löschen. Um Images oder Repositorys zu löschen, übergeben Sie den Namen und das Kennwort des Tokens an den Befehl. Das folgende Beispiel verwendet die zuvor in diesem Artikel erstellten Umgebungsvariablen:
az acr repository delete \
--name myregistry --repository samples/nginx \
--username $TOKEN_NAME --password $TOKEN_PWD
Anzeigen von Repositorytags
Aktualisieren Sie die Gültigkeitsbereichszuordnung durch Hinzufügen der Aktion metadata/read
zum hello-world
-Repository. Diese Aktion ermöglicht das Lesen von Manifest- und Tagdaten im Repository.
Der Kürze halber zeigen wir nur den Befehl az acr scope-map update zur Aktualisierung der Gültigkeitsbereichszuordnung an:
az acr scope-map update \
--name MyScopeMap \
--registry myregistry \
--add-repository samples/hello-world metadata/read
Informationen zum Aktualisieren der Bereichszuordnung über das Portal finden Sie im vorherigen Abschnitt.
Um Metadaten im samples/hello-world
-Repository zu lesen, führen Sie den Befehl az acr manifest list-metadata oder az acr repository show-tags aus.
Um Metadaten zu lesen, übergeben Sie den Namen und das Kennwort des Tokens an einen der beiden Befehle. Das folgende Beispiel verwendet die zuvor in diesem Artikel erstellten Umgebungsvariablen:
az acr repository show-tags \
--name myregistry --repository samples/hello-world \
--username $TOKEN_NAME --password $TOKEN_PWD
Beispielausgabe:
[
"v1"
]
Verwalten von Token und Gültigkeitsbereichszuordnungen
Auflisten von Gültigkeitsbereichszuordnungen
Verwenden Sie den Befehl az acr scope-map list oder den Bildschirm Bereichszuordnungen im Portal, um alle in einer Registrierung konfigurierten Bereichszuordnungen aufzulisten. Beispiel:
az acr scope-map list \
--registry myregistry --output table
Die Ausgabe besteht aus den drei vom System definierten Bereichszuordnungen und anderen von Ihnen generierten Bereichszuordnungen. Token können mit einer dieser Bereichszuordnungen konfiguriert werden.
NAME TYPE CREATION DATE DESCRIPTION
------------------- ------------- -------------------- ------------------------------------------------------------
_repositories_admin SystemDefined 2020-01-20T09:44:24Z Can perform all read, write and delete operations on the ...
_repositories_pull SystemDefined 2020-01-20T09:44:24Z Can pull any repository of the registry
_repositories_push SystemDefined 2020-01-20T09:44:24Z Can push to any repository of the registry
MyScopeMap UserDefined 2019-11-15T21:17:34Z Sample scope map
Anzeigen von Tokendetails
Um Details eines Tokens anzuzeigen, z. B. seinen Status und das Ablaufdatum des Kennworts, führen Sie den Befehl az acr token show aus oder wählen das Token auf dem Bildschirm Token im Portal aus. Beispiel:
az acr scope-map show \
--name MyScopeMap --registry myregistry
Verwenden Sie den Befehl az acr Tokenliste oder den Bildschirm Token im Portal, um alle in einer Registrierung konfigurierten Token aufzulisten. Beispiel:
az acr token list --registry myregistry --output table
Erneutes Generieren von Tokenkennwörtern
Wenn Sie kein Tokenkennwort generiert haben oder neue Kennwörter generieren möchten, führen Sie den Befehl az acr token credential generate aus. Beim erneuten Generieren neuer Kennwörter für Token dauert die Replikation 60 Sekunden, wonach sie verfügbar sind.
Das folgende Beispiel generiert einen neuen Wert für „password1“ für das Token MyToken mit einer Ablauffrist von 30 Tagen. Das Kennwort wird in der Umgebungsvariablen TOKEN_PWD
gespeichert. Dieses Beispiel ist für die Bash-Shell formatiert.
TOKEN_PWD=$(az acr token credential generate \
--name MyToken --registry myregistry --expiration-in-days 30 \
--password1 --query 'passwords[0].value' --output tsv)
Informationen zur Verwendung des Azure-Portals zum Generieren eines Tokenkennworts finden Sie in den Schritten unter Token erstellen – Portal weiter oben in diesem Artikel.
Aktualisieren von Token mit neuer Gültigkeitsbereichszuordnung
Wenn Sie ein Token mit einer anderen Gültigkeitsbereichszuordnung aktualisieren möchten, führen Sie az acr token update aus, und geben Sie die neue Gültigkeitsbereichszuordnung an. Beispiel:
az acr token update --name MyToken --registry myregistry \
--scope-map MyNewScopeMap
Wählen Sie im Portal auf dem Bildschirm Token das Token und unter Bereichszuordnung eine andere Bereichszuordnung aus.
Tipp
Nach der Aktualisierung eines Tokens mit einer neuen Gültigkeitsbereichszuordnung möchten Sie vielleicht neue Tokenkennwörter generieren. Verwenden Sie den Befehl az acr token credential generate, oder generieren Sie ein neues Tokenkennwort im Azure-Portal.
Deaktivieren oder Löschen von Token
Möglicherweise müssen Sie die Verwendung der Tokenanmeldeinformationen für einen Benutzer oder Dienst vorübergehend deaktivieren.
Führen Sie mit der Azure CLI den Befehl az acr token update aus, um status
auf disabled
festzulegen:
az acr token update --name MyToken --registry myregistry \
--status disabled
Wählen Sie im Portal das Token auf dem Bildschirm Token und dann Deaktiviert unter Status aus.
Um ein Token zum dauerhaften Annullieren des Zugriffs von Personen, die seine Anmeldeinformationen verwenden, zu löschen, führen Sie den Befehl az acr token delete aus.
az acr token delete --name MyToken --registry myregistry
Wählen Sie im Portal das Token auf dem Bildschirm Token und dann Verwerfen aus.
Nächste Schritte
- Um Gültigkeitsbereichszuordnungen und Token zu verwalten, verwenden Sie zusätzliche Befehle in den az acr scope-map- und az acr token-Befehlsgruppen.
- In der Authentifizierungsübersicht finden Sie weitere Optionen zur Authentifizierung mit einer Azure-Containerregistrierung, einschließlich der Verwendung einer Microsoft Entra-Identität, eines Dienstprinzipals oder eines Administratorkontos.
- Erfahren Sie mehr über verbundene Registrierungen und die Verwendung von Token für den Zugriff.