In diesem Dokument erfahren Sie, wie Sie Container Registry-Rollen Artifact Registry-Rollen zuordnen und auf ein Artifact Registry-Repository anwenden. Sie können dieselben Schritte auch mit dem automatischen Migrationstool ausführen.
Container Registry und Artifact Registry verwenden unterschiedliche IAM-Rollen (Identity and Access Management), um den Zugriff auf in der Registry gespeicherte Container-Images zu steuern.
Um Ihnen den Übergang von Container Registry zu Artifact Registry zu erleichtern, können Sie einen Google Cloud CLI-Befehl ausführen, der Folgendes tut:
- Gibt die Zulassungsrichtlinien an, die für einen Cloud Storage-Bucket gelten, in dem Bilder für Container Registry gespeichert werden.
- Gibt eine Richtlinie mit ähnlichen Artifact Registry-Rollen zurück, damit Sie Ihren vorhandenen Container Registry-Nutzern Zugriff auf Artifact Registry-Repositories gewähren können.
Mit dem Befehl wird das IAM Policy Analyzer verwendet, um IAM-Allow-Richtlinien zu analysieren.
Hinweise
Erstellen Sie ein Artifact Registry-Repository. Wenn Sie die manuelle Methode für die Umstellung gewählt haben, folgen Sie der Anleitung, um entweder manuell zu
gcr.io
-Repositories in Artifact Registry zu migrieren oder manuell zupkg.dev
-Repositories zu migrieren.Enable the Cloud Asset API.
Sie müssen die API in dem Projekt aktivieren, in dem Sie vorhandene Zulassungsrichtlinien analysieren möchten.
gcloud CLI installieren und initialisieren Aktualisieren Sie für eine vorhandene Installation auf die neueste Version mit dem Befehl:
gcloud components update
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt, den Ordner oder die Organisation zuzuweisen, die Sie auf Berechtigungen analysieren möchten, um die Berechtigungen zu erhalten, die Sie zum Analysieren von Zulassungsrichtlinien und zum Gewähren des Zugriffs auf Artifact Registry-Repositories benötigen:
-
Cloud-Asset-Betrachter (
roles/cloudasset.viewer
) -
So analysieren Sie Richtlinien mit benutzerdefinierten IAM-Rollen:
Rollenbetrachter (
roles/iam.roleViewer
) -
So analysieren Sie Richtlinien mit der Google Cloud CLI:
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) - So weisen Sie Rollen für ein Artifact Registry-Repository zu: Artifact Registry-Administrator
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Analysieren von Zulassungsrichtlinien und zum Gewähren des Zugriffs auf Artifact Registry-Repositories erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Zulassungsrichtlinien zu analysieren und Zugriff auf Artifact Registry-Repositories zu gewähren:
-
cloudasset.assets.analyzeIamPolicy
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.searchAllIamPolicies
-
So analysieren Sie Richtlinien mit benutzerdefinierten IAM-Rollen:
iam.roles.get
-
So verwenden Sie die Google Cloud CLI zum Analysieren von Richtlinien:
serviceusage.services.use
-
So weisen Sie Rollen für ein Artifact Registry-Repository zu:
artifactregistry.repositories.setIamPolicy
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Mapping-Tool verwenden
Das Zuordnungstool prüft Zulassungsrichtlinien für einen angegebenen Container Registry-Hostnamen, z. B. gcr.io
.
Das Tool sucht nach Berechtigungssätzen, die in vordefinierten Cloud Storage-Rollen enthalten sind, und ordnet sie Artifact Registry-Rollen zu. Einen Vergleich der Cloud Storage-Berechtigungen mit den Artifact Registry-Rollen finden Sie unter Rollenzuordnungen.
So verwenden Sie das Tool zur Rollenzuordnung:
Führen Sie das Mapping-Tool aus:
gcloud beta artifacts docker upgrade print-iam-policy HOSTNAME \ --project=PROJECT_ID > POLICY_FILENAME
Ersetzen Sie die folgenden Werte:
HOSTNAME ist der Container Registry-Hostname, den das Tool analysieren soll:
gcr.io
asia.gcr.io
eu.gcr.io
us.gcr.io
PROJECT_ID ist die ID des Google Cloud Projekts mit dem zu analysierenden Registry-Host.
POLICY_FILE ist der Dateiname für die Richtlinie im YAML-Format, die vom Tool zurückgegeben wird.
Mit dem folgenden Beispielbefehl wird der Storage-Bucket für
gcr.io
im Projektmy-project
nach „allow“-Richtlinien durchsucht, die direkt auf den Bucket angewendet werden oder von der übergeordneten Organisations-ID101231231231
und ihren untergeordneten Elementen übernommen werden.gcloud beta artifacts docker upgrade print-iam-policy gcr.io \ --project=my-project > gcr-io-policy.yaml
Der Befehl gibt eine Richtliniendatei im YAML-Format mit Artifact Registry-Rollenbindungen zurück, die auf vorhandenen Zulassungsrichtlinien für den Speicher-Bucket basieren. Wenn sich das übergeordnete Projekt für den Speicher-Bucket in einer Organisation befindet, enthält die Richtliniendatei Hauptkonten, denen Zugriff auf Ordner- oder Organisationsebene gewährt wurde.
Das folgende Beispiel enthält beispielsweise Artifact Registry-Rollenbindungen für:
- Cloud Build-, Compute Engine- und Container Registry-Dienst-Agents. Dienst-Agents agieren im Namen vonGoogle Cloud -Diensten.
- Das Nutzerkonto
user@example.com
- Das nutzerverwaltete Dienstkonto
deploy@my-project.iam.gserviceaccount.com
.
bindings: - members: - service-3213213213213@gcp-sa-cloudbuild.iam.gserviceaccount.com - user:user@example.com role: roles/artifactregistry.repoAdmin - members: - serviceAccount:deploy@my-project.iam.gserviceaccount.com - serviceAccount:service-1231231231231@@compute-system.iam.gserviceaccount.com - serviceAccount:service-1231231231231@containerregistry.iam.gserviceaccount.com role: roles/artifactregistry.reader
Entfernen Sie die Zeile für den Container Registry-Dienst-Agent aus der Richtliniendatei, da für dieses Dienstkonto kein Zugriff auf Ihre Artifact Registry-Repositories erforderlich ist. Das Suffix der E-Mail-Adresse des Dienst-Agents lautet
containerregistry.iam.gserviceaccount.com
.In der Beispielrichtlinie aus dem vorherigen Schritt lautet die Zeile mit dem Container Registry-Dienst-Agent:
- serviceAccount:service-1231231231231@containerregistry.iam.gserviceaccount.com
Prüfen Sie die anderen Rollenbindungen, um sicherzugehen, dass sie angemessen sind.
Artifact Registry bietet zusätzliche vordefinierte Rollen, die Sie für einige Hauptkonten in Betracht ziehen sollten. Mit der Rolle „Artifact Registry Create-on-push Repository Administrator“ kann ein Prinzipal beispielsweise gcr.io-Repositories in Artifact Registry erstellen, aber keine anderen Artifact Registry-Repositories.
Fügen Sie Rollenbindungen für alle Hauptkonten hinzu, die in der Richtliniendatei fehlen.
Die folgenden Hauptkonten fehlen möglicherweise in der zurückgegebenen Richtliniendatei:
- Hauptkonten mit benutzerdefinierten Rollen, die nicht die Berechtigungssätze haben, die das Tool zum Zuweisen von Rollen verwendet hat.
- Hauptkonten, denen Zugriff auf einen übergeordneten Ordner oder eine übergeordnete Organisation gewährt wurde, wenn Sie nicht berechtigt sind, einen übergeordneten Ordner oder eine übergeordnete Organisation anzusehen.
Wenden Sie die Richtlinienbindungen auf Ihre Artifact Registry-Repositories an.
gcloud artifacts repositories set-iam-policy REPOSITORY FILENAME \ --project=PROJECT_ID \ --location=LOCATION
Ersetzen Sie die folgenden Werte:
- REPOSITORY ist der Name des Repositorys.
- POLICY_FILENAME ist der Name der Richtliniendatei, die Sie auf das Repository anwenden.
- PROJECT_ID ist die Projekt-ID.
- LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
Im folgenden Beispiel für das Projekt
my-project
wird die Richtlinie in der Dateigcr-io-policy.yaml
auf das Repository mit dem Namengcr.io
in der Multiregionus
angewendet:gcloud artifacts repositories set-iam-policy gcr.io gcr-io-policy.yaml \ --project=my-project \ --location=us
Wenn Sie Rollenbindungen auf eine Ressource auf höherer Ebene anwenden möchten, bearbeiten Sie die vorhandene Projekt-, Ordner- oder Organisationsrichtlinie mit den Bindungen, die Sie hinzufügen möchten.
Rollenzuordnungen
In der folgenden Tabelle sehen Sie, welche vordefinierten Artifact Registry-Rollen bestehenden Container Registry-Nutzern je nach ihren Cloud Storage-Berechtigungen zugewiesen werden sollten.
Erforderliche Berechtigungen in der Rolle | Artifact Registry-Rolle |
---|---|
storage.objects.get storage.objects.list |
Artifact Registry-Leser |
storage.buckets.get storage.objects.get storage.objects.list storage.objects.create |
Artifact Registry-Autor |
storage.buckets.get storage.objects.get storage.objects.list storage.objects.create storage.objects.delete |
Repository-Administrator für Artifact Registry |
storage.buckets.get storage.objects.get storage.objects.list storage.objects.create storage.buckets.create |
Artifact Registry-Administrator |