IAM-Rollen und -Berechtigungen

Auf dieser Seite werden Cloud Deploy-Dienstkonten, -Rollen und -Berechtigungen beschrieben.

Der Zugriff in Cloud Deploy wird über Identity and Access Management (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, bei denen 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 können Sie das Prinzip der geringsten Berechtigung anwenden und somit nur den notwendigen Zugriff auf Ihre Ressourcen gewähren.

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

Dienstkonten in Cloud Deploy

Cloud Deploy wird standardmäßig mit dem Compute Engine-Standarddienstkonto ausgeführt. Weitere Informationen zum Konfigurieren dieses Dienstkontos für die Verwendung mit Cloud Deploy oder zum Auswählen eines anderen Kontos finden Sie in der Dokumentation zum Cloud Deploy-Ausführungsdienstkonto.

Weitere Informationen

Vordefinierte Cloud Deploy-Rollen

Bei IAM erfordert jede API-Methode in der Cloud Deploy API, dass die Identität, die die API-Anfrage stellt, über die entsprechenden Berechtigungen zur Verwendung der Ressource verfügt. 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 Cloud Deploy-IAM-Rollen und deren Berechtigungen aufgeführt:

Role Permissions

(roles/clouddeploy.admin)

Full control of Cloud Deploy resources.

clouddeploy.*

  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list
  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update
  • clouddeploy.config.get
  • clouddeploy.customTargetTypes.create
  • clouddeploy.customTargetTypes.delete
  • clouddeploy.customTargetTypes.get
  • clouddeploy.customTargetTypes.getIamPolicy
  • clouddeploy.customTargetTypes.list
  • clouddeploy.customTargetTypes.setIamPolicy
  • clouddeploy.customTargetTypes.update
  • 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.setIamPolicy
  • clouddeploy.deliveryPipelines.update
  • clouddeploy.deployPolicies.create
  • clouddeploy.deployPolicies.delete
  • clouddeploy.deployPolicies.get
  • clouddeploy.deployPolicies.getIamPolicy
  • clouddeploy.deployPolicies.list
  • clouddeploy.deployPolicies.override
  • clouddeploy.deployPolicies.setIamPolicy
  • clouddeploy.deployPolicies.update
  • clouddeploy.jobRuns.get
  • clouddeploy.jobRuns.list
  • clouddeploy.jobRuns.terminate
  • clouddeploy.locations.get
  • clouddeploy.locations.list
  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list
  • clouddeploy.releases.abandon
  • clouddeploy.releases.create
  • clouddeploy.releases.get
  • clouddeploy.releases.list
  • clouddeploy.rollouts.advance
  • clouddeploy.rollouts.approve
  • 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.setIamPolicy
  • clouddeploy.targets.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.approver)

Permission to approve or reject rollouts.

clouddeploy.config.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

clouddeploy.rollouts.approve

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.customTargetTypeAdmin)

Permission to manage CustomTargetType resources

clouddeploy.config.get

clouddeploy.customTargetTypes.*

  • clouddeploy.customTargetTypes.create
  • clouddeploy.customTargetTypes.delete
  • clouddeploy.customTargetTypes.get
  • clouddeploy.customTargetTypes.getIamPolicy
  • clouddeploy.customTargetTypes.list
  • clouddeploy.customTargetTypes.setIamPolicy
  • clouddeploy.customTargetTypes.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.developer)

Permission to manage deployment configuration without permission to access operational resources, such as targets.

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.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

clouddeploy.releases.*

  • clouddeploy.releases.abandon
  • clouddeploy.releases.create
  • clouddeploy.releases.get
  • clouddeploy.releases.list

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.jobRunner)

Permission to execute Cloud Deploy work without permission to deliver to a target.

clouddeploy.config.get

logging.logEntries.create

storage.objects.create

storage.objects.get

storage.objects.list

(roles/clouddeploy.operator)

Permission to manage deployment configuration.

clouddeploy.automationRuns.*

  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list

clouddeploy.automations.*

  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update

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.getIamPolicy

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.*

  • clouddeploy.jobRuns.get
  • clouddeploy.jobRuns.list
  • clouddeploy.jobRuns.terminate

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

clouddeploy.releases.*

  • clouddeploy.releases.abandon
  • clouddeploy.releases.create
  • clouddeploy.releases.get
  • clouddeploy.releases.list

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)

Permission to manage Deploy Policies.

clouddeploy.deployPolicies.*

  • clouddeploy.deployPolicies.create
  • clouddeploy.deployPolicies.delete
  • clouddeploy.deployPolicies.get
  • clouddeploy.deployPolicies.getIamPolicy
  • clouddeploy.deployPolicies.list
  • clouddeploy.deployPolicies.override
  • clouddeploy.deployPolicies.setIamPolicy
  • clouddeploy.deployPolicies.update

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyOverrider)

Permission to override Deploy Policies.

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.deployPolicies.override

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.releaser)

Permission to create Cloud Deploy releases and rollouts.

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.deliveryPipelines.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

clouddeploy.operations.*

  • clouddeploy.operations.cancel
  • clouddeploy.operations.delete
  • clouddeploy.operations.get
  • clouddeploy.operations.list

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.serviceAgent)

