En esta página, se describen las cuentas de servicio, las funciones y los permisos de Cloud Deploy.
El acceso en Cloud Deploy se controla con Identity and Access Management (IAM). IAM te permite crear y administrar permisos para los recursos de Google Cloud. Cloud Deploy proporciona un conjunto específico de funciones de IAM predefinidas en el que cada función contiene un conjunto de permisos. Puedes usar estos roles para otorgar un acceso más detallado a recursos específicos de Google Cloud y evitar el acceso no deseado a otros recursos. IAM te permite adoptar el principio de seguridad de menor privilegio, de manera que puedes otorgar solo el acceso necesario a tus recursos.
Consulta Usa IAM para restringir el acceso a Cloud Deploy si quieres obtener información sobre las funciones de seguridad de control de acceso avanzadas.
Cuentas de servicio en Cloud Deploy
Según la configuración predeterminada, Cloud Deploy se ejecuta con la cuenta de servicio predeterminada de Compute Engine. Esa cuenta de servicio tiene los permisos suficientes para renderizar manifiestos y realizar implementaciones en tus destinos.
Obtén más información sobre cómo Cloud Deploy usa cuentas de servicio.
Roles predefinidos de Cloud Deploy
Con IAM, cada método de API en 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.
En la documentación de IAM, se incluye una referencia que se puede buscar de todos los roles predefinidos.
En la siguiente tabla, se enumeran las funciones de IAM de Cloud Deploy y los permisos que incluyen:
Rol | Descripción | Permisos |
---|---|---|
roles/clouddeploy.viewer
|
Puede ver Cloud Deploy
sobreaprovisionados. |
clouddeploy.*.get
|
roles/clouddeploy.admin |
Tiene control completo sobre los recursos de Cloud Deploy. | clouddeploy.* |
roles/clouddeploy.customTargetTypeAdmin |
Tiene control completo sobre los tipos de destinos personalizados de Cloud Deploy. | clouddeploy.customTargetType.* |
roles/clouddeploy.developer
|
Pueden crear, recuperar, actualizar
borrar recursos de canalización de entrega de Cloud Deploy |
clouddeploy.deliveryPipelines.get
|
roles/clouddeploy.operator
|
Puede crear, recuperar, actualizar y borrar
Canalización de entrega de Cloud Deploy y recursos de destino. Puede crear y recuperar recursos de versiones, lanzamientos y ejecuciones de trabajos. Puede recuperar recursos de tipo de destino personalizado. |
clouddeploy.customTargetType.get
|
roles/clouddeploy.approver
|
Puede ver y aprobar Cloud Deploy
de lanzamiento Google Cloud Deploy. |
clouddeploy.rollouts.get
|
roles/clouddeploy.jobRunner
|
Puede ejecutar trabajos de Cloud Deploy sin
para implementar en un destino. |
logging.logEntries.create
|
roles/clouddeploy.releaser
|
Puede crear y recuperar versiones y lanzamientos | clouddeploy.customTargetType.get
|
Además de las funciones predefinidas de Cloud Deploy, las funciones básicas 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 nuevo recurso de automatización. |
automations.delete() |
clouddeploy.automations.delete |
Borra un recurso de automatización existente. |
automations.get() |
clouddeploy.automations.get |
Recupera 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.customTargetType.create |
Crea un recurso de tipo de destino personalizado. |
customTargetTypes.delete() |
clouddeploy.customTargetType.delete |
Borrar un recurso de tipo de destino personalizado. |
customTargetTypes.get() |
clouddeploy.customTargetType.get |
Recupera los detalles de un tipo de destino personalizado. |
customTargetTypes.getIamPolicy() |
clouddeploy.customTargetType.getIamPolicy |
Obtener la política de IAM para un recurso de tipo de destino personalizado |
customTargetTypes.list() |
clouddeploy.customTargetType.list |
Enumera los tipos de destinos personalizados disponibles y sus metadatos. |
customTargetTypes.patch() |
clouddeploy.customTargetType.patch |
Actualiza un tipo de destino personalizado existente. |
customTargetTypes.setIamPolicy() |
clouddeploy.customTargetType.setIamPolicy |
Establece la política de IAM para un recurso de tipo de destino personalizado. |
deliveryPipelines.create() |
clouddeploy.deliveryPipelines.create |
Crea un nuevo recurso de canalización de entrega. |
deliveryPipelines.delete() |
clouddeploy.deliveryPipelines.delete |
Borrar un recurso existente de canalización de entrega |
deliveryPipelines.get() |
clouddeploy.deliveryPipelines.get |
Recupera detalles de una canalización de entrega individual. |
deliveryPipelines.getIamPolicy() |
clouddeploy.deliveryPipelines.getIamPolicy |
Obtener 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 objetivo. |
deliveryPipelines.setIamPolicy() |
clouddeploy.deliveryPipelines.setIamPolicy |
Establece la política de IAM para un recurso de canalización de entrega. |
deliveryPipelines.update() |
clouddeploy.deliveryPipelines.update |
Actualizar un recurso de canalización de entrega existente. |
jobRuns.get() |
clouddeploy.jobRuns.get |
Recupera un recurso JobRuns . |
jobRuns.list() |
clouddeploy.jobRuns.list |
Enumera JobRuns recursos y sus metadatos. |
jobRuns.terminate() |
clouddeploy.jobRuns.terminate |
Finaliza la ejecución de un 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 |
Obtener una operación específica de larga duración (por ejemplo, para mostrar 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 |
Abandonar una versión y evitar lanzamientos futuros en relación con ella |
releases.create() |
clouddeploy.releases.create |
Crea un nuevo recurso de lanzamiento. El llamador 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 detalles de versiones individuales. |
releases.list() |
clouddeploy.releases.list |
Enumera versiones y metadatos. |
releases.promote() |
clouddeploy.rollouts.create |
Promover la versión al siguiente destino |
rollouts.advance() |
clouddeploy.rollouts.advance |
Avanzar un lanzamiento a la siguiente fase |
rollouts.approve() |
clouddeploy.rollouts.approve |
Aprueba o rechaza un lanzamiento con estado de aprobación de required . |
rollouts.cancel() |
clouddeploy.rollouts.cancel |
Cancela un lanzamiento. |
rollouts.create() |
clouddeploy.rollouts.create |
Crea un nuevo recurso de lanzamiento. El llamador también requiere el permiso iam.serviceAccounts.actAs en el proyecto o la cuenta de servicio que se usó para realizar la implementación. |
rollouts.get() |
clouddeploy.rollouts.get |
Recuperar detalles de lanzamientos individuales |
rollouts.ignoreJob() |
clouddeploy.rollouts.ignoreJob |
Ignora un trabajo con errores. |
rollouts.list() |
clouddeploy.rollouts.list |
Enumera lanzamientos y metadatos. |
rollouts.retryJob() |
clouddeploy.rollouts.retryJob |
Vuelve a intentar un trabajo con errores. |
targets.create() |
clouddeploy.targets.create |
Crea un nuevo recurso de destino. |
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 de un recurso de destino. |
targets.list() |
clouddeploy.targets.list |
Enumera los destinos y sus metadatos. |
targets.setIamPolicy() |
clouddeploy.targets.setIamPolicy |
Configura 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 los recursos de Cloud Deploy con la IAM de las siguientes maneras:
API de meta de IAM
Usa
setIamPolicy
en los recursos de Cloud Deploy para restringir las acciones en esos recursos.IAM condicional
Aplica políticas de acceso de manera programática, incluidas las conditions 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.
Actualiza o borra una canalización de entrega específica
Puedes otorgar este acceso a usuarios o grupos específicos.
Crea una versión para una canalización de entrega específica
Puedes otorgar este acceso a usuarios o grupos específicos.
Actualiza o borra un destino específico
Puedes otorgar este acceso a usuarios o grupos específicos.
Cómo crear o aprobar un lanzamiento o promover una versión
Puedes otorgar este acceso a usuarios o grupos específicos para una canalización de entrega o destino en particular.
También puedes establecer una condición que limite este acceso dentro de un período especificado.
¿Qué sigue?
- Obtén información sobre IAM.
- Obtén más información sobre el uso de condiciones en IAM.
- Obtén más información sobre las cuentas de servicio de Cloud Deploy.