IAM-Rollen und -Berechtigungen

Auf dieser Seite werden Cloud Deploy-Dienstkonten, -Rollen und -Berechtigungen 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 eine spezifische vordefinierte IAM-Rollen wobei jede Rolle eine Reihe von Berechtigungen enthält. Mit diesen Rollen können Sie detaillierteren Zugriff auf bestimmte Google Cloud-Ressourcen gewähren und unerwünschten Zugriff auf andere Ressourcen 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.

Unter Zugriff auf Cloud Deploy mit IAM einschränken finden Sie Informationen zu erweiterten Sicherheitsfunktionen für die Zugriffssteuerung.

Dienstkonten in Cloud Deploy

Standardmäßig wird Cloud Deploy mit der Compute Engine-Standardversion ausgeführt Dienstkonto. Dieses Dienstkonto hat ausreichende Berechtigungen zum Rendern Manifest erstellen und für Ihre Ziele bereitstellen.

Weitere Informationen Cloud Deploy verwendet Dienstkonten.

Vordefinierte Cloud Deploy-Rollen

Mit IAM benötigt jede API-Methode in der Cloud Deploy API dass die Identität, die die API-Anfrage stellt, über die entsprechenden Berechtigungen verfügt, der Ressource. 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 ein durchsuchbare Referenz von allen vordefinierten Rollen.

In der folgenden Tabelle sind die IAM-Rollen und die darin enthaltenen Berechtigungen:

Berechtigungen

(roles/clouddeploy.admin)

Vollständige Kontrolle über Cloud Deploy-Ressourcen.

clouddeploy.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.approver)

Berechtigung zum Genehmigen oder Ablehnen von Rollouts.

clouddeploy.config.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.rollouts.approve

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.customTargetTypeAdmin)

Berechtigung zum Verwalten von CustomTargetType-Ressourcen

clouddeploy.config.get

clouddeploy.customTargetTypes.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.developer)

Berechtigung zum Verwalten der Bereitstellungskonfiguration ohne Berechtigung für den Zugriff auf Betriebsressourcen wie Ziele.

clouddeploy.automationRuns.get

clouddeploy.automationRuns.list

clouddeploy.automations.get

clouddeploy.automations.list

clouddeploy.config.get

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.createTagBinding

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.deleteTagBinding

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deliveryPipelines.update

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.releases.*

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.jobRunner)

Berechtigung zum Ausführen von Cloud Deploy-Arbeiten ohne Berechtigung zum Senden an ein Ziel.

clouddeploy.config.get

logging.logEntries.create

storage.objects.create

storage.objects.get

storage.objects.list

(roles/clouddeploy.operator)

Berechtigung zum Verwalten der Bereitstellungskonfiguration.

clouddeploy.automationRuns.*

clouddeploy.automations.*

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.customTargetTypes.getIamPolicy

clouddeploy.customTargetTypes.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.createTagBinding

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.deleteTagBinding

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deliveryPipelines.update

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.*

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.releases.*

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.targets.create

clouddeploy.targets.createTagBinding

clouddeploy.targets.delete

clouddeploy.targets.deleteTagBinding

clouddeploy.targets.get

clouddeploy.targets.getIamPolicy

clouddeploy.targets.list

clouddeploy.targets.listEffectiveTags

clouddeploy.targets.listTagBindings

clouddeploy.targets.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyAdmin)

Berechtigung zum Verwalten von Bereitstellungsrichtlinien.

clouddeploy.deployPolicies.*

clouddeploy.locations.*

clouddeploy.operations.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyOverrider)

Berechtigung zum Überschreiben von Bereitstellungsrichtlinien.

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.deployPolicies.override

clouddeploy.locations.*

clouddeploy.operations.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.releaser)

Berechtigung zum Erstellen von Cloud Deploy-Releases und -Rollouts.

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.deliveryPipelines.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

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.targets.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.viewer)

Kann Cloud Deploy-Ressourcen aufrufen.

