Artifact Registry ist der empfohlene Dienst zum Verwalten von Container-Images. Container Registry wird weiterhin unterstützt, erhält aber nur kritische Sicherheitsupdates. Informationen zur Umstellung auf Artifact Registry.

Container Registry-Dienstkonto

Der Container Registry-Dienst-Agent ist ein von Google verwaltetes Dienstkonto, das im Namen von Container Registry agiert, wenn es mit Google Cloud-Diensten interagiert.

Diesem Dienstkonto wird die Rolle des Container Registry-Dienst-Agents in Projekten zugewiesen, in denen die Container Registry API nach dem 5. Oktober 2020 aktiviert wurde, um das Sicherheitsprinzip der geringsten Berechtigung durchzusetzen. Diese Rolle hat die folgenden Berechtigungen:

  • Themen veröffentlichen: pubsub.topics.publish
  • Storage-Objekt-ACLs lesen: storage.objects.getIamPolicy
  • Storage-Objektdaten und -Objektmetadaten lesen: storage.objects.get
  • Storage-Objekte in einem Bucket auflisten und Objektmetadaten lesen: storage.objects.list

Bisher wurde dem Container Registry-Dienstkonto die Rolle Bearbeiter zugewiesen. Da die Rolle "Bearbeiter" Berechtigungen zum Erstellen und Löschen der meisten Ressourcen in einem Projekt gewährt, empfehlen wir, Berechtigungen einzuschränken, wenn Ihr Container Registry-Dienstkonto diese Rolle hat.

Dienstkonto-ID ermitteln

Das Container Registry-Dienstkonto hat die folgende ID:

service-[PROJECT_NUMBER]@containerregistry.iam.gserviceaccount.com

Sehen Sie sich die Liste der Hauptkonten mit Zugriff auf Ihr Projekt an, um das Dienstkonto zu finden.

Console

  1. Rufen Sie die IAM-Seite auf.

  2. Aktivieren Sie das Kästchen Von Google bereitgestellte Rollenzuweisungen hinzufügen, um von Google verwaltete Konten der Liste der Hauptkonten hinzuzufügen.

  3. Geben Sie zum Filtern der Liste im Feld Filter containerregistry ein.

gcloud

Führen Sie den folgenden Befehl aus, um Hauptkonten aufzulisten, die den String containerregistry enthalten:

gcloud projects get-iam-policy PROJECT-ID \
    --flatten="bindings[].members"
    --filter="containerregistry"

Ersetzen Sie PROJECT-ID durch Ihre Google Cloud-Projekt-ID.

Aktuelle Berechtigungen prüfen

Führen Sie folgenden Befehl aus, um die aktuellen Berechtigungen Ihres Container Registry-Dienstkontos zu prüfen:

gcloud projects get-iam-policy PROJECT-ID  \
    --flatten="bindings[].members" \
    --format='table(bindings.role)' \
    --filter="bindings.members:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com"

Dabei gilt:

  • PROJECT-ID ist die Google Cloud-Projekt-ID.
  • PROJECT-NUMBER ist die Google Cloud-Projektnummer.

Sie können die Projekt-ID und Projektnummer in der Google Cloud Console oder mit den folgenden Befehlen abrufen:

PROJECT=$(gcloud config get-value project)
echo $PROJECT && gcloud projects list --filter="$PROJECT" --format="value(PROJECT_NUMBER)"

Berechtigungen ändern

So erteilen Sie die Rolle "Container Registry-Dienst-Agent" und widerrufen die Rolle "Bearbeiter":

  1. Weisen Sie die Rolle "Container Registry-Dienst-Agent" mit dem folgenden Befehl zu:

    gcloud projects add-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/containerregistry.ServiceAgent
    
  2. Entziehen Sie die Bearbeiterrolle mit dem folgenden Befehl:

    gcloud projects remove-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/editor