Zugriffssteuerung in Konfiguration festlegen

Zugriffskontrolle in Google Cloud Platform wird mit Google Cloud-Identitäts- und Zugriffsverwaltung (IAM) gesteuert. IAM erlaubt es Ihnen Berechtigungen festzulegen, wer was für eine Art von Zugriff auf welche Ressourcen in Ihrem Projekt hat. IAM bietet einfache und vordefinierte Rollen, die Sie Nutzer auf bestimmten Ressourcen zuteilen können.

Wenn Sie Ressourcen bereitstellen, können Sie auch steuern, wer Zugriff auf diese Ressourcen hat, indem Sie im Voraus eine Cloud IAM-Richtlinie in Ihre Konfiguration aufnehmen. Wenn Sie beispielsweise Pubsub-Topics erstellen wollen, die nur von einigen ausgewählten Nutzern verwaltet werden sollen, können Sie dies dem Deployment Manager mitteilen, indem Sie eine IAM-Richtlinie in Ihrer Konfiguration angeben. Das führt dazu, dass der Deployment Manager die Identity and Access Management (IAM) API aufruft, um die entsprechenden Berechtigungen auf der gewünschten Ressource festzulegen.

Vorbereitung

  • Installieren Sie das gcloud-Befehlszeilentool, wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten.

Beschränkungen

Es gibt einige erwähnenswerte Beschränkungen dieser Funktion:

  • Es gibt nicht in allen Google Cloud Platform-Diensten bestimmte IAM-Rollen. Beispielsweise gibt es in Cloud SQL und BigQuery keine IAM-Rollen. Wenn Sie den Zugriff auf diese Ressourcen gewähren wollen, müssen Sie eine der einfachen Rollen zuweisen.

  • Nicht alle Google Cloud Platform-Dienste unterstützen IAM-Richtlinien für bestimmte Ressourcen. Es ist möglich, eine IAM-Richtlinie mithilfe einer einfachen oder vordefinierten Rolle (falls vorhanden) auf Projektebene festzulegen. Nur bestimmte Dienste unterstützen IAM-Richtlinien auf der Ressourcenebene, beispielsweise Cloud PubSub.

    Wenn die API nicht unterstützt, IAM-Richtlinien auf der Ressourcenebene festzulegen, gibt der Deployment Manager einen NO_METHOD_TO_UPDATE_ACCESS_CONTROL-Fehler zurück. Beispielsweise unterstützt Compute Engine aktuell nicht das Festlegen von IAM-Richtlinien auf der Ressourcenebene, also führen Versuche, eine IAM-Richtlinie für eine Compute Engine-Ressource festzulegen, zu einem Fehler. Sie können jedoch IAM-Rollen auf Projektebene zuweisen.

Deployment Manager Berechtigung zur Festlegung von IAM-Richtlinien gewähren

Deployment Manager nutzt das Google APIs-Dienstkonto, um andere Google APIs aufzurufen und verwaltet für Sie Google Cloud Platform-Ressourcen. Sie müssen dem Google APIs-Dienstkonto Ihres Projekts die einfache roles/owner-Rolle zuweisen, damit es die IAM-Richtlinien, die Sie in Ihrer Konfiguration definieren, festlegen kann.

  1. Gehen Sie zur IAM-Seite in der GCP Console Ihres Projekts.

    Zur Seite "IAM"

  2. Wählen Sie bei Aufforderung Ihr Projekt aus der Liste aus.
  3. Suchen Sie nach dem Google API-Dienstkonto, dessen E-Mail-Adresse das folgende Format aufweist:

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Weisen Sie dem API-Dienstkonto die roles/owner-Rolle zu:

    Konsole

    1. Während Sie sich in der Google Cloud Platform Console befinden, erweitern Sie die Drop-down-Liste Rollen für das Google APIs-Dienstkonto und wählen Sie Projekt > Inhaber.
    2. Klicken Sie auf Speichern, um die Änderungen zu speichern.

    gcloud

    Fügen Sie mit dem Befehlszeilentool gcloud eine Bindung an die Cloud IAM-Richtlinie für das Projekt hinzu:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
        --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/owner

    Dabei gilt Folgendes:

    • [PROJECT_ID] ist die ID des Projekts.
    • [SERVICE_ACCOUNT_EMAIL] ist die E-Mail-Adresse des Dienstkontos.

    Beispiel:

    gcloud projects add-iam-policy-binding database-images \
        --member serviceAccount:123456789012@cloudservices.gserviceaccount.com  \
        --role roles/owner

    API

    Stellen Sie in der API eine POST-Anfrage an folgende URL, wobei [PROJECT_ID] die ID des Projekts ist:

    POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
    

    Der Anfragetext soll eine Liste der Bindungen, die für dieses Projekt gelten sollen, enthalten. Die Nutzerrolle roles/owner sollte Teil der Bindung sein. Beispiel:

    {
       "policy": {
           "version": "0",
           "bindings": [
           {
               "role": "roles/owner",
               "members": [
                   "user:example@gmail.com",
                   "serviceAccount:123456789012@cloudservices.gservbiceaccount.com"
               ]
           }
           ]
       }
    

    }

IAM-Richtlinie in Konfiguration festlegen

Weiterhin können Sie in Ihrer Konfiguration oder Vorlage eine IAM-Richtlinie festlegen, indem Sie den folgenden Anweisungen folgen:

  1. Fügen Sie den Abschnitt accessControl zur obersten Ebene der Konfiguration für jede Ressource hinzu, für die die Richtlinie zur Zugriffskontrolle gelten soll.

  2. Geben Sie die gewünschte gcpIamPolicy für die Ressource an. Jede IAM-Richtlinie kann eine Liste an Bindungen enthalten. Jede Bindung bindet eine Liste von Mitgliedern an eine Rolle.

Der folgende accessControl-Abschnitt fügt beispielsweise Bindungen hinzu, die alice@example.com die roles/pubsub.editor-Rolle zuweisen, und jane@example.com und dem Dienstkonto my-other-app@appspot.gserviceaccount.com die roles/pubsub.publisher-Rolle zuweisen.

resources:
- name: a-new-pubsub-topic
  type: pubsub.v1.topic
  properties:
    ...

  accessControl:
    gcpIamPolicy:
      bindings:
      - role: roles/pubsub.editor
        members:
        - "user:alice@example.com"
      - role: roles/pubsub.publisher
        members:
        - "user:jane@example.com"
        - "serviceAccount:my-other-app@appspot.gserviceaccount.com"

Weitere Informationen über IAM-Richtlinien finden Sie unter IAM-Dokumentation.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Cloud Deployment Manager-Dokumentation