Gives Cloud Deploy Service Account access to managed resources.

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.workerpools.use

iam.serviceAccounts.actAs

iam.serviceAccounts.getAccessToken

logging.logEntries.create

pubsub.topics.get

pubsub.topics.publish

servicemanagement.services.report

serviceusage.services.use

storage.buckets.create

storage.buckets.get

storage.objects.get

(roles/clouddeploy.viewer)

Can view Cloud Deploy resources.

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.getIamPolicy

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

  • clouddeploy.locations.get
  • clouddeploy.locations.list

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 enthalten die einfachenRollenversionen Betrachter, Bearbeiter und Inhaber auch Berechtigungen im Zusammenhang mit 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 einer neuen Automatisierungsressource.
automations.delete() clouddeploy.automations.delete Vorhandene Automatisierungsressource löschen
automations.get() clouddeploy.automations.get Rufen Sie Details zu einer einzelnen Automatisierungsressource ab.
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 Automatisierungsläufe und ihre Metadaten auflisten.
customTargetTypes.create() clouddeploy.customTargetTypes.create Erstellen Sie eine benutzerdefinierte Zieltyp-Ressource.
customTargetTypes.delete() clouddeploy.customTargetTypes.delete Löschen Sie eine benutzerdefinierte Zieltyp-Ressource.
customTargetTypes.get() clouddeploy.customTargetTypes.get Details zu einem benutzerdefinierten Zieltyp abrufen.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy IAM-Richtlinie für eine benutzerdefinierte Zieltyp-Ressource abrufen.
customTargetTypes.list() clouddeploy.customTargetTypes.list Listet verfügbare benutzerdefinierte Zieltypen und ihre Metadaten auf.
customTargetTypes.patch() clouddeploy.customTargetTypes.patch Vorhandenen benutzerdefinierten Zieltyp aktualisieren.
customTargetTypes.setIamPolicy() clouddeploy.customTargetTypes.setIamPolicy Legen Sie die IAM-Richtlinie für eine benutzerdefinierte Zieltypressource 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 Lieferpipelines und ihre Metadaten auflisten.
deliveryPipelines.rollbackTarget() clouddeploy.rollouts.rollback Führt einen 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.
deployPolicies.create() clouddeploy.deployPolicies.create Erstellen Sie eine Bereitstellungsrichtlinienressource.
deployPolicies.delete() clouddeploy.deployPolicies.delete Löschen Sie eine Bereitstellungsrichtlinienressource.
deployPolicies.get() clouddeploy.deployPolicies.get Details für eine Bereitstellungsrichtlinienressource abrufen.
deployPolicies.list() clouddeploy.deployPolicies.list Verfügbare Bereitstellungsrichtlinien und ihre Metadaten auflisten.
jobRuns.get() clouddeploy.jobRuns.get JobRuns-Ressource abrufen
jobRuns.list() clouddeploy.jobRuns.list JobRuns-Ressourcen und ihre Metadaten auflisten.
jobRuns.terminate() clouddeploy.jobRuns.terminate Laufende Jobausführung beenden
operations.cancel() clouddeploy.operations.cancel Vorgang mit langer Ausführungszeit 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 Vorgänge mit langer Ausführungszeit auflisten
releases.abandon() clouddeploy.releases.abandon Verwerfen Sie einen Release, um weitere Rollouts für diesen Release zu 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.
rollouts.advance() clouddeploy.rollouts.advance Roll-out in die nächste Phase verschieben
rollouts.approve() clouddeploy.rollouts.approve Genehmigen oder lehnen Sie einen Rollout mit dem Genehmigungsstatus required ab.
rollouts.cancel() clouddeploy.rollouts.cancel Roll-out abbrechen
rollouts.create() clouddeploy.rollouts.create Erstellen Sie eine neue Rollout-Ressource oder stufen Sie einen Release hoch. 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 zu einem einzelnen Rollout abrufen
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Fehlgeschlagenen Job ignorieren
rollouts.list() clouddeploy.rollouts.list Roll-outs und Metadaten auflisten.
rollouts.retryJob() clouddeploy.rollouts.retryJob Wiederholt einen fehlgeschlagenen Job.
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() clouddeploy.deployPolicies.override Eine Bereitstellungsrichtlinienressource überschreiben
deployPolicies.update() clouddeploy.deployPolicies.update Vorhandene Bereitstellungsrichtlinienressource aktualisieren
targets.create() clouddeploy.targets.create Erstellen einer neuen Zielressource.
targets.delete() clouddeploy.targets.delete Vorhandene Zielressource löschen.
targets.get() clouddeploy.targets.get Rufen Sie Details zu einem einzelnen Ziel ab.
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 auf folgende Weise schützen:

  • IAM-Meta-APIs

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

  • Bedingtes IAM

    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 für bestimmte Nutzer oder Gruppen gewähren.

  • Bestimmte Lieferpipeline aktualisieren oder löschen

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

  • Release für eine bestimmte Lieferpipeline erstellen

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

  • Bestimmtes Zielvorhaben aktualisieren oder löschen

    Sie können diesen Zugriff für bestimmte Nutzer 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 ein bestimmtes Zeitfenster beschränkt.

Nächste Schritte