Zugriff auf Compute Engine-Ressourcen verwalten


Auf dieser Seite wird gezeigt, wie Sie den Grundsatz der geringsten Berechtigung anwenden. Damit gewähren Sie bestimmten Compute Engine-Ressourcen Zugriff statt Zugriff auf eine übergeordnete Ressource wie einem Projekt, einem Ordner oder einer Organisation zu gewähren.

Sie gewähren Zugriff auf eine Ressource, indem Sie eine IAM-Richtlinie (Identity and Access Management) für die Ressource festlegen. Die Richtlinie bindet ein oder mehrere Mitglieder, z. B. einen Nutzer oder ein Dienstkonto, an eine oder mehrere Rollen. Jede Rolle enthält eine Reihe von Berechtigungen, mit denen das Mitglied mit der Ressource interagieren kann.

Wenn Sie Zugriff auf eine übergeordnete Ressource gewähren (z. B. auf ein Projekt), erteilen Sie implizit auch Zugriff auf alle ihr untergeordneten Ressourcen, etwa auf alle VMs in diesem Projekt. Sie können den Zugriff auf Ressourcen auch beschränken. Legen Sie dazu die IAM-Richtlinien nach Möglichkeit auf untergeordneten Ebenen fest, anstatt auf Projektebene oder darüber.

Allgemeine Informationen zum Gewähren, Ändern und Aufheben des Zugriffs auf Ressourcen, die nichts mit Compute Engine zu tun haben, z. B. auf ein Google Cloud-Projekt, finden Sie in der IAM-Dokumentation unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Hinweise

  • Lesen Sie die IAM-Übersicht.
  • Lesen Sie die Übersicht über die Zugriffssteuerung in Compute Engine.
  • Machen Sie sich mit den IAM-Rollen für Compute Engine vertraut.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die Berechtigungen zu erteilen, die Sie für die Verwaltung des Zugriffs auf Compute Engine-Ressourcen benötigen Compute-Administrator (roles/compute.admin) enthalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Verwalten des Zugriffs auf Compute Engine-Ressourcen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind für die Verwaltung des Zugriffs auf Compute Engine-Ressourcen erforderlich:

  • So gewähren Sie Zugriff auf Ressourcen oder widerrufen diesen:
    • compute.projects.get für das Projekt
    • compute.RESOURCE_TYPE.get für die Ressource
    • compute.RESOURCE_TYPE.getIamPolicy für die Ressource
    • compute.RESOURCE_TYPE.setIamPolicy für die Ressource
  • Zum Testen von Aufruferberechtigungen: compute.RESOURCE_TYPE.getIamPolicy für die Ressource

    Ersetzen Sie RESOURCE_TYPE durch die Ressource, für die Sie den Zugriff verwalten möchten. Beispiel: instances, instanceTemplates oder images.

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Unterstützte Ressourcen

Eine Liste der Compute Engine-Ressourcen, die die Zugriffssteuerung auf Ressourcenebene unterstützen, finden Sie unter: Ressourcentypen, die IAM-Richtlinien annehmen und nachCompute Engine filtern.

Bei anderen Compute Engine-Ressourcen, die keine Zugriffssteuerung auf Ressourcenebene unterstützen, müssen Sie den Zugriff auf diese Ressourcen auf Projekt-, Ordner- oder Organisationsebene verwalten. Informationen zu Organisationen, Ordnern oder Projekten finden Sie unter Ressourcenhierarchie.

Zugriff auf Compute Engine-Ressourcen gewähren

Ein Hauptkonto, z. B. ein Nutzer oder Dienstkonto, kann auf Compute Engine-Ressourcen zugreifen. Eine Identität ist ein Attribut eines Hauptkontos. Die Identität eines Hauptkontos wird normalerweise durch eine E-Mail-Adresse dargestellt, die dem Konto zugeordnet ist.

Bevor Sie einem Hauptkonto eine IAM-Rolle für eine Ressource zuweisen, sollten Sie prüfen, welche Rollen für eine bestimmte Ressource verfügbar sind. Weitere Informationen finden Sie unter Zuweisbare Rollen für Ressourcen aufrufen.

