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.
Secure Source Manager-Instanzen und ‑Repositories haben eigene Rollen. Wenn Sie zum ersten Mal Instanzrollen in einem Projekt zuweisen, müssen Sie das gcloud CLI-Tool 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 mindestens einmal mit dem gcloud CLI-Tool, der Weboberfläche oder der REST API zugewiesen haben, kann die Rolle in der Google Cloud Console ausgewählt werden, wenn Sie Zugriff auf Projektebene gewähren. Die spezifischen Rollenzuweisungen (Bindungen) auf Instanz- und Repository-Ebene werden jedoch nicht in der Liste der Hauptkonten auf der IAM-Seite der Google Cloud Console auf Projektebene angezeigt.
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:
-
Gewähren Sie die IAM-Rollen für die Instanz:
Secure Source Manager Instance Owner (
roles/securesourcemanager.instanceOwner) für die Secure Source Manager-Instanz -
Weisen Sie die IAM-Rollen für das Repository zu:
Secure Source Manager Repo Admin (
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 Zugriff auf Instanzen gewähren.
Hauptkonten angeben
Ein Hauptkonto stellt eine Identität dar, 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 Workforce Identity-Föderation. Informationen zum Einrichten einer Cloud Identity-Domain finden Sie unter Cloud Identity – Übersicht.
Hauptkonten der Mitarbeiteridentitätsföderation
Wenn Sie die Workforce Identity-Föderation für den Zugriff auf Secure Source Manager verwenden, werden Hauptkonten anders dargestellt. Weitere Informationen zum Gewähren von Zugriff auf Hauptkonten, die Gruppen von Identitäten darstellen, finden Sie unter Nutzer von Workforce-Pools in IAM-Richtlinien darstellen.
Mit dem folgenden Befehl wird dem Nutzer user@example.com beispielsweise die Rolle „Instanzzugriff“ (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 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 Ihren IdP-Attributen (Identity Provider) Zugriff gewähren oder die 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 das gcloud CLI-Tool oder die Secure Source Manager API, um Hauptkonten Instanzrollen zuzuweisen oder zu entziehen.
gcloud
Führen Sie den folgenden Befehl aus, um einem Hauptkonto eine Rolle für eine Instanz zuzuweisen:
gcloud source-manager instances add-iam-policy-binding INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --member=PRINCIPAL \ --role=ROLE_NAMEErsetzen Sie Folgendes:
INSTANCE_IDdurch die Instanz-ID.PROJECT_IDdurch die Projekt-ID oder Projektnummer der Instanz.REGIONdurch die Region, in der sich die Instanz befindet. Eine Liste der verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.PRINCIPALdurch das Hauptkonto, dem die Rolle zugewiesen werden soll. Beispiel:user:my-user@example.com.ROLE_NAMEdurch den Namen der Rolle, die Sie zuweisen möchten. Beispiel:roles/securesourcemanager.instanceOwner.
Führen Sie den folgenden Befehl aus, um einem Hauptkonto eine Rolle für eine Instanz zu entziehen:
gcloud source-manager instances remove-iam-policy-binding INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --member=PRINCIPAL \ --role=ROLE_NAMEErsetzen Sie Folgendes:
INSTANCE_IDdurch die Instanz-ID.PROJECT_IDdurch die Projekt-ID oder Projektnummer der Instanz.REGIONdurch die Region, in der sich die Instanz befindet.PRINCIPALdurch das Hauptkonto, dem die Rolle entzogen werden soll. Beispiel:user:my-user@example.com.ROLE_NAMEdurch den Namen der Rolle, die widerrufen werden soll. Beispiel:roles/securesourcemanager.instanceOwner.
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.jsonErsetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID oder Projektnummer der Instanz.REGION: die Region, in der sich die Instanz befindet. Eine Liste der 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 widerrufen möchten.
Bearbeiten Sie das Feld
etagder Zulassungsrichtlinie nicht und entfernen Sie es nicht, um sicherzustellen, dass Sie keine anderen Richtlinienänderungen überschreiben. Das Feldetaggibt den aktuellen Zustand der Zulassungsrichtlinie an. Wenn Sie die aktualisierte Zulassungsrichtlinie festlegen, vergleicht IAM denetag-Wert in der Anfrage mit dem vorhandenenetagund 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.IDENTIFIERPRINCIPAL_1,PRINCIPAL_2,...PRINCIPAL_N: Kennungen für die Hauptkonten, denen Sie die Rolle zuweisen möchten.
In der folgenden Richtlinie wird beispielsweise
user1@gmail.comdie RolleinstanceOwnerund den Nutzernuser2@gmail.com,user3@gmail.comund dem Dienstkontomy-other-app@die RolleinstanceManagerzugewiesen.{ "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@" ] } ] } }Nachdem Sie die Zulassungsrichtlinie geändert haben, um die gewünschten 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.jsonErsetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID oder Projektnummer der Instanz.REGION: die Region, in der sich die Instanz befindet. Eine Liste der verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.INSTANCE_ID: die Instanz-ID.
Repository-Rollen zuweisen oder entziehen
Wenn Sie Nutzern und Dienstkonten Repository-Rollen zuweisen oder entziehen möchten, können Sie sie über die Secure Source Manager-Weboberfläche zuweisen oder die Secure Source Manager API verwenden, um die Zulassungsrichtlinie für das Repository 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 über die Weboberfläche Rollen auf Repository-Ebene 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 Symbol Bearbeiten Bearbeiten und fügen Sie die Rollen über das Menü Rolle zuweisen hinzu.
API
Mit der Secure Source Manager API-Methode repositories.getIamPolicy wird die Zulassungsrichtlinie eines Repositorys abgerufen.
- Führen Sie den folgenden
repositories.getIamPolicy-Befehl aus, um die aktuelle Richtlinie zu lesen und in/tmp/repository.jsonzu 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.REGIONist die Region, in der sich das Repository befindet.REPOSITORY_ID: 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.jsongespeichert 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
etagder Zulassungsrichtlinie nicht und entfernen Sie es nicht, um sicherzustellen, dass Sie keine anderen Richtlinienänderungen überschreiben. Das Feldetaggibt den aktuellen Zustand der Zulassungsrichtlinie an. Wenn Sie die aktualisierte Zulassungsrichtlinie festlegen, vergleicht IAM denetag-Wert in der Anfrage mit dem vorhandenenetagund schreibt die Zulassungsrichtlinie nur, wenn die Werte übereinstimmen.Wenn Sie die Rollen bearbeiten möchten, die eine Zulassungsrichtlinie gewährt, 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.comdie RollerepoAdminund den Nutzernemail2@gmail.com,group1@gmail.comund dem Dienstkontomy-other-app@die RollerepoWriterzugewiesen.{ "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@" ] } ] } }Speichern Sie die bearbeitete
/tmp/repository.json-Datei.Legen Sie die neue Richtlinie mit dem Befehl
setIamPolicyfest: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.jsonErsetzen Sie Folgendes:
REPOSITORY_PROJECT: die Projekt-ID oder Projektnummer des Repositorys.REGIONist die Region, in der sich das Repository befindet. Eine Liste der verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.REPOSITORY_ID: die Repository-ID.