Funções e autorizações do IAM

Esta página descreve as contas de serviço, as funções e as autorizações do Cloud Deploy.

O acesso no Cloud Deploy é controlado através da gestão de identidade e de acesso (IAM). O IAM permite-lhe criar e gerir autorizações para recursos Google Cloud . O Cloud Deploy fornece um conjunto específico de funções de IAM predefinidas, em que cada função contém um conjunto de autorizações. Pode usar estas funções para conceder acesso mais detalhado a Google Cloud recursos específicos e impedir o acesso indesejado a outros recursos. O IAM permite-lhe adotar o princípio de segurança do menor privilégio, pelo que concede apenas o acesso necessário aos seus recursos.

Consulte o artigo Usar a IAM para restringir o acesso ao Cloud Deploy para saber mais sobre as funcionalidades de segurança avançadas de controlo de acesso.

Contas de serviço no Cloud Deploy

Por predefinição, o Cloud Deploy é executado com a conta de serviço do Compute Engine predefinida. Para mais informações sobre a configuração desta conta de serviço para utilização com o Cloud Deploy ou a escolha de uma conta diferente, consulte a documentação da conta de serviço de execução do Cloud Deploy.

Saiba mais sobre como o Cloud Deploy usa contas de serviço.

Funções predefinidas do Cloud Deploy

Com o IAM, todos os métodos da API Cloud Deploy requerem que a identidade que faz o pedido à API tenha as autorizações adequadas para usar o recurso. As autorizações são concedidas através da definição de políticas que concedem funções a um principal (utilizador, grupo ou conta de serviço) do seu projeto. Pode conceder várias funções a um principal no mesmo recurso.

A documentação da IAM inclui uma referência pesquisável de todas as funções predefinidas.

A tabela seguinte indica as funções de IAM do Cloud Deploy e as autorizações que incluem:

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

Além das funções predefinidas do Cloud Deploy, as funções básicas de leitor, editor e proprietário também incluem autorizações relacionadas com o Cloud Deploy. No entanto, recomendamos que conceda funções predefinidas sempre que possível para agir em conformidade com o princípio de segurança do menor privilégio.

Autorizações

A tabela seguinte lista as autorizações que o autor da chamada tem de ter para chamar cada método:

Método da API Autorização necessária Descrição
automations.create() clouddeploy.automations.create Crie um novo recurso de automatização.
automations.delete() clouddeploy.automations.delete Elimine um recurso de automatização existente.
automations.get() clouddeploy.automations.get Obtenha detalhes de um recurso de automatização individual.
automations.list() clouddeploy.automations.list Liste os recursos de automatização e os respetivos metadados.
automations.update() clouddeploy.automations.update Atualize um recurso de automatização existente.
automationRuns.cancel() clouddeploy.automationRuns.cancel Cancele uma automatização em execução.
automationRuns.get() clouddeploy.automationRuns.get Obtenha detalhes sobre uma execução de automatização individual.
automationRuns.list() clouddeploy.automationRuns.list Listar execuções de automatizações e os respetivos metadados.
customTargetTypes.create() clouddeploy.customTargetTypes.create Crie um recurso de tipo de alvo personalizado.
customTargetTypes.delete() clouddeploy.customTargetTypes.delete Elimine um recurso de tipo de alvo personalizado.
customTargetTypes.get() clouddeploy.customTargetTypes.get Recupere detalhes de um tipo de segmentação personalizado.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy Obtenha a Política IAM para um recurso de tipo de segmentação personalizado.
customTargetTypes.list() clouddeploy.customTargetTypes.list Apresenta uma lista dos tipos de alvos personalizados disponíveis e os respetivos metadados.
customTargetTypes.patch() clouddeploy.customTargetTypes.patch Atualize um tipo de segmentação personalizado existente.
customTargetTypes.setIamPolicy() clouddeploy.customTargetTypes.setIamPolicy Defina a Política IAM para um recurso de tipo de segmentação personalizado.
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Crie um novo recurso de pipeline de entrega.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Elimine um recurso de pipeline de entrega existente.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Recupere detalhes de um pipeline de fornecimento individual.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Obtenha a Política IAM para um recurso de pipeline de entrega.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Liste os pipelines de envio e os respetivos metadados.
deliveryPipelines.rollbackTarget() clouddeploy.rollouts.rollback Reverte um destino.
deliveryPipelines.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Defina a Política IAM para um recurso de pipeline de fornecimento.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Atualize um recurso de pipeline de entrega existente.
deployPolicies.create() clouddeploy.deployPolicies.create Crie um recurso de política de implementação.
deployPolicies.delete() clouddeploy.deployPolicies.delete Elimine um recurso de política de implementação.
deployPolicies.get() clouddeploy.deployPolicies.get Obtenha detalhes de um recurso de política de implementação.
deployPolicies.list() clouddeploy.deployPolicies.list Liste as políticas de implementação disponíveis e os respetivos metadados.
jobRuns.get() clouddeploy.jobRuns.get Obtenha um recurso JobRuns.
jobRuns.list() clouddeploy.jobRuns.list Liste os JobRuns recursos e os respetivos metadados.
jobRuns.terminate() clouddeploy.jobRuns.terminate Terminar uma execução de tarefa em curso.
operations.cancel() clouddeploy.operations.cancel Cancele uma operação de longa duração.
operation.delete() clouddeploy.operations.delete Elimine uma operação de longa duração.
operations.get() clouddeploy.operations.get Obter uma operação de longa duração específica (por exemplo, para devolver o estado da criação de um lançamento).
operations.list() clouddeploy.operations.list Apresentar operações de longa duração.
releases.abandon() clouddeploy.releases.abandon Abandonar um lançamento e impedir implementações adicionais em relação ao lançamento.
releases.create() clouddeploy.releases.create Crie um novo recurso de lançamento. O autor da chamada também precisa da autorização iam.serviceAccounts.actAs na conta de serviço usada para renderizar o manifesto.
releases.get() clouddeploy.releases.get Recuperar detalhes de lançamentos individuais.
releases.list() clouddeploy.releases.list Listar lançamentos e metadados.
rollouts.advance() clouddeploy.rollouts.advance Avançar uma implementação para a fase seguinte.
rollouts.approve() clouddeploy.rollouts.approve Aprove ou rejeite uma implementação com o estado de aprovação required.
rollouts.cancel() clouddeploy.rollouts.cancel Cancele uma implementação.
rollouts.create() clouddeploy.rollouts.create Crie um novo recurso de implementação ou promova um lançamento. O autor da chamada também precisa da autorização iam.serviceAccounts.actAs no projeto ou na conta de serviço usada para a implementação.
rollouts.get() clouddeploy.rollouts.get Recupere detalhes da implementação individual.
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Ignorar uma tarefa com falha.
rollouts.list() clouddeploy.rollouts.list Listar implementações e metadados.
rollouts.retryJob() clouddeploy.rollouts.retryJob Volta a tentar uma tarefa com falha.
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() clouddeploy.deployPolicies.override Substituir um recurso de política de implementação.
deployPolicies.update() clouddeploy.deployPolicies.update Atualize um recurso de política de implementação existente.
targets.create() clouddeploy.targets.create Crie um novo recurso de destino.
targets.delete() clouddeploy.targets.delete Elimine um recurso de destino existente.
targets.get() clouddeploy.targets.get Obtenha detalhes de um alvo individual.
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Obtém a Política IAM para um recurso de destino.
targets.list() clouddeploy.targets.list Liste os alvos e os respetivos metadados.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Define a Política IAM para um recurso de destino.
targets.update() clouddeploy.targets.update Atualize um recurso de destino existente.

Usar o IAM para restringir ações em recursos do Cloud Deploy

Pode proteger os seus recursos do Cloud Deploy através da IAM das seguintes formas:

  • Meta APIs de IAM

    Use setIamPolicy em recursos do Cloud Deploy para restringir ações nesses recursos.

  • IAM condicional

    Aplicar políticas de acesso de forma programática, incluindo as condições em que o acesso deve ser concedido ou negado.

Pode usar estas políticas e condições para restringir as seguintes ações nos seus recursos do Cloud Deploy:

  • Crie um pipeline de entrega ou um destino

    Pode conceder este acesso a utilizadores ou grupos específicos.

  • Atualize ou elimine um pipeline de entrega específico

    Pode conceder este acesso a utilizadores ou grupos específicos.

  • Crie um lançamento para um pipeline de envio específico

    Pode conceder este acesso a utilizadores ou grupos específicos.

  • Atualize ou elimine um alvo específico

    Pode conceder este acesso a utilizadores ou grupos específicos.

  • Crie ou aprove uma implementação, ou promova um lançamento

    Pode conceder este acesso a utilizadores ou grupos específicos para um alvo ou um pipeline de entrega específico.

    Também pode definir uma condição que limite este acesso a um período de tempo especificado.

O que se segue?