Wenn Sie Zugriff auf bestimmte Compute Engine-Ressourcen gewähren möchten, legen Sie eine IAM-Richtlinie für die Ressource fest.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der entsprechenden Ressource auf, für die Sie Berechtigungen hinzufügen möchten.
  2. Klicken Sie die Kästchen neben den Ressourcen an, die Sie aktualisieren möchten.
  3. Führen Sie je nach Ressourcenseite die folgenden Schritte aus.
    • Klicken Sie für VM-Instanzen auf Berechtigungen.
    • Für alle anderen Ressourcen führen Sie die folgenden Schritte aus:
      1. Prüfen Sie, ob das Infofeld sichtbar ist. Falls es nicht sichtbar ist, klicken Sie auf Infofeld ansehen.
      2. Wählen Sie den Tab Berechtigungen aus.
  4. Klicken Sie auf Hauptkonto hinzufügen.
  5. Fügen Sie die Identität des Hauptkontos hinzu und wählen Sie die erforderliche Rolle aus.
  6. Um die Änderungen zu speichern, klicken Sie auf Speichern.

gcloud

Verwenden Sie den Unterbefehl add-iam-policy-binding dieser Ressource mit den Flags --member und --role, um einem Hauptkonto für eine Ressource eine Rolle zuzuweisen.

gcloud compute RESOURCE_TYPE add-iam-policy-binding RESOURCE_NAME \
    --member='PRINCIPAL' \
    --role='ROLE'

Ersetzen Sie Folgendes:

  • RESOURCE_TYPE: Der Ressourcentyp. Gültige Werte sind:
    • disks
    • images
    • instances
    • instance-templates
    • machine-images
    • reservations
    • sole-tenancy node-groups
    • sole-tenancy node-templates
    • snapshots
  • RESOURCE_NAME ist der Name der -Ressource. Beispiel: my_instance
  • PRINCIPAL: eine gültige Identität für das Hauptkonto, dem Sie die Rolle zuweisen möchten. Muss das Format user|group|serviceAccount:EMAIL_ADDRESS oder domain:DOMAIN_ADDRESS haben. Beispiel:
    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com
  • ROLE: ist die Rolle zum Zuweisen dieses Hauptkontos.

Wenn Sie Zugriff auf eine Ressource in der Vorschau gewähren, verwenden Sie stattdessen den Befehl gcloud beta compute.

REST

So ändern Sie eine IAM-Richtlinie über die API:

  1. Lesen Sie die vorhandene Richtlinie mit der entsprechenden getIamPolicy-Methode der Ressource. Mit der folgenden HTTP-Anfrage wird beispielsweise die IAM-Richtlinie einer VM gelesen:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID des Projekts, zu dem diese VM gehört.
    • ZONE ist die Zone der VM. Ersetzen Sie für regionale oder globale Ressourcen zones/ZONE durch regions/REGION oder global.
    • VM_NAME ist der Name der VM-Instanz.

    Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.

  2. Bearbeiten Sie die Richtlinie mit einem Texteditor, um Hauptkonten und die zugehörigen Rollen hinzuzufügen oder zu entfernen. Beispiel: Fügen Sie der Richtlinie die folgende neue Bindung hinzu, um email@example.com die Rolle compute.admin zu gewähren.

    {
      "members": [
        "user:email@example.com"
      ],
      "role":"roles/compute.admin"
    }
    
  3. Schreiben Sie mit setIamPolicy() die aktualisierte Richtlinie:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID des Projekts, zu dem diese VM gehört.
    • ZONE ist die Zone der VM. Ersetzen Sie für regionale oder globale Ressourcen zones/ZONE durch regions/REGION oder global.
    • VM_NAME ist der Name der VM-Instanz.

    Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.

Zugriff auf Ressourcen widerrufen

Wenn Hauptkonten keinen Zugriff mehr auf Ihre Compute Engine-Ressourcen benötigen, sollten Sie als Best Practice deren Zugriff widerrufen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der entsprechenden Ressource auf, für die Sie Berechtigungen hinzufügen möchten.
  2. Klicken Sie die Kästchen neben den Ressourcen an, die Sie aktualisieren möchten.
  3. Führen Sie je nach Ressourcenseite die folgenden Schritte aus.
    • Klicken Sie für VM-Instanzen auf Berechtigungen.
    • Für alle anderen Ressourcen führen Sie die folgenden Schritte aus:
      1. Prüfen Sie, ob das Infofeld sichtbar ist. Falls es nicht sichtbar ist, klicken Sie auf Infofeld ansehen.
      2. Wählen Sie den Tab Berechtigungen aus.
  4. Klicken Sie auf die Karte der Rolle, von der Sie Hauptkonten entfernen möchten. Dadurch wird die Karte erweitert und die Nutzer mit dieser Rolle für diese Ressource werden angezeigt.
  5. Klicken Sie auf Löschen, um ein Hauptkonto aus dieser Rolle zu entfernen.

gcloud

Verwenden Sie zum Entfernen einer Rolle von einem Hauptkonto für eine Ressource den Unterbefehl remove-iam-policy-binding der Ressource mit den Flags --member und --role.

