Responda à pesquisa State of DevOps 2023 (em inglês) e molde o futuro da entrega de software.

Permissões e papéis do IAM

Nesta página, descrevemos as contas de serviço, os papéis e as permissões do Google Cloud Deploy.

O acesso no Google Cloud Deploy é controlado usando o Identity and Access Management (IAM). O IAM permite criar e gerenciar permissões de recursos do Google Cloud. O Google Cloud Deploy fornece um conjunto específico de papéis de IAM predefinidos, em que cada papel contém um conjunto de permissões. Você pode usar esses papéis para dar acesso mais detalhado a recursos específicos do Google Cloud e impedir o acesso indesejado a outros recursos. Com o IAM, é possível adotar o princípio de segurança do menor privilégio (em inglês) para conceder apenas o acesso necessário aos recursos.

Consulte Como usar o IAM para restringir o acesso do Google Cloud Deploy para saber mais sobre os recursos avançados de segurança do controle de acesso.

Contas de serviço no Google Cloud Deploy

Por padrão, o Google Cloud Deploy é executado usando a conta de serviço padrão do Compute Engine. Essa conta de serviço tem permissões suficientes para renderizar manifestos e implantar nos seus destinos.

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

Papéis predefinidos do Google Cloud Deploy

Com o IAM, todo método de API na API Google Cloud Deploy exige que a identidade que faz a solicitação de API tenha as permissões apropriadas para usar o recurso. As permissões são concedidas por meio da definição de políticas que concedem papéis a um principal (usuário, grupo ou conta de serviço) do projeto. É possível conceder vários papéis a um principal no mesmo recurso.

A tabela a seguir lista os papéis do IAM do Google Cloud Deploy e as permissões que eles incluem:

Papel Descrição Permissões
roles/clouddeploy.viewer Pode ver o Google Cloud Deploy

recursos.

clouddeploy.*.get

clouddeploy.*.list

roles/clouddeploy.admin Controle total dos recursos do Google Cloud Deploy. clouddeploy.*
roles/clouddeploy.developer Pode criar, recuperar, atualizar e

excluir recursos do pipeline de entrega do Google Cloud Deploy.

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

roles/clouddeploy.operator Pode criar, recuperar, atualizar e excluir

Pipeline de entrega e recursos de destino do Google Cloud Deploy.

Pode criar e recuperar recursos de lançamento, lançamento e execução de jobs.

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.targets.get

clouddeploy.targets.list

clouddeploy.targets.create

clouddeploy.targets.delete

clouddeploy.targets.update

clouddeploy.targets.getIamPolicy

clouddeploy.rollouts.list

clouddeploy.rollouts.get

clouddeploy.rollouts.create

clouddeploy.rollouts.retryJob

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

roles/clouddeploy.approver Pode ver e aprovar

recursos de lançamento do Google Cloud Deploy.

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.rollouts.approve

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

roles/clouddeploy.jobRunner Pode executar o trabalho do Google Cloud Deploy sem

permissão para implantar em um destino.

logging.logEntries.create

storage.objects.create

storage.objects.list

storage.objects.get

roles/clouddeploy.releaser Pode criar e recuperar versões e lançamentos clouddeploy.deliveryPipelines.get

clouddeploy.targets.get

clouddeploy.releases.list

clouddeploy.releases.get

clouddeploy.releases.create

clouddeploy.rollouts.list

clouddeploy.rollouts.get

clouddeploy.rollouts.create

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

Além dos papéis predefinidos do Google Cloud Deploy, os papéis de Leitor, Editor e Proprietário básicos também incluem permissões relacionadas ao Google Cloud Deploy. No entanto, recomendamos que você conceda papéis predefinidos sempre que possível para obedecer ao princípio de segurança do menor privilégio.

Permissões

A tabela a seguir lista as permissões que o solicitante precisa ter para chamar cada método:

Método de API Permissão necessária Descrição
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Crie um novo recurso de pipeline de entrega.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Exclua um recurso de pipeline de entrega atual.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Recupere detalhes de um pipeline de entrega individual.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Receba a política do IAM para um recurso de pipeline de entrega.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Listar pipelines de entrega e respectivos metadados.
deliveryPipelines.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Defina a política do IAM para um recurso de pipeline de entrega.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Atualiza um recurso de pipeline de entrega atual.
jobRuns.get() clouddeploy.jobRuns.get Recuperar um recurso JobRuns.
jobRuns.list() clouddeploy.jobRuns.list Liste os recursos de JobRuns e os metadados deles.
operations.cancel() clouddeploy.operations.cancel Cancelar uma operação de longa duração.
operation.delete() clouddeploy.operations.delete Excluir uma operação de longa duração.
operations.get() clouddeploy.operations.get Receba uma operação específica de longa duração (por exemplo, para retornar o status da criação de uma versão).
operations.list() clouddeploy.operations.list Listar operações de longa duração.
releases.abandon() clouddeploy.releases.abandon Abandonar um lançamento e evitar lançamentos futuros
releases.create() clouddeploy.releases.create Crie um novo recurso de lançamento. O autor da chamada também requer a permissão iam.serviceAccounts.actAs na conta de serviço usada para renderizar o manifesto.
releases.get() clouddeploy.releases.get Recuperar detalhes de uma versão.
releases.list() clouddeploy.releases.list Listar versões e metadados.
releases.promote() clouddeploy.rollouts.create Promova a versão para o próximo destino.
rollouts.approve() clouddeploy.rollouts.approve Aprove ou recuse um lançamento com o estado de aprovação required.
rollouts.create() clouddeploy.rollouts.create Crie um novo recurso de lançamento. O autor da chamada também requer a permissão iam.serviceAccounts.actAs no projeto ou na conta de serviço usada para implantar.
rollouts.get() clouddeploy.rollouts.get Recuperar detalhes de um lançamento individual
rollouts.list() clouddeploy.rollouts.list Listar lançamentos e metadados.
rollouts.retryJob() clouddeploy.rollouts.retryJob Tente um job com falha.
targets.create() clouddeploy.targets.create Crie um novo recurso de destino.
targets.delete() clouddeploy.targets.delete Exclua um recurso de destino existente.
targets.get() clouddeploy.targets.get Recuperar detalhes de um destino individual.
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Recebe a política do IAM para um recurso de destino.
targets.list() clouddeploy.targets.list Listar destinos e os respectivos metadados.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Define a política do IAM para um recurso de destino.
targets.update() clouddeploy.targets.update Atualize um recurso de destino existente.

Como usar o IAM para restringir ações nos recursos do Google Cloud Deploy

É possível proteger os recursos do Google Cloud Deploy usando o IAM das seguintes maneiras:

  • APIs meta do IAM

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

  • IAM condicional

    Aplique políticas de acesso programaticamente, incluindo as condições para conceder ou negar acesso.

É possível usar essas políticas e condições para restringir as seguintes ações nos recursos do Google Cloud Deploy:

  • Criar um pipeline ou um destino de entrega

    Você pode conceder esse acesso a usuários ou grupos específicos.

  • Atualizar ou excluir um pipeline de entrega específico

    Você pode conceder esse acesso a usuários ou grupos específicos.

  • Criar uma versão para um pipeline de entrega específico

    Você pode conceder esse acesso a usuários ou grupos específicos.

  • Atualizar ou excluir uma segmentação específica

    Você pode conceder esse acesso a usuários ou grupos específicos.

  • Criar ou aprovar um lançamento ou promover uma versão

    É possível conceder esse acesso a usuários ou grupos específicos de um determinado pipeline de destino ou entrega.

    Também é possível definir uma condição que limite esse acesso em um período especificado.

A seguir