clouddeploy.automationRuns.get

clouddeploy.automationRuns.list

clouddeploy.automations.get

clouddeploy.automations.list

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.customTargetTypes.getIamPolicy

clouddeploy.customTargetTypes.list

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.get

clouddeploy.operations.list

clouddeploy.releases.get

clouddeploy.releases.list

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.targets.get

clouddeploy.targets.getIamPolicy

clouddeploy.targets.list

clouddeploy.targets.listEffectiveTags

clouddeploy.targets.listTagBindings

resourcemanager.projects.get

resourcemanager.projects.list

Zusätzlich zu den vordefinierten Cloud Deploy-Rollen enthält das Feld basic-Betrachter Die Rollen „Bearbeiter“ und „Inhaber“ enthalten 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 Löschen Sie eine vorhandene Automatisierungsressource.
automations.get() clouddeploy.automations.get Details für eine einzelne 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 Laufende Automatisierung abbrechen.
automationRuns.get() clouddeploy.automationRuns.get Details zu einer einzelnen Automatisierungsausführung abrufen.
automationRuns.list() clouddeploy.automationRuns.list Automatisierungsausführungen und deren Metadaten auflisten.
customTargetTypes.create() clouddeploy.customTargetTypes.create Erstellen Sie eine benutzerdefinierte Zieltypressource.
customTargetTypes.delete() clouddeploy.customTargetTypes.delete Löschen Sie eine Ressource vom benutzerdefinierten Zieltyp.
customTargetTypes.get() clouddeploy.customTargetTypes.get Rufen Sie Details zu einem benutzerdefinierten Zieltyp ab.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy Rufen Sie die IAM-Richtlinie für eine benutzerdefinierte Zieltypressource ab.
customTargetTypes.list() clouddeploy.customTargetTypes.list Listen Sie die verfügbaren benutzerdefinierten Zieltypen und die zugehörigen Metadaten auf.
customTargetTypes.patch() clouddeploy.customTargetTypes.patch Vorhandenen benutzerdefinierten Zieltyp aktualisieren
customTargetTypes.setIamPolicy() clouddeploy.customTargetTypes.setIamPolicy Legen Sie die IAM-Richtlinie für eine Ressource mit benutzerdefiniertem 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 deren 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 Rufen Sie eine JobRuns-Ressource ab.
jobRuns.list() clouddeploy.jobRuns.list JobRuns-Ressourcen und ihre Metadaten auflisten
jobRuns.terminate() clouddeploy.jobRuns.terminate Beenden Sie 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 einzelnen Releases 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 Fahren Sie mit einem Roll-out in der nächsten Phase fort.
rollouts.approve() clouddeploy.rollouts.approve Genehmigen oder lehnen Sie ein Roll-out mit dem Genehmigungsstatus required ab.
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 für einzelne Roll-outs abrufen.
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Einen 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 für ein einzelnes Ziel abrufen.
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Ruft die IAM-Richtlinie für eine Zielressource ab.
targets.list() clouddeploy.targets.list Ziele und ihre Metadaten auflisten.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Legt die IAM-Richtlinie für eine Zielressource fest.
targets.update() clouddeploy.targets.update Vorhandene Zielressource aktualisieren.

Aktionen mit Cloud Deploy-Ressourcen mit IAM einschränken

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

  • IAM-Meta-APIs

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

  • Bedingte IAM-Richtlinien

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

Mit diesen Richtlinien und Bedingungen können Sie folgende Aktionen für Ihre Cloud Deploy-Ressourcen einschränken:

  • Lieferpipeline oder -ziel erstellen

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

  • Bestimmte Lieferpipeline aktualisieren oder löschen

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

  • Release für eine bestimmte Lieferpipeline erstellen

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

  • Ein bestimmtes Ziel aktualisieren oder löschen

    Sie können diesen Zugriff 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 diesen Zugriff auf einen bestimmten Zeitfenster.

Nächste Schritte