Auf dieser Seite wird beschrieben, wie Sie Hauptkonten IAM-Rollen (Identity and Access Management) für Secure Source Manager-Ressourcen zuweisen. Informationen zum Zuweisen von Rollen für andere Google Cloud Ressourcen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Für Secure Source Manager-Instanzen und -Repositories gibt es eigene Rollen. Wenn Sie zum ersten Mal Instanzrollen in einem Projekt zuweisen, müssen Sie die gcloud CLI oder die REST API verwenden. Sie können Repository-Rollen mit dem gcloud CLI-Tool, der REST API oder über die Secure Source Manager-Weboberfläche zuweisen.
Nachdem Sie eine Secure Source Manager-Rolle mit der gcloud CLI, der Weboberfläche oder der REST API gewährt haben, ist die Rolle für Ihr Projekt in der Google Cloud Console sichtbar.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aktualisieren der IAM-Richtlinie für eine Instanz oder ein Repository benötigen:
-
IAM-Rollen für Instanzen gewähren:
Inhaber von Secure Source Manager-Instanzen (
roles/securesourcemanager.instanceOwner
) für die Secure Source Manager-Instanz -
Weisen Sie Repository-IAM-Rollen zu:
Administrator von Secure Source Manager-Repositories (
roles/securesourcemanager.repoAdmin
) für das Repository
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.
Informationen zum Zuweisen von Secure Source Manager-Rollen finden Sie unter Zugriffssteuerung mit IAM und Nutzern Instanzzugriff gewähren.
Hauptkonten angeben
Ein Hauptkonto ist eine Identität, die auf eine Ressource zugreifen kann. Jedes Hauptkonto hat eine eigene Kennung. Hauptkonto-Kennzeichnungen haben das folgende Format:
PRINCIPAL-TYPE:ID
Beispiel: user:my-user@example.com
. Weitere Informationen zu Hauptkonten finden Sie unter Funktionsweise von IAM.
Beim Hauptkontotyp user
muss der Domainname in der Kennung eine Google Workspace- oder Cloud Identity-Domain sein, es sei denn, Sie verwenden die Mitarbeiteridentitätsföderation. Informationen zum Einrichten einer Cloud Identity-Domain finden Sie unter Cloud Identity – Übersicht.
Principals für die Mitarbeiteridentitätsföderation
Wenn Sie die Mitarbeiteridentitätsföderation für den Zugriff auf Secure Source Manager verwenden, werden Hauptkonten anders dargestellt. Weitere Informationen zum Gewähren des Zugriffs auf Hauptkonten, die Gruppen von Identitäten darstellen, finden Sie unter Workforce-Pool-Nutzer in IAM-Richtlinien darstellen.
Mit dem folgenden Befehl wird dem Nutzer user@example.com
beispielsweise die Rolle „Instance Accessor“ (roles/securesourcemanager.instanceAccessor
) im Workforce-Pool my-pool
für die Instanz my-instance
im Projekt my-project
in der Region us-central1
zugewiesen:
gcloud beta source-manager instances add-iam-policy-binding my-instance \
--project=my-project \
--region=us-central1 \
--member=principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com \
--role=roles/securesourcemanager.instanceAccessor
Sie können Nutzern oder Gruppen in Ihrem Workforce Identity-Pool basierend auf den Attributen Ihres Identitätsanbieters (IdP) Berechtigungen erteilen oder Common Expression Language (CEL) verwenden, um Ihre OIDC-Attribute benutzerdefinierten Attributen zuzuordnen und so eine Autorisierungsstrategie in Ihrer IAM-Richtlinie zu definieren. Weitere Informationen zu Attributzuordnungen finden Sie unter Attributzuordnungen.
Instanzrollen zuweisen oder entziehen
Verwenden Sie zum Zuweisen oder Widerrufen von Instanzrollen das Muster read-modify-write, um die Zulassungsrichtlinie der Ressource zu aktualisieren:
- Lesen Sie die aktuelle Zulassungsrichtlinie, indem Sie
getIamPolicy()
aufrufen. - Bearbeiten Sie die Zulassungsrichtlinie entweder mit einem Texteditor oder programmgesteuert, um Hauptkonten oder Rollenbindungen hinzuzufügen oder zu entfernen.
- Schreiben Sie die aktualisierte Zulassungsrichtlinie durch Aufrufen von
setIamPolicy()
.
gcloud
Führen Sie den folgenden Befehl aus, um die aktuelle Zulassungsrichtlinie zu lesen und in
/tmp/instances.json
zu speichern:gcloud beta source-manager instances get-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --format=json > /tmp/instance.json
Ersetzen Sie Folgendes:
INSTANCE_ID
durch die Instanz-ID.PROJECT_ID
durch die Projekt-ID oder Projektnummer der Instanz.REGION
durch die Region, in der sich die Instanz befindet. Informationen zu den verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.
Die Ausgabe enthält alle vorhandenen Bindungen oder, falls keine vorhanden sind, den Wert
etag
, wie im Folgenden dargestellt:{ "etag": "BwUjHYKJUiQ=" }
Passen Sie die lokale Kopie der Zulassungsrichtlinie Ihrer Instanz programmgesteuert oder mithilfe eines Texteditors so an, dass sie die Rollen widerspiegelt, die Sie gewähren oder widerrufen möchten.
Bearbeiten Sie das Feld
etag
der Zulassungsrichtlinie nicht und entfernen Sie es nicht, um sicherzustellen, dass Sie keine anderen Richtlinienänderungen überschreiben. Das Feldetag
gibt den aktuellen Zustand der Zulassungsrichtlinie an. Wenn Sie die aktualisierte Zulassungsrichtlinie festlegen, vergleicht IAM denetag
-Wert in der Anfrage mit dem vorhandenenetag
und schreibt die Zulassungsrichtlinie nur, wenn die Werte übereinstimmen.Wenn Sie die Rollen bearbeiten möchten, die durch eine Zulassungsrichtlinie gewährt werden, müssen Sie die Rollenbindungen in der Zulassungsrichtlinie bearbeiten. Rollenbindungen haben das folgende Format:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
Die Platzhalter haben folgende Werte:
ROLE_NAME
: Der Name der Rolle, die Sie zuweisen möchten. Verwenden Sie das folgende Format:roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: Kennungen für die Hauptkonten, denen Sie die Rolle zuweisen möchten.
In der folgenden Richtlinie wird beispielsweise die Rolle
instanceOwner
dem Nutzeruser1@gmail.com
und die RolleinstanceManager
den Nutzernuser2@gmail.com
unduser3@gmail.com
sowie dem Dienstkontomy-other-app@appspot.gserviceaccount.com
zugewiesen.{ "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] }
Nachdem Sie die gespeicherte Zulassungsrichtlinie geändert haben, um die ausgewählten Rollen zuzuweisen und zu widerrufen, aktualisieren Sie die Zulassungsrichtlinie Ihrer Instanz, indem Sie den folgenden Befehl ausführen:
gcloud beta source-manager instances set-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ /tmp/instance.json
Ersetzen Sie Folgendes:
INSTANCE_ID
durch die Instanz-ID.PROJECT_ID
durch die Projekt-ID oder Projektnummer der Instanz.REGION
durch die Region, in der sich die Instanz befindet. Informationen zu den verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.
API
Führen Sie den folgenden
instances.getIamPolicy
-Befehl aus, um die aktuelle Richtlinie zu lesen:curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:getIamPolicy > /tmp/instance.json
Ersetzen Sie Folgendes:
PROJECT_ID
ist die Projekt-ID oder Projektnummer der Instanz.REGION
ist die Region, in der sich die Instanz befindet. Informationen zu den verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.INSTANCE_ID
: die Instanz-ID.
Die Ausgabe enthält alle vorhandenen Bindungen oder, falls keine vorhanden sind, den Wert
etag
, der in etwa so aussieht:{ "etag": "BwUjHYKJUiQ=" }
Passen Sie die lokale Kopie der Zulassungsrichtlinie Ihrer Instanz programmgesteuert oder mithilfe eines Texteditors so an, dass sie die Rollen widerspiegelt, die Sie gewähren oder entziehen möchten.
Bearbeiten Sie das Feld
etag
der Zulassungsrichtlinie nicht und entfernen Sie es nicht, um sicherzustellen, dass Sie keine anderen Richtlinienänderungen überschreiben. Das Feldetag
gibt den aktuellen Zustand der Zulassungsrichtlinie an. Wenn Sie die aktualisierte Zulassungsrichtlinie festlegen, vergleicht IAM denetag
-Wert in der Anfrage mit dem vorhandenenetag
und schreibt die Zulassungsrichtlinie nur, wenn die Werte übereinstimmen.Wenn Sie die Rollen bearbeiten möchten, die durch eine Zulassungsrichtlinie gewährt werden, müssen Sie die Rollenbindungen in der Zulassungsrichtlinie bearbeiten. Rollenbindungen haben das folgende Format:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
Die Platzhalter haben folgende Werte:
ROLE_NAME
: Der Name der Rolle, die Sie zuweisen möchten. Verwenden Sie das folgende Format:roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: Kennungen für die Hauptkonten, denen Sie die Rolle zuweisen möchten.
In der folgenden Richtlinie wird beispielsweise die Rolle
instanceOwner
dem Nutzeruser1@gmail.com
und die RolleinstanceManager
den Nutzernuser2@gmail.com
unduser3@gmail.com
sowie dem Dienstkontomy-other-app@appspot.gserviceaccount.com
zugewiesen.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }
Nachdem Sie die Zulassungsrichtlinie geändert haben, um die ausgewählten Rollen zuzuweisen und zu widerrufen, rufen Sie
instances.setIamPolicy()
auf, um Aktualisierungen vorzunehmen.Verwenden Sie den folgenden
instances.setIamPolicy
-Befehl, um die neue Richtlinie für die Instanz festzulegen.curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:setIamPolicy \ -d @/tmp/instance.json
Ersetzen Sie Folgendes:
PROJECT_ID
ist die Projekt-ID oder Projektnummer der Instanz.REGION
ist die Region, in der sich die Instanz befindet. Informationen zu den verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.INSTANCE_ID
: die Instanz-ID.
Repository-Rollen zuweisen oder entziehen
Sie können Nutzern und Dienstkonten Repository-Rollen über die Secure Source Manager-Weboberfläche zuweisen oder entziehen. Alternativ können Sie die Secure Source Manager API verwenden, um die „allow“-Richtlinie des Repositorys zu aktualisieren. Wenn Sie Gruppen Repository-Rollen zuweisen möchten, müssen Sie die Secure Source Manager API verwenden.
Nutzern muss eine Instanzrolle zugewiesen werden, bevor ihnen Repository-Rollen zugewiesen werden können. Informationen zum Zuweisen von Instanzrollen finden Sie unter Instanzrollen zuweisen oder widerrufen.
Weboberfläche
So weisen Sie Nutzern oder Dienstkonten Rollen auf Repository-Ebene über die Weboberfläche zu:
- Rufen Sie die Instanz-URL auf, die Sie von Ihrem Google-Ansprechpartner erhalten haben.
- Wählen Sie auf der Seite Meine Repositories Ihr Repository aus.
- Klicken Sie auf den Tab Berechtigungen.
- Klicken Sie im Bereich Personen und Berechtigungen auf Nutzer hinzufügen.
- Geben Sie im Feld Hauptkonto hinzufügen die E-Mail-Adresse des Nutzers oder Dienstkontos ein, dem Sie die Rolle zuweisen möchten.
- Wählen Sie im Menü Rolle zuweisen die Rolle aus, die Sie zuweisen möchten.
- Klicken Sie auf Speichern.
Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf das Bearbeiten-Symbol Bearbeiten und fügen Sie die Rollen über das Menü Rolle zuweisen hinzu.
API
Die Methode repositories.getIamPolicy
der Secure Source Manager API ruft die Zulassungsrichtlinie eines Repositorys ab.
- Führen Sie den folgenden
repositories.getIamPolicy
-Befehl aus, um die aktuelle Richtlinie zu lesen und in/tmp/repository.json
zu speichern:
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:getIamPolicy > /tmp/repository.json
Ersetzen Sie Folgendes:
REPOSITORY_PROJECT
die Projekt-ID oder Projektnummer des Repositorys.REGION
ist die Region, in der sich das Repository befindet.REPOSITORY_ID
ist die Repository-ID.
Die Ausgabe enthält alle vorhandenen Bindungen oder, falls keine vorhanden sind, den Wert etag
, der in etwa so aussieht:
{
"etag": "BwUjHYKJUiQ="
}
Passen Sie die lokale Kopie der Zulassungsrichtlinie Ihres Repositorys, die in
/tmp/repository.json
gespeichert ist, programmgesteuert oder mithilfe eines Texteditors so an, dass sie die Rollen widerspiegelt, die Sie gewähren oder widerrufen möchten.Bearbeiten Sie das Feld
etag
der Zulassungsrichtlinie nicht und entfernen Sie es nicht, um sicherzustellen, dass Sie keine anderen Richtlinienänderungen überschreiben. Das Feldetag
gibt den aktuellen Zustand der Zulassungsrichtlinie an. Wenn Sie die aktualisierte Zulassungsrichtlinie festlegen, vergleicht IAM denetag
-Wert in der Anfrage mit dem vorhandenenetag
und schreibt die Zulassungsrichtlinie nur, wenn die Werte übereinstimmen.Wenn Sie die Rollen bearbeiten möchten, die durch eine Zulassungsrichtlinie gewährt werden, müssen Sie die Rollenbindungen in der Zulassungsrichtlinie bearbeiten. Rollenbindungen haben das folgende Format:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
Die Platzhalter haben folgende Werte:
ROLE_NAME
: Der Name der Rolle, die Sie zuweisen möchten. Verwenden Sie das folgende Format:roles/securesourcemanager.<var>IDENTIFIER</var>
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: Kennungen für die Hauptkonten, denen Sie die Rolle zuweisen möchten.
Im folgenden Beispiel wird dem Nutzer
email1@gmail.com
die RollerepoAdmin
und den Nutzernemail2@gmail.com
undgroup1@gmail.com
sowie dem Dienstkontomy-other-app@appspot.gserviceaccount.com
die RollerepoWriter
zugewiesen.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.repoAdmin", "members": [ "user:email1@gmail.com" ] }, { "role": "roles/resourcemanager.repoWriter", "members": [ "user:email2@gmail.com", "group:group1@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }
Speichern Sie die bearbeitete Datei
/tmp/repository.json
.Legen Sie die neue Richtlinie mit dem Befehl
setIamPolicy
fest:curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:setIamPolicy \ -d @/tmp/repository.json
Ersetzen Sie Folgendes:
REPOSITORY_PROJECT
die Projekt-ID oder Projektnummer des Repositorys.REGION
ist die Region, in der sich das Repository befindet. Informationen zu den verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.REPOSITORY_ID
ist die Repository-ID.