gcloud compute RESOURCE_TYPE remove-iam-policy-binding RESOURCE_NAME \
    --member='MEMBER' \
    --role='ROLE'

Ersetzen Sie Folgendes:

  • RESOURCE_TYPE: Die Art der Ressource. Gültige Werte sind:
    • disks
    • images
    • instances
    • instance-templates
    • machine-images
    • reservations
    • sole-tenancy node-groups
    • sole-tenancy node-templates
    • snapshots
  • RESOURCE_NAME: Name der Ressource Beispiel: my_instance.
  • PRINCIPAL: eine gültige Identität für das Hauptkonto. Muss das Format user|group|serviceAccount:EMAIL_ADDRESS oder domain:DOMAIN_ADDRESS haben. Beispiel:
    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com
  • ROLE: Die Rolle, aus der Sie das Hauptkonto entfernen möchten.

Wenn Sie Zugriff auf eine Ressource widerrufen, die sich in der Vorschau befindet, verwenden Sie stattdessen den Befehl gcloud beta compute.

REST

So ändern Sie eine IAM-Richtlinie direkt über die API:

  1. Lesen Sie die vorhandene Richtlinie mit der entsprechenden getIamPolicy-Methode der Ressource. Mit der folgenden HTTP-Anfrage wird beispielsweise die IAM-Richtlinie einer VM gelesen:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID des Projekts, zu dem diese VM gehört.
    • ZONE ist die Zone der VM. Ersetzen Sie für regionale oder globale Ressourcen zones/ZONE durch regions/REGION oder global.
    • VM_NAME ist der Name der VM-Instanz.

    Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.

  2. Bearbeiten Sie die Richtlinie mit einem Texteditor, um Mitglieder aus den zugehörigen Rollen zu entfernen. Entfernen Sie beispielsweise email@example.com aus der Rolle compute.admin:

    {
      "members": [
        "user:owner@example.com"
      ],
      "role":"roles/compute.admin"
    }
    
  3. Schreiben Sie mit setIamPolicy() die aktualisierte Richtlinie:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID des Projekts, zu dem diese VM gehört.
    • ZONE ist die Zone der VM. Ersetzen Sie für regionale oder globale Ressourcen zones/ZONE durch regions/REGION oder global.
    • VM_NAME ist der Name der VM-Instanz.

    Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.

Berechtigungen des aufrufenden Nutzers prüfen

Wenn Sie nicht wissen, welche Berechtigungen eine Identität hat, verwenden Sie die API-Methode testIamPermissions. So können Sie prüfen, welche Berechtigungen für eine Identität verfügbar sind.

Diese Methode gibt mit einer Ressourcen-URL und einer Reihe von Berechtigungen als Eingabeparameter den Berechtigungssatz des Aufrufers zurück. Sie können diese Methode für alle unterstützten Ressourcen verwenden.

testIamPermissions ist für die Verknüpfung mit Ihrer proprietären Software vorgesehen, etwa einer benutzerdefinierten grafischen Oberfläche. Wenn Sie Berechtigungen direkt über Google Cloud verwalten, sollten Sie testIamPermissions in der Regel nicht aufrufen.

Angenommen, Sie erstellen ein GUI, das auf der Compute Engine API basiert und eine Schaltfläche zum Starten einer Instanz hat. Dann können Sie compute.instances.testIamPermissions() aufrufen, um festzustellen, ob die Schaltfläche aktiviert oder deaktiviert werden soll.

So testen Sie, ob ein Nutzer bestimmte Berechtigungen für eine Ressource hat:

  1. Senden Sie eine Anfrage an die Ressource und geben Sie im Anfragetext eine Liste der Berechtigungen an, auf die geprüft werden soll.

    Beispielsweise könnten Sie auf einer Instanz nach compute.instances.start, compute.instances.stop und compute.instances.delete suchen.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/testIamPermissions
        {
          "permissions": [
            "compute.instances.start",
            "compute.instances.stop",
            "compute.instances.delete"
           ]
        }
  2. Die Anfrage liefert die Berechtigungen, die für den Nutzer aktiviert sind.

    {
      "permissions": [
        "compute.instances.start",
        "compute.instances.stop"
      ]
    }
    

Ressourcenzugriff für mehrere Mitglieder ändern

Wenn Sie den Zugriff auf Compute Engine-Ressourcen für mehrere Mitglieder gleichzeitig ändern möchten, lesen Sie die Empfehlungen zum programmatischen Ändern einer IAM-Richtlinie.

Nächste Schritte