Permisos y funciones de IAM

En esta página, se describen las cuentas de servicio, los roles y los permisos de Cloud Deploy.

El acceso en Cloud Deploy se controla con la administración de identidades y accesos (IAM). IAM te permite crear y administrar permisos para los recursos de Google Cloud . Cloud Deploy proporciona un conjunto específico de roles de IAM predefinidos, en el que cada rol contiene un conjunto de permisos. Puedes usar estos roles para otorgar un acceso más detallado a recursos Google Cloud específicos y evitar el acceso no deseado a otros recursos. IAM te permite adoptar el principio de seguridad de menor privilegio, de manera que solo otorgas el acceso necesario a tus recursos.

Consulta Usa IAM para restringir el acceso a Cloud Deploy para obtener información sobre las funciones de seguridad avanzadas del control de acceso.

Cuentas de servicio en Cloud Deploy

De forma predeterminada, Cloud Deploy se ejecuta con la cuenta de servicio predeterminada de Compute Engine. Para obtener más información sobre cómo configurar esta cuenta de servicio para usarla con Cloud Deploy o elegir una cuenta diferente, consulta la documentación de la cuenta de servicio de ejecución de Cloud Deploy.

Obtén más información sobre cómo Cloud Deploy usa las cuentas de servicio.

Roles predefinidos de Cloud Deploy

Con IAM, cada método de la API de Cloud Deploy requiere que la identidad que realiza la solicitud a la API tenga los permisos adecuados para usar el recurso. Los permisos se asignan mediante la configuración de políticas que otorgan roles a un miembro (usuario, grupo o cuenta de servicio) del proyecto. Puedes otorgar varios roles a una principal en el mismo recurso.

La documentación de IAM incluye una referencia con capacidad de búsqueda de todos los roles predefinidos.

En la siguiente tabla, se enumeran los roles de IAM de Cloud Deploy y los permisos que incluyen:

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

Además de los roles predefinidos de Cloud Deploy, los roles básicos de visualizador, editor y propietario también incluyen permisos relacionados con Cloud Deploy. Sin embargo, te recomendamos otorgar roles predefinidos siempre que sea posible para cumplir con el principio de privilegio mínimo de seguridad.

Permisos

En la tabla siguiente, se enumeran los permisos que deben tener el emisor para llamar a cada método:

