Benutzerdefinierte Rollen mit Deployment Manager verwalten

Hintergrund

Mit den benutzerdefinierten Rollen von Identity and Access Management können Sie detaillierte Berechtigungen für Nutzer- und Dienstkonten gewähren. Im Unterschied zu vordefinierten Rollen, die durch Google verwaltet und entsprechend aktualisiert werden, werden benutzerdefinierte Rollen von Ihrer Organisation verwaltet und aktualisiert, sobald neue Berechtigungen verfügbar sind.

Mit Cloud Deployment Manager lassen sich Ihre benutzerdefinierten Rollen einfacher konfigurieren und verwalten. Mit Deployment Manager können Sie Rollen mithilfe von Konfigurationsdateien beschreiben und diese dann in das Versionsverwaltungssystem Ihrer Wahl übernehmen. Deployment Manager und die Versionsverwaltung können gemeinsam für einen Ansatz verwendet werden, bei dem Konfigurationsdateien wie Quellcode behandelt werden. Dies erleichtert Folgendes:

  • Erfassen der Änderung benutzerdefinierter Rollen im Zeitablauf
  • Heraufstufen benutzerdefinierter Rollen in die jeweilige Einführungsphase, während sie getestet und validiert werden
  • Automatisieren der Bereitstellung von Rollen in Ihrer gesamten Organisation

Hinweis

  • Enable the IAM and Cloud Deployment Manager APIs.

    Enable the APIs

Szenarien zum Verwalten benutzerdefinierter Rollen bei der Verwendung des Deployment Managers

Die Vorteile der Verwaltung benutzerdefinierter Rollen mit Deployment Manager lassen sich z. B. anhand der folgenden Szenarien veranschaulichen:

  • Steuerung des Zugriffs auf neue Berechtigungen:Sie haben eine benutzerdefinierte Rolle mit Berechtigungen für einen Google Cloud -Dienst. Durch den Dienst werden neue Betafunktionen hinzugefügt und neue Berechtigungen bereitgestellt. Ihre benutzerdefinierte Rolle übernimmt diese neuen Berechtigungen nicht automatisch – sie müssen manuell hinzugefügt werden. Solange die neuen Berechtigungen nicht der benutzerdefinierten Rolle hinzugefügt wurden, haben Nutzer in Ihrer Organisation keinen Zugriff auf die Beta-Features. Mithilfe der Konfigurationsdateien von Deployment Manager und der Versionsverwaltung können Sie vorhandene Berechtigungen prüfen, Ihre benutzerdefinierten Rollen nach Bedarf aktualisieren und einen Überarbeitungsverlauf verwalten.
  • Verwaltung des Rollenlebenszyklus: Sie haben eine neue benutzerdefinierte Rolle, der Sie die Startphase ALPHA zugewiesen haben. Nachdem die benutzerdefinierte Rolle getestet und validiert wurde, können Sie mit Deployment Manager die Konfiguration der benutzerdefinierten Rolle aktualisieren und die Rolle in die BETA-Phase ohne dieGoogle Cloud -Konsole hochstufen.
  • Informationen zur Übernahme benutzerdefinierter Rollen: Je mehr Definitionen benutzerdefinierter Rollen in Ihrer Organisation der Versionsverwaltung unterliegen, desto leichter ist es, diese zu teilen, Nutzungsmuster auszuwerten und Zugriffskontrollen für mehrere Projekte verbindlich festzulegen.

Informationen zu Deployment Manager-Konfigurationsdateien

Deployment Manager verwendet drei verschiedene Dateitypen zur Beschreibung einer Bereitstellung. Diese Typen werden nachfolgend erläutert:

  • Konfigurationen sind YAML-Dateien, mit denen Ressourcen und deren Eigenschaften beschrieben werden. Bei benutzerdefinierten IAM-Rollen enthält jede YAML-Datei alle Eigenschaften für eine oder mehrere benutzerdefinierte Rollen, z. B. den Namen, die Beschreibung und die Berechtigungen.
  • Mit Schemas werden alle möglichen Eigenschaften für eine bestimmte Ressource sowie die entsprechenden Standardwerte angegeben. Es gibt bei benutzerdefinierten IAM-Rollen Schemas für benutzerdefinierte Rollen auf Projektebene und Organisationsebene.
  • Vorlagen sind Jinja- oder Python-Dateien, mit denen Konfigurationen verbessert werden, da Sie damit die Möglichkeit erhalten, eine Konfiguration in wiederverwendbare Teile zu untergliedern. Für benutzerdefinierte IAM-Rollen werden zwei Vorlagen bereitgestellt: eine für benutzerdefinierte Rollen auf Projektebene und eine für benutzerdefinierte Rollen auf Organisationsebene.

