Nesta página, descrevemos as contas de serviço, os papéis e as permissões do Cloud Deploy.
O acesso no Cloud Deploy é controlado usando Identity and Access Management (IAM). O IAM permite criar e gerenciar permissões para Google Cloud recursos. O Cloud Deploy oferece um conjunto específico de papéis predefinidos do IAM , 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 Google Cloud e impedir o acesso indesejado a outros recursos. Com o IAM, é possível adotar o princípio de segurança de privilégio mínimo, para conceder apenas o acesso necessário aos recursos.
Consulte Como usar o IAM para restringir o acesso ao Cloud Deploy para saber mais sobre os recursos avançados de segurança do controle de acesso.
Contas de serviço no Cloud Deploy
Por padrão, o Cloud Deploy é executado usando a conta de serviço padrão do Compute Engine. Para mais informações sobre como configurar essa conta de serviço para uso com o Cloud Deploy ou escolher 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.
Papéis predefinidos do Cloud Deploy
Com o IAM, todo método de API na API 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 documentação do IAM inclui uma referência pesquisável de todos os papéis predefinidos.
A tabela a seguir lista os papéis do IAM do Cloud Deploy e as permissões que eles incluem:
| Role | Permissions |
|---|---|
Cloud Deploy Admin( Full control of Cloud Deploy resources. |
|
Cloud Deploy Editor( Editor role for Cloud Deploy |
|
Cloud Deploy Viewer( Can view Cloud Deploy resources. |
|
Cloud Deploy Approver( Permission to approve or reject rollouts. |
|
Cloud Deploy Custom Target Type Admin( Permission to manage CustomTargetType resources |
|
Cloud Deploy Developer( Permission to manage deployment configuration without permission to access operational resources, such as targets. |
|
Cloud Deploy Runner( Permission to execute Cloud Deploy work without permission to deliver to a target. |
|
Cloud Deploy Operator( Permission to manage deployment configuration. |
|
Cloud Deploy Policy Admin( Permission to manage Deploy Policies. |
|
Cloud Deploy Policy Overrider( Permission to override Deploy Policies. |
|
Cloud Deploy Releaser( Permission to create Cloud Deploy releases and rollouts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Cloud Deploy Service Agent( Gives Cloud Deploy Service Account access to managed resources. |
|
Além dos papéis predefinidos do Cloud Deploy, os papéis de Leitor, Editor e Proprietário básicos também incluem permissões relacionadas ao 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 |
|---|---|---|
automations.create() |
clouddeploy.automations.create |
Crie um novo recurso de automação. |
automations.delete() |
clouddeploy.automations.delete |
Exclua um recurso de automação atual. |
automations.get() |
clouddeploy.automations.get |
Recupere detalhes de um recurso de automação individual. |
automations.list() |
clouddeploy.automations.list |
Liste recursos de automação e os respectivos metadados. |
automations.update() |
clouddeploy.automations.update |
Atualize um recurso de automação atual. |
automationRuns.cancel() |
clouddeploy.automationRuns.cancel |
Cancele uma automação em execução. |
automationRuns.get() |
clouddeploy.automationRuns.get |
Recupere detalhes de uma execução de automação individual. |
automationRuns.list() |
clouddeploy.automationRuns.list |
Liste execuções de automação e os respectivos metadados. |
customTargetTypes.create() |
clouddeploy.customTargetTypes.create |
Crie um recurso de tipo de destino personalizado. |
customTargetTypes.delete() |
clouddeploy.customTargetTypes.delete |
Exclua um recurso de tipo de destino personalizado. |
customTargetTypes.get() |
clouddeploy.customTargetTypes.get |
Recupere detalhes de um tipo de destino personalizado. |
customTargetTypes.getIamPolicy() |
clouddeploy.customTargetTypes.getIamPolicy |
Receba a política do IAM para um recurso de tipo de destino personalizado. |
customTargetTypes.list() |
clouddeploy.customTargetTypes.list |
Liste os tipos de destino personalizados disponíveis e os respectivos metadados. |
customTargetTypes.patch() |
clouddeploy.customTargetTypes.patch |
Atualize um tipo de destino personalizado. |
customTargetTypes.setIamPolicy() |
clouddeploy.customTargetTypes.setIamPolicy |
Defina a política do IAM para um recurso de tipo de destino personalizado. |
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 |
Liste pipelines de entrega e respectivos metadados. |
deliveryPipelines.rollbackTarget() |
clouddeploy.rollouts.rollback |
Reverte um destino. |
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. |
deployPolicies.create() |
clouddeploy.deployPolicies.create |
Crie um recurso de política de implantação. |
deployPolicies.delete() |
clouddeploy.deployPolicies.delete |
Exclua um recurso de política de implantação. |
deployPolicies.get() |
clouddeploy.deployPolicies.get |
Recupere detalhes de um recurso de política de implantação. |
deployPolicies.list() |
clouddeploy.deployPolicies.list |
Liste as políticas de implantação disponíveis e os respectivos metadados. |
jobRuns.get() |
clouddeploy.jobRuns.get |
Recupere um recurso JobRuns. |
jobRuns.list() |
clouddeploy.jobRuns.list |
Liste recursos JobRuns e os respectivos metadados. |
jobRuns.terminate() |
clouddeploy.jobRuns.terminate |
Encerre uma execução de job em andamento. |
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 |
Abandone uma versão e impeça outros lançamentos. |
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. |
rollouts.advance() |
clouddeploy.rollouts.advance |
Avance um lançamento para a próxima fase. |
rollouts.approve() |
clouddeploy.rollouts.approve |
Aprove ou recuse um lançamento com o estado de aprovação required. |
rollouts.cancel() |
clouddeploy.rollouts.cancel |
Cancele um lançamento. |
rollouts.create() |
clouddeploy.rollouts.create |
Crie um novo recurso de lançamento ou promova uma versão. 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.ignoreJob() |
clouddeploy.rollouts.ignoreJob |
Ignore um job com falha. |
rollouts.list() |
clouddeploy.rollouts.list |
Listar lançamentos e metadados. |
rollouts.retryJob() |
clouddeploy.rollouts.retryJob |
Repete um job com falha. |
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() |
clouddeploy.deployPolicies.override |
Substitua um recurso de política de implantação. |
deployPolicies.update() |
clouddeploy.deployPolicies.update |
Atualize um recurso de política de implantação. |
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 Cloud Deploy
É possível proteger os recursos do Cloud Deploy usando o IAM das seguintes maneiras:
APIs meta do IAM
Use
setIamPolicynos recursos do Cloud Deploy para restringir ações nesses recursos.IAM condicional
Aplique políticas de acesso programaticamente, incluindo as condições sob as quais conceder ou negar acesso.
É possível usar essas políticas e condições para restringir as seguintes ações nos recursos do 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 Cloud Deploy.