IAM-Rollen zuweisen und entziehen

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:

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

  1. 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_NAME
    

    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. Eine Liste der verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.
    • PRINCIPAL durch das Hauptkonto, dem die Rolle zugewiesen werden soll. Beispiel: user:my-user@example.com.
    • ROLE_NAME durch den Namen der Rolle, die Sie zuweisen möchten. Beispiel: roles/securesourcemanager.instanceOwner.
  2. 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_NAME
    

    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.
    • PRINCIPAL durch das Hauptkonto, dem die Rolle entzogen werden soll. Beispiel: user:my-user@example.com.
    • ROLE_NAME durch den Namen der Rolle, die widerrufen werden soll. Beispiel: roles/securesourcemanager.instanceOwner.

API

  1. 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: 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="
    }
    
  2. 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 Feld etag gibt den aktuellen Zustand der Zulassungsrichtlinie an. Wenn Sie die aktualisierte Zulassungsrichtlinie festlegen, vergleicht IAM den etag-Wert in der Anfrage mit dem vorhandenen etag 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 user1@gmail.com die Rolle instanceOwner und den Nutzern user2@gmail.com, user3@gmail.com und dem Dienstkonto my-other-app@ die Rolle instanceManager 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@"
            ]
        }
        ]
    }
    }
    
  3. 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.json
    

    Ersetzen 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:

  1. Rufen Sie die Instanz-URL auf, die Sie von Ihrem Google-Ansprechpartner erhalten haben.
  2. Wählen Sie auf der Seite Meine Repositories Ihr Repository aus.
  3. Klicken Sie auf den Tab Berechtigungen.
  4. Klicken Sie im Bereich Personen und Berechtigungen auf Nutzer hinzufügen.
  5. Geben Sie im Feld Hauptkonto hinzufügen die E-Mail-Adresse des Nutzers oder Dienstkontos ein, dem Sie die Rolle zuweisen möchten.
  6. Wählen Sie im Menü Rolle zuweisen die Rolle aus, die Sie zuweisen möchten.
  7. 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.

  1. 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: 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="
}
  1. 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 Feld etag gibt den aktuellen Zustand der Zulassungsrichtlinie an. Wenn Sie die aktualisierte Zulassungsrichtlinie festlegen, vergleicht IAM den etag-Wert in der Anfrage mit dem vorhandenen etag und 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.com die Rolle repoAdmin und den Nutzern email2@gmail.com, group1@gmail.com und dem Dienstkonto my-other-app@ die Rolle repoWriter 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@"
            ]
        }
        ]
    }
    }
    
  2. Speichern Sie die bearbeitete /tmp/repository.json-Datei.

  3. 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. Eine Liste der verfügbaren Secure Source Manager-Regionen finden Sie in der Dokumentation zu Standorten.
    • REPOSITORY_ID: die Repository-ID.

Nächste Schritte