Funciones y permisos de IAM

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

El acceso a Cloud Deploy se controla mediante Gestión de Identidades y Accesos (IAM). IAM te permite crear y gestionar permisos para Google Cloud recursos. Cloud Deploy proporciona un conjunto específico de roles de gestión de identidades y accesos predefinidos, donde cada rol contiene un conjunto de permisos. Puedes usar estos roles para dar 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 mínimos accesos, por lo que solo concedes el acceso necesario a tus recursos.

Consulta Usar la gestión de identidades y accesos para restringir el acceso a Cloud Deploy para obtener información sobre las funciones de seguridad avanzadas de 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 otra cuenta, consulta la documentación sobre la cuenta de servicio de ejecución de Cloud Deploy.

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

Roles predefinidos de Cloud Deploy

Con IAM, cada método de la API Cloud Deploy requiere que la identidad que hace la solicitud a la API tenga los permisos adecuados para usar el recurso. Los permisos se conceden configurando políticas que asignan roles a una entidad principal (usuario, grupo o cuenta de servicio) de tu proyecto. Puedes conceder varios roles a una entidad principal en el mismo recurso.

La documentación de gestión de identidades y accesos incluye una referencia con función de búsqueda de todos los roles predefinidos.

En la siguiente tabla se indican los roles de gestión de identidades y accesos 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 lector, editor y propietario también incluyen permisos relacionados con Cloud Deploy. Sin embargo, te recomendamos que asignes roles predefinidos siempre que sea posible para cumplir el principio de seguridad de privilegio mínimo.

Permisos

En la siguiente tabla se indican los permisos que debe tener el llamador para invocar cada método:

Método de API Permiso obligatorio Descripción
automations.create() clouddeploy.automations.create Crea un recurso de automatización.
automations.delete() clouddeploy.automations.delete Elimina un recurso de automatización.
automations.get() clouddeploy.automations.get Recupera los detalles de un recurso de automatización concreto.
automations.list() clouddeploy.automations.list Mostrar los recursos de automatización y sus metadatos.
automations.update() clouddeploy.automations.update Actualiza un recurso de automatización.
automationRuns.cancel() clouddeploy.automationRuns.cancel Cancelar una automatización en curso.
automationRuns.get() clouddeploy.automationRuns.get Recupera los detalles de una ejecución de automatización concreta.
automationRuns.list() clouddeploy.automationRuns.list Muestra las ejecuciones de automatizaciones y sus metadatos.
customTargetTypes.create() clouddeploy.customTargetTypes.create Crea un recurso de tipo de segmentación personalizado.
customTargetTypes.delete() clouddeploy.customTargetTypes.delete Elimina un recurso de tipo de destino personalizado.
customTargetTypes.get() clouddeploy.customTargetTypes.get Recupera los detalles de un tipo de objetivo personalizado.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy Obtiene la política de gestión de identidades y accesos de un recurso de tipo de destino personalizado.
customTargetTypes.list() clouddeploy.customTargetTypes.list Lista los tipos de segmentación personalizada disponibles y sus metadatos.
customTargetTypes.patch() clouddeploy.customTargetTypes.patch Actualiza un tipo de segmentación personalizado.
customTargetTypes.setIamPolicy() clouddeploy.customTargetTypes.setIamPolicy Define la política de gestión de identidades y accesos de un recurso de tipo de destino personalizado.
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Crea un recurso de flujo de procesamiento de entrega.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Elimina un recurso de canalización de distribución.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Recupera los detalles de una canalización de entrega concreta.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Obtiene la política de gestión de identidades y accesos de un recurso de canalización de distribución.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Muestra las canalizaciones de distribución y sus metadatos.
deliveryPipelines.rollbackTarget() clouddeploy.rollouts.rollback Deshace la acción de un destino.
deliveryPipelines.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Define la política de gestión de identidades y accesos de un recurso de canalización de entrega.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Actualiza un recurso de flujo de procesamiento de entrega.
deployPolicies.create() clouddeploy.deployPolicies.create Crea un recurso de política de implementación.
deployPolicies.delete() clouddeploy.deployPolicies.delete Elimina 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 Lista las políticas de implementación disponibles y sus metadatos.
jobRuns.get() clouddeploy.jobRuns.get Recupera un recurso JobRuns.
jobRuns.list() clouddeploy.jobRuns.list Mostrar los recursos de 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 Elimina una operación de larga duración.
operations.get() clouddeploy.operations.get Obtener una operación de larga duración específica (por ejemplo, para devolver el estado de la creación de una versión).
operations.list() clouddeploy.operations.list Lista las operaciones de larga duración.
releases.abandon() clouddeploy.releases.abandon Abandonar una versión y evitar que se lancen más versiones.
releases.create() clouddeploy.releases.create Crea un recurso de lanzamiento. El llamante también necesita el permiso iam.serviceAccounts.actAs en la cuenta de servicio usada para renderizar el manifiesto.
releases.get() clouddeploy.releases.get Recupera los detalles de un lanzamiento concreto.
releases.list() clouddeploy.releases.list Mostrar lanzamientos y metadatos.
rollouts.advance() clouddeploy.rollouts.advance Avanzar una publicación 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 Cancelar un lanzamiento.
rollouts.create() clouddeploy.rollouts.create Crea un recurso de lanzamiento o promociona una versión. El llamante también necesita el permiso iam.serviceAccounts.actAs en el proyecto o la cuenta de servicio que se utilice para el despliegue.
rollouts.get() clouddeploy.rollouts.get Recupera los detalles de una implementación individual.
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Ignorar una tarea fallida.
rollouts.list() clouddeploy.rollouts.list Mostrar implementaciones y metadatos.
rollouts.retryJob() clouddeploy.rollouts.retryJob Vuelve a intentar ejecutar una tarea fallida.
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.
targets.create() clouddeploy.targets.create Crea un recurso de destino.
targets.delete() clouddeploy.targets.delete Elimina un recurso de destino.
targets.get() clouddeploy.targets.get Recupera los detalles de un objetivo concreto.
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Obtiene la política de gestión de identidades y accesos de un recurso de destino.
targets.list() clouddeploy.targets.list Muestra los destinos y sus metadatos.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Define la política de gestión de identidades y accesos de un recurso de destino.
targets.update() clouddeploy.targets.update Actualiza un recurso de destino.

Usar la gestión de identidades y accesos para restringir las acciones en los recursos de Cloud Deploy

Puede proteger sus recursos de Cloud Deploy mediante IAM de las siguientes formas:

  • APIs de metadatos de IAM

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

  • Gestión de identidades y accesos condicional

    Aplica políticas de acceso de forma programática, incluidas las condiciones en las que se debe conceder o denegar el acceso.

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

  • Crear un flujo de procesamiento o un destino

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

  • Actualizar o eliminar una canalización de entrega específica

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

  • Crear una versión para un flujo de procesamiento de entrega específico

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

  • Actualizar o eliminar un objetivo específico

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

  • Crear o aprobar un lanzamiento o promocionar una versión

    Puedes conceder este acceso a usuarios o grupos específicos para una segmentación o una canalización de entrega concretas.

    También puedes definir una condición que limite este acceso a un periodo específico.

Siguientes pasos