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
|
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
|
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
|
roles/clouddeploy.approver
|
Pode ver e aprovar
recursos de lançamento do Google Cloud Deploy. |
clouddeploy.rollouts.get
|
roles/clouddeploy.jobRunner
|
Pode executar o trabalho do Google Cloud Deploy sem
permissão para implantar em um destino. |
logging.logEntries.create
|
roles/clouddeploy.releaser
|
Pode criar e recuperar versões e lançamentos | clouddeploy.deliveryPipelines.get
|
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
- Saiba mais sobre IAM.
- Saiba mais sobre como usar condições no IAM.
- Saiba mais sobre as contas de serviço do Google Cloud Deploy.