Método de API Permiso necesario Descripción
automations.create() clouddeploy.automations.create Crea un recurso de automatización nuevo.
automations.delete() clouddeploy.automations.delete Borra un recurso de automatización existente.
automations.get() clouddeploy.automations.get Recupera los detalles de un recurso de automatización individual.
automations.list() clouddeploy.automations.list Enumera los recursos de automatización y sus metadatos.
automations.update() clouddeploy.automations.update Actualiza un recurso de automatización existente.
automationRuns.cancel() clouddeploy.automationRuns.cancel Cancela una automatización en ejecución.
automationRuns.get() clouddeploy.automationRuns.get Recupera los detalles de una ejecución de automatización individual.
automationRuns.list() clouddeploy.automationRuns.list Enumera las ejecuciones de automatización y sus metadatos.
customTargetTypes.create() clouddeploy.customTargetTypes.create Crea un recurso de tipo de segmentación personalizado.
customTargetTypes.delete() clouddeploy.customTargetTypes.delete Borra un recurso de tipo de segmentación personalizado.
customTargetTypes.get() clouddeploy.customTargetTypes.get Recupera los detalles de un tipo de segmentación personalizada.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy Obtiene la política de IAM para un recurso de tipo de destino personalizado.
customTargetTypes.list() clouddeploy.customTargetTypes.list Enumera los tipos de segmentación personalizados disponibles y sus metadatos.
customTargetTypes.patch() clouddeploy.customTargetTypes.patch Actualiza un tipo de objetivo personalizado existente.
customTargetTypes.setIamPolicy() clouddeploy.customTargetTypes.setIamPolicy Establece la política de IAM para un recurso de tipo de destino personalizado.
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Crea un recurso de canalización de entrega nuevo.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Borra un recurso de canalización de entrega existente.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Recupera los detalles de una canalización de entrega individual.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Obtiene la política de IAM para un recurso de canalización de entrega.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Enumera las canalizaciones de entrega y sus metadatos.
deliveryPipelines.rollbackTarget() clouddeploy.rollouts.rollback Revierte un destino.
deliveryPipelines.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Establece la política de IAM para un recurso de canalización de entrega.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Actualiza un recurso de canalización de entrega existente.
deployPolicies.create() clouddeploy.deployPolicies.create Crea un recurso de política de implementación.
deployPolicies.delete() clouddeploy.deployPolicies.delete Borra un recurso de política de implementación.
deployPolicies.get() clouddeploy.deployPolicies.get Recupera los detalles de un recurso de política de implementación.
deployPolicies.list() clouddeploy.deployPolicies.list Enumera las políticas de implementación disponibles y sus metadatos.
jobRuns.get() clouddeploy.jobRuns.get Recupera un recurso JobRuns.
jobRuns.list() clouddeploy.jobRuns.list Enumera los recursos JobRuns y sus metadatos.
jobRuns.terminate() clouddeploy.jobRuns.terminate Finaliza una ejecución de trabajo en curso.
operations.cancel() clouddeploy.operations.cancel Cancela una operación de larga duración.
operation.delete() clouddeploy.operations.delete Borra una operación de larga duración.
operations.get() clouddeploy.operations.get Obtiene una operación específica de larga duración (por ejemplo, para devolver el estado de la creación de una versión).
operations.list() clouddeploy.operations.list Muestra las operaciones de larga duración.
releases.abandon() clouddeploy.releases.abandon Abandona una versión y evita que se realicen más lanzamientos en su contra.
releases.create() clouddeploy.releases.create Crea un recurso de versión nuevo. La entidad que llama también requiere el permiso iam.serviceAccounts.actAs en la cuenta de servicio que se usa para renderizar el manifiesto.
releases.get() clouddeploy.releases.get Recupera los detalles de un lanzamiento individual.
releases.list() clouddeploy.releases.list Enumera lanzamientos y metadatos.
rollouts.advance() clouddeploy.rollouts.advance Avanzar un lanzamiento a la siguiente fase
rollouts.approve() clouddeploy.rollouts.approve Aprobar o rechazar un lanzamiento con el estado de aprobación required
rollouts.cancel() clouddeploy.rollouts.cancel Cancela un lanzamiento.
rollouts.create() clouddeploy.rollouts.create Crea un recurso de lanzamiento nuevo o promueve una versión. El llamador también requiere el permiso iam.serviceAccounts.actAs en el proyecto o la cuenta de servicio que se usa para la implementación.
rollouts.get() clouddeploy.rollouts.get Recupera los detalles de un lanzamiento individual.
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Ignorar un trabajo con errores
rollouts.list() clouddeploy.rollouts.list Enumera los lanzamientos y los metadatos.
rollouts.retryJob() clouddeploy.rollouts.retryJob Reintenta un trabajo con errores.
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() clouddeploy.deployPolicies.override Anula un recurso de política de implementación.
deployPolicies.update() clouddeploy.deployPolicies.update Actualiza un recurso de política de implementación existente.
targets.create() clouddeploy.targets.create Crea un recurso de destino nuevo.
targets.delete() clouddeploy.targets.delete Borra un recurso de destino existente.
targets.get() clouddeploy.targets.get Recupera los detalles de un destino individual.
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Obtiene la política de IAM para un recurso de destino.
targets.list() clouddeploy.targets.list Enumera los destinos y sus metadatos.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Establece la política de IAM para un recurso de destino.
targets.update() clouddeploy.targets.update Actualiza un recurso de destino existente.

Usa IAM para restringir acciones en los recursos de Cloud Deploy

Puedes proteger tus recursos de Cloud Deploy con IAM de las siguientes maneras:

  • API de meta de IAM

    Usa setIamPolicy en los recursos de Cloud Deploy para restringir acciones en esos recursos.

  • IAM condicional

    Aplicar políticas de acceso de forma programática, incluidas las condiciones en las que se otorga o rechaza el acceso

Puedes usar estas políticas y condiciones para restringir las siguientes acciones en tus recursos de Cloud Deploy:

  • Crea una canalización de entrega o un destino

    Puedes otorgar este acceso a usuarios o grupos específicos.

  • Cómo actualizar o borrar una canalización de entrega específica

    Puedes otorgar este acceso a usuarios o grupos específicos.

  • Crea un lanzamiento para una canalización de entrega específica

    Puedes otorgar este acceso a usuarios o grupos específicos.

  • Cómo actualizar o borrar un objetivo específico

    Puedes otorgar este acceso a usuarios o grupos específicos.

  • Crear o aprobar un lanzamiento, o bien promover una versión

    Puedes otorgar este acceso a usuarios o grupos específicos para un objetivo o una canalización de entrega específicos.

    También puedes establecer una condición que limite este acceso a un período específico.

¿Qué sigue?