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
Rufen Sie die IAM-Seite auf.
Aktivieren Sie das Kästchen Von Google bereitgestellte Rollenzuweisungen hinzufügen, um von Google verwaltete Konten der Liste der Hauptkonten hinzuzufügen.
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 Projekt-ID und Projektnummer in der Google Cloud Console oder mit folgenden Befehlen ermitteln:
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":
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
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