Mit Artifact Registry können Sie Remote-Repositories bei Docker Hub authentifizieren. Für das Abrufen öffentlicher Images ist zwar keine Authentifizierung erforderlich, aber durch die Authentifizierung wird das Download-Ratenlimit erhöht. Zur Authentifizierung konfigurieren Sie Ihr Remote-Repository mit Ihrem Docker Hub-Nutzernamen und einem persönlichen Zugriffstoken, das als Secret gespeichert ist.
Hinweis
Prüfen Sie, ob die folgenden Anforderungen erfüllt sind:
- Sie haben ein Remote-Repository für Artifact Registry-Docker erstellt.
- Sie haben ein Docker Hub-Konto.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren der Authentifizierung bei Docker Hub für Remote-Repositories benötigen:
- Artifact Registry-Administrator (
roles/artifactregistry.admin) - Secret Manager-Administrator (
roles/secretmanager.admin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Persönliches Docker Hub-Zugriffstoken erstellen
- Melden Sie sich im Docker Hub an.
- Erstellen Sie ein persönliches Zugriffstoken mit Leseberechtigungen.
Kopieren Sie das Zugriffstoken.
Speichern Sie das Zugriffstoken in einer Textdatei in Ihrer lokalen Umgebung oder in Cloud Shell.
Persönliches Zugriffstoken in einer Secret-Version speichern
- Erstellen Sie ein Secret in Secret Manager.
- Speichern Sie Ihr persönliches Docker Hub-Zugriffstoken als Secret-Version.
Artifact Registry-Dienstkonto Zugriff auf Ihr Secret gewähren
Der Artifact Registry-Dienst-Agent agiert im Namen von Artifact Registry, wenn er mit Diensten von Google Cloud interagiert. Damit der Dienst-Agent Secrets verwenden kann, die in Secret Manager gespeichert sind, müssen Sie ihm die Berechtigung zum Aufrufen Ihrer Secret-Version gewähren.
Die Kennung des Dienst-Agents lautet:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER ist die Projektnummer des Projekts in Google Cloud , in dem Artifact Registry ausgeführt wird.
So weisen Sie dem Artifact Registry-Dienst-Agent die Rolle Secret Manager Secret Accessor zu:
Console
-
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
-
Klicken Sie auf der Seite Secret Manager auf das Kästchen neben dem Namen des Secrets.
-
Falls das Fenster noch nicht geöffnet ist, klicken Sie auf Infofeld ansehen, um es zu öffnen.
-
Klicken Sie im Infofeld auf Hauptkonto hinzufügen.
-
Geben Sie im Textbereich Neue Hauptkonten die E-Mail-Adressen der Mitglieder ein, die Sie hinzufügen möchten.
-
Wählen Sie im Drop-down-Menü Rolle auswählen die Option Secret Manager und dann Zugriffsfunktion für Secret Manager-Secret aus.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
Dabei ist member ein IAM-Mitglied, z. B. ein Nutzer, eine Gruppe oder ein Dienstkonto.
C#
Richten Sie zur Authentifizierung bei Artifact Registry Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Artifact Registry Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Artifact Registry Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Artifact Registry Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Artifact Registry Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Artifact Registry Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Artifact Registry Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
API
Hinweis: Im Gegensatz zu den anderen Beispielen wird dadurch die gesamte IAM-Richtlinie ersetzt.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"
Weitere Informationen zum Gewähren oder Widerrufen des Zugriffs auf Secrets finden Sie unter Zugriff auf Secrets verwalten.
Docker Hub-Anmeldedaten zu Ihrem Remote-Repository hinzufügen
So aktualisieren Sie Ihr Remote-Repository mit Ihren Docker Hub-Anmeldedaten:
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Aktualisieren oder fügen Sie im Abschnitt Authentifizierungsmodus für Remote-Repository Ihren Docker Hub-Nutzernamen und die Secret-Version mit Ihrem Docker Hub-Zugriffstoken hinzu.
gcloud-CLI
Führen Sie den folgenden Befehl aus, um Ihr Remote-Repository mit Ihren Docker Hub-Anmeldedaten zu aktualisieren:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USERNAME \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Ersetzen Sie Folgendes:
REPOSITORY: der Name Ihres Artifact Registry-Remote-RepositorysPROJECT_ID: Projekt-ID in Google Cloud .LOCATION: der regionale oder multiregionale Standort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standard-Speicherort festgelegt haben. Führen Sie den Befehlgcloud artifacts locations listaus, um eine Liste der unterstützten Standorte aufzurufen.USERNAME: Ihr Docker Hub-Nutzername.SECRET_PROJECT_ID: die Projekt-ID desGoogle Cloud -Projekts, in dem Sie das Secret erstellt haben.SECRET_ID: der Name, den Sie Ihrem Secret gegeben haben.SECRET_VERSION: die Secret-Version, in der Sie Ihr Docker Hub-Zugriffstoken gespeichert haben.
Ihre Anmeldedaten werden verwendet, wenn das Remote-Repository das nächste Mal eine Anfrage für ein Artefakt von der Upstream-Quelle sendet.
Nächste Schritte
- Weitere Informationen zu Artifact Registry-Repositories
- Images mit Docker abrufen
- Kurzanleitung für das Docker Hub-Remote-Repository