Weitere Informationen zu diesen Typen finden Sie unter Grundlagen des Deployment Managers.

Hinweis

Wenn Sie nicht mit Deployment Manager vertraut sind, gehen Sie zuerst den Schnellstart durch. Führen Sie dann die folgenden Schritte aus:

    Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the Deployment Manager and IAM APIs.

    Enable the APIs

    Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

    gcloud init

    Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the Deployment Manager and IAM APIs.

    Enable the APIs

    Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

    gcloud init

    Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    Wenn diese erforderlichen Schritte abgeschlossen sind, können Sie mit Deployment Manager und IAM Ihre benutzerdefinierten Rollen verwalten.

    Berechtigungen für das Google APIs-Dienstkonto gewähren

    Wenn Sie benutzerdefinierte Rollen mit dem Deployment Manager verwalten möchten, müssen Sie dem Google APIs-Dienstkonto zuerst die entsprechenden Berechtigungen gewähren. Dieses Konto wird standardmäßig für jede Organisation und jedes Projekt erstellt.

    1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

      Zur IAM-Seite

    2. Suchen Sie in der Liste der Hauptkonten das Hauptkonto mit dem Namen Google APIs-Dienst-Agent.

    3. Klicken Sie auf die Schaltfläche Bearbeiten , um die Rollen des Dienstkontos zu bearbeiten. Fügen Sie anschließend die Rolle Rollen > Rollenadministrator hinzu.

    4. Klicken Sie auf Speichern, um die Rolle anzuwenden.

    Nachdem Sie dem Google APIs-Dienstkonto die Berechtigung zum Verwalten benutzerdefinierter Rollen gewährt haben, können Sie mithilfe des Deployment Managers eine benutzerdefinierte Beispielrolle bereitstellen.

    Benutzerdefinierte Rollen für Ihr Projekt bereitstellen

    Wie im obigen Abschnitt beschrieben verwendet Deployment Manager eine Kombination von Konfigurationsdateien, um eine Bereitstellung zu beschreiben. Sehen Sie sich bezüglich IAM die folgenden zwei Beispieldateien für die benutzerdefinierten Rollen eines Projekts an:

    project_custom_role.yaml

    imports:
    - path: project_custom_role.jinja
    
    resources:
    - name: custom-role
      type: project_custom_role.jinja
      properties:
        roleId: myCustomRole
        title: My Title
        description: My description.
        includedPermissions:
        - iam.roles.get
        - iam.roles.list

    Diese YAML-Datei gibt die Eigenschaften einer benutzerdefinierten Rolle mit dem Namen custom-role an, die Berechtigungen für iam.roles.get und iam.roles.list erteilt. Beachten Sie, dass zweimal auf eine JINJA-Datei verwiesen wird. Dabei werden die Werte verwendet, die wie unten beschrieben von der Jinja-Vorlage bereitgestellt werden.

    project_custom_role.jinja

    # Copyright 2017 Google LLC. All rights reserved.
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #     http://www.apache.org/licenses/LICENSE-2.0
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    resources:
    - name: custom-role
      type: gcp-types/iam-v1:projects.roles
      properties:
        parent: projects/{{ env["project"] }}
    
        roleId: {{ properties["roleId"] }}
    
        role:
          title: {{ properties["title"] }}
    
          description: {{ properties["description"] }}
    
          stage: {{ properties["stage"] }}
    
          includedPermissions: {{ properties["includedPermissions"] }}

    Diese Jinja-Datei bietet eine Vorlage für eine benutzerdefinierte Rolle, mit der die Anzahl der Duplikate derselben Attribute in mehreren Rollen minimiert werden kann. Standardwerte werden aus einer .schema-Datei eingefügt, wenn die entsprechende YAML-Datei keine Werte für die einzelnen Attribute enthält.

    So stellen Sie diese benutzerdefinierte Rolle mit Deployment Manager bereit:

    1. Laden Sie den Inhalt dieses GitHub-Repositories auf Ihren lokalen Rechner herunter.
    2. Rufen Sie im Terminalfenster das Verzeichnis examples/v2/iam_custom_role/jinja im heruntergeladenen Repository auf. Es enthält die Datei project_custom_role.yaml und die zugehörigen Jinja-Dateien.
    3. Führen Sie den folgenden Befehl aus, um die benutzerdefinierte Beispielrolle bereitzustellen und den Platzhalterwert your-deployment-name durch einen Bereitstellungsnamen Ihrer Wahl zu ersetzen:

      gcloud deployment-manager deployments create \
         your-deployment-name --config project_custom_role.yaml
    4. Warten Sie, bis der Vorgang abgeschlossen ist. Der Bereitstellungsfingerabdruck und eine Fortschrittsanzeige werden angezeigt:

      The fingerprint of the deployment is PUo2fmKdoFdJqiLViHjT3Q==
      Waiting for create [operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc]...done.
      
    5. Wenn der Vorgang erfolgreich war, wird die folgende Statusmeldung angezeigt:

      Create operation operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc completed successfully.
      NAME         TYPE                             STATE      ERRORS  INTENT
      custom-role  gcp-types/iam-v1:projects.roles  COMPLETED  []
      

    Bereitgestellte benutzerdefinierte Rolle ansehen

    So sehen Sie sich Ihre benutzerdefinierte Rolle in Deployment Manager an:

    1. Führen Sie in einem Terminalfenster den folgenden Befehl aus:

      gcloud deployment-manager deployments describe your-deployment-name
    2. Sie sehen eine Beschreibung der Bereitstellung, einschließlich umfassender Informationen, z. B. zu ihrem Status und zu Fehlern.

      fingerprint: oaJoGesEFYvsAldP2bm5jQ==
      id: '3222872306422524501'
      insertTime: '2018-01-29T13:40:10.822-08:00'
      manifest: manifest-1517262010855
      name: your-deployment-name
      operation:
      endTime: '2018-01-29T13:40:26.500-08:00'
      name: operation-1517262010573-563f1172be0c9-ce5f0242-239fe1af
      operationType: insert
      progress: 100
      startTime: '2018-01-29T13:40:11.535-08:00'
      status: DONE
      user: id-7201362145@my-example-project.iam.gserviceaccount.com
      NAME         TYPE                             STATE      INTENT
      custom-role  gcp-types/iam-v1:projects.roles  COMPLETED
      
    3. Sie erhalten detaillierte Informationen zur Konfiguration der benutzerdefinierten Rolle auch, wenn Sie das Manifest der Bereitstellung abrufen. Achten Sie in der Ausgabe des Befehls describe im obigen Schritt 2 auf die manifest-ID. Kopieren Sie diese ID einschließlich des Präfixes manifest- und ersetzen Sie damit den Platzhalterwert.

      gcloud deployment-manager manifests describe your-manifest-id \
          --deployment your-deployment-name
    4. Das Manifest enthält umfassende Informationen zur Bereitstellung der benutzerdefinierten Rolle, einschließlich der Rohinhalte der Quelldateien project_custom_role.yaml und project_custom_role.jinja. Beachten Sie insbesondere den resources-Block unten im Manifest, der die Details zur benutzerdefinierten Rolle zusammenfasst:

      ...
      resources:
      - name: custom-role
        properties:
          description: My description.
          includedPermissions:
          - iam.roles.get
          - iam.roles.list
          roleId: aCustomRole
          stage: ALPHA
          title: My Title
        resources:
        - name: custom-role
          type: gcp-types/iam-v1:projects.roles
        type: project_custom_role.jinja
      ...
      

    So sehen Sie sich Ihre benutzerdefinierte Rolle in der Google Cloud Console an:

    1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

      Zur IAM-Seite

    2. Wählen Sie ein Projekt aus und klicken Sie auf Öffnen.

    3. Klicken Sie im linken Menü auf Rollen.

    4. Klicken Sie in der Liste auf den Namen der neu erstellten benutzerdefinierten Rolle. Er sollte ähnlich wie im folgenden Screenshot aussehen: