IAM-Rollen und -Berechtigungen

Auf dieser Seite werden Dienstkonten, Rollen und Berechtigungen für Cloud Deploy beschrieben.

Der Zugriff in Cloud Deploy wird mithilfe der Identitäts- und Zugriffsverwaltung (IAM) gesteuert. Mit IAM können Sie Berechtigungen für Google Cloud-Ressourcen erstellen und verwalten. Cloud Deploy bietet einen bestimmten Satz vordefinierter IAM-Rollen, wobei jede Rolle eine Reihe von Berechtigungen enthält. Sie können diese Rollen verwenden, um den Zugriff auf bestimmte Google Cloud-Ressourcen präziser zu gewähren und unerwünschten Zugriff auf andere Ressourcen zu verhindern. Durch IAM haben Sie die Möglichkeit, das Prinzip der geringsten Berechtigung anzuwenden und somit nur den notwendigen Zugriff auf Ihre Ressourcen zu gewähren.

Weitere Informationen zu den Sicherheitsfunktionen der erweiterten Zugriffssteuerung finden Sie unter Cloud Deploy-Zugriff mit IAM einschränken.

Dienstkonten in Cloud Deploy

Cloud Deploy wird standardmäßig mit dem Compute Engine-Standarddienstkonto ausgeführt. Dieses Dienstkonto hat ausreichende Berechtigungen, um Manifeste zu rendern und sie für Ihre Ziele bereitzustellen.

Weitere Informationen zur Verwendung von Dienstkonten durch Cloud Deploy.

Vordefinierte Cloud Deploy-Rollen

Bei IAM erfordert jede API-Methode in der Cloud Deploy API, dass die Identität, die die API-Anfrage stellt, die entsprechenden Berechtigungen zur Verwendung der Ressource hat. Berechtigungen werden durch Festlegen von Richtlinien erteilt, die einem Hauptkonto (Nutzer, Gruppe oder Dienstkonto) Ihres Projekts Rollen zuweisen. Sie können einem Hauptkonto mehrere Rollen für dieselbe Ressource zuweisen.

Die IAM-Dokumentation enthält eine durchsuchbare Referenz aller vordefinierten Rollen.

In der folgenden Tabelle sind die IAM-Rollen von Cloud Deploy und die zugehörigen Berechtigungen aufgeführt:

Rolle Beschreibung Berechtigungen
roles/clouddeploy.viewer Kann Cloud Deploy ansehen

Ressourcen anzeigen.

clouddeploy.*.get

clouddeploy.*.list

roles/clouddeploy.admin Vollständige Kontrolle über Cloud Deploy-Ressourcen. clouddeploy.*
roles/clouddeploy.customTargetTypeAdmin Uneingeschränkte Kontrolle über benutzerdefinierte Cloud Deploy-Zieltypen. clouddeploy.customTargetType.*
roles/clouddeploy.developer Kann Google Cloud Deploy-Lieferpipelines erstellt, abrufen, aktualisieren

Löschen Sie Ressourcen für die Cloud Deploy-Bereitstellungspipeline.

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.automations.get

clouddeploy.automations.list

clouddeploy.automationRuns.get

clouddeploy.automationRuns.list

roles/clouddeploy.operator Kann Google Cloud Deploy-Zielressourcen erstellt, abrufen, aktualisieren

Bereitstellungspipeline und Zielressourcen von Cloud Deploy

Kann Ressourcen für Release, Roll-out und Jobausführung erstellen und abrufen.

Kann Ressourcen vom benutzerdefinierten Zieltyp abrufen.

clouddeploy.customTargetType.get

clouddeploy.customTargetType.list

clouddeploy.customTargetType.getIamPolicy

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.targets.get

clouddeploy.targets.list

clouddeploy.targets.create

clouddeploy.targets.delete

clouddeploy.targets.update

clouddeploy.targets.getIamPolicy

clouddeploy.rollouts.advance

clouddeploy.rollouts.cancel

clouddeploy.rollouts.create

clouddeploy.rollouts.get

clouddeploy.rollouts.ignoreJob

clouddeploy.rollouts.list

clouddeploy.rollouts.retryJob

clouddeploy.rollouts.rollback

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.jobRuns.terminate

clouddeploy.automations.*

clouddeploy.automationRuns.*

roles/clouddeploy.approver Kann Cloud Deploy ansehen und genehmigen

Ressourcen für die Einführung.

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.rollouts.approve

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

roles/clouddeploy.jobRunner Kann Cloud Deploy-Arbeiten ausführen, ohne

die Berechtigung zur Bereitstellung für ein Ziel.

logging.logEntries.create

storage.objects.create

storage.objects.list

storage.objects.get

roles/clouddeploy.releaser Kann Releases und Roll-outs erstellen und abrufen clouddeploy.customTargetType.get

clouddeploy.deliveryPipelines.get

clouddeploy.targets.get

clouddeploy.releases.create

clouddeploy.releases.get

clouddeploy.releases.list

clouddeploy.rollouts.advance

clouddeploy.rollouts.cancel

clouddeploy.rollouts.create

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.rollouts.rollback

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

Zusätzlich zu den vordefinierten Cloud Deploy-Rollen enthalten die einfachen Rollen „Betrachter“, „Bearbeiter“ und „Inhaber“ auch Berechtigungen für Cloud Deploy. Es empfiehlt sich jedoch, wenn möglich vordefinierte Rollen zuzuweisen, um das Sicherheitsprinzip der geringsten Berechtigung zu einhalten.

Berechtigungen

In der folgenden Tabelle werden die Berechtigungen aufgeführt, die erforderlich sind, um eine bestimmte Methode aufzurufen:

API-Methode Erforderliche Berechtigung Beschreibung
automations.create() clouddeploy.automations.create Erstellen Sie eine neue Automatisierungsressource.
automations.delete() clouddeploy.automations.delete Vorhandene Automatisierungsressource löschen.
automations.get() clouddeploy.automations.get Details zu einer einzelnen Automatisierungsressource abrufen.
automations.list() clouddeploy.automations.list Automatisierungsressourcen und ihre Metadaten auflisten
automations.update() clouddeploy.automations.update Vorhandene Automatisierungsressource aktualisieren.
automationRuns.cancel() clouddeploy.automationRuns.cancel Eine laufende Automatisierung abbrechen.
automationRuns.get() clouddeploy.automationRuns.get Details für eine einzelne Automatisierungsausführung abrufen.
automationRuns.list() clouddeploy.automationRuns.list Automatisierungsausführungen und ihre Metadaten auflisten.
customTargetTypes.create() clouddeploy.customTargetType.create Erstellen Sie eine Ressource für einen benutzerdefinierten Zieltyp.
customTargetTypes.delete() clouddeploy.customTargetType.delete Löschen Sie eine Ressource für einen benutzerdefinierten Zieltyp.
customTargetTypes.get() clouddeploy.customTargetType.get Details zu einem benutzerdefinierten Zieltyp abrufen
customTargetTypes.getIamPolicy() clouddeploy.customTargetType.getIamPolicy IAM-Richtlinie für eine Ressource vom benutzerdefinierten Zieltyp abrufen
customTargetTypes.list() clouddeploy.customTargetType.list Listet verfügbare benutzerdefinierte Zieltypen und ihre Metadaten auf.
customTargetTypes.patch() clouddeploy.customTargetType.patch Aktualisieren Sie einen vorhandenen benutzerdefinierten Zieltyp.
customTargetTypes.setIamPolicy() clouddeploy.customTargetType.setIamPolicy Legen Sie die IAM-Richtlinie für eine Ressource vom benutzerdefinierten Zieltyp fest.
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Erstellen Sie eine neue Lieferpipeline-Ressource.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Löschen Sie eine vorhandene Lieferpipeline-Ressource.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Rufen Sie Details zu einer einzelnen Lieferpipeline ab.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Rufen Sie die IAM-Richtlinie für eine Lieferpipeline-Ressource ab.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Bereitstellungspipelines und ihre Metadaten auflisten.
deliveryPipelines.rollbackTarget() clouddeploy.rollouts.rollback Führt ein Rollback für ein Ziel durch.
deliveryPipelines.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Legen Sie die IAM-Richtlinie für eine Lieferpipeline-Ressource fest.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Aktualisieren Sie vorhandene Lieferpipeline-Ressourcen.
jobRuns.get() clouddeploy.jobRuns.get Eine JobRuns-Ressource abrufen.
jobRuns.list() clouddeploy.jobRuns.list JobRuns-Ressourcen und ihre Metadaten auflisten.
jobRuns.terminate() clouddeploy.jobRuns.terminate Beendet eine laufende Jobausführung.
operations.cancel() clouddeploy.operations.cancel Lange laufenden Vorgang abbrechen.
operation.delete() clouddeploy.operations.delete Lange laufenden Vorgang löschen.
operations.get() clouddeploy.operations.get Einen bestimmten Vorgang mit langer Ausführungszeit abrufen (z. B. um den Status der Erstellung eines Releases zurückzugeben).
operations.list() clouddeploy.operations.list Lange laufende Vorgänge auflisten.
releases.abandon() clouddeploy.releases.abandon Einen Release verwerfen und weitere Roll-outs für den Release verhindern.
releases.create() clouddeploy.releases.create Erstellen einer neuen Releaseressource. Der Aufrufer benötigt außerdem die iam.serviceAccounts.actAs-Berechtigung für das Dienstkonto, das zum Rendern des Manifests verwendet wird.
releases.get() clouddeploy.releases.get Details zu einem einzelnen Release abrufen.
releases.list() clouddeploy.releases.list Releases und Metadaten auflisten.
releases.promote() clouddeploy.rollouts.create Release zum nächsten Ziel hochstufen.
rollouts.advance() clouddeploy.rollouts.advance Roll-out in der nächsten Phase fortsetzen.
rollouts.approve() clouddeploy.rollouts.approve Genehmigen oder Ablehnen eines Roll-outs mit dem Genehmigungsstatus required.
rollouts.cancel() clouddeploy.rollouts.cancel Roll-out abbrechen.
rollouts.create() clouddeploy.rollouts.create Erstellen Sie eine neue Roll-out-Ressource. Der Aufrufer benötigt außerdem die Berechtigung iam.serviceAccounts.actAs für das Projekt oder Dienstkonto, das für die Bereitstellung verwendet wird.
rollouts.get() clouddeploy.rollouts.get Details zum einzelnen Roll-out abrufen
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Fehlgeschlagenen Job ignorieren.
rollouts.list() clouddeploy.rollouts.list Roll-outs und Metadaten auflisten.
rollouts.retryJob() clouddeploy.rollouts.retryJob Fehlgeschlagener Job wird wiederholt.
targets.create() clouddeploy.targets.create Erstellen einer neuen Zielressource.
targets.delete() clouddeploy.targets.delete Vorhandene Zielressource löschen.
targets.get() clouddeploy.targets.get Details zu einem einzelnen Ziel abrufen
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Ruft die IAM-Richtlinie für eine Zielressource ab.
targets.list() clouddeploy.targets.list Listet Ziele und ihre Metadaten auf.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Legt die IAM-Richtlinie für eine Zielressource fest.
targets.update() clouddeploy.targets.update Vorhandene Zielressource aktualisieren.

Aktionen für Cloud Deploy-Ressourcen mit IAM einschränken

Sie können Ihre Cloud Deploy-Ressourcen mit IAM auf folgende Arten sichern:

  • IAM-Meta-APIs

    Verwenden Sie setIamPolicy in Cloud Deploy-Ressourcen, um Aktionen für diese Ressourcen einzuschränken.

  • Bedingte IAM

    Wenden Sie Zugriffsrichtlinien programmatisch an, einschließlich der conditions, unter denen Sie Zugriff gewähren oder verweigern.

Sie können diese Richtlinien und Bedingungen verwenden, um die folgenden Aktionen für Ihre Cloud Deploy-Ressourcen einzuschränken:

  • Lieferpipeline oder -ziel erstellen

    Diesen Zugriff können Sie bestimmten Nutzern oder Gruppen gewähren.

  • Bestimmte Lieferpipeline aktualisieren oder löschen

    Diesen Zugriff können Sie bestimmten Nutzern oder Gruppen gewähren.

  • Release für eine bestimmte Lieferpipeline erstellen

    Diesen Zugriff können Sie bestimmten Nutzern oder Gruppen gewähren.

  • Ein bestimmtes Ziel aktualisieren oder löschen

    Diesen Zugriff können Sie bestimmten Nutzern oder Gruppen gewähren.

  • Rollout erstellen, genehmigen oder hochstufen

    Sie können diesen Zugriff für bestimmte Nutzer oder Gruppen für eine bestimmte Ziel- oder Lieferpipeline gewähren.

    Sie können auch eine Bedingung festlegen, die den Zugriff auf einen bestimmten Zeitraum beschränkt.

Nächste Schritte