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 pelo Identity and Access Management (IAM). O IAM permite criar e gerenciar permissões de recursos do Google Cloud. O Cloud Deploy fornece um um conjunto 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 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 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. Essa conta de serviço tem permissões suficientes para renderizar manifestos e implantar nos seus destinos.
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:
Papéis do Cloud Deploy |
Permissões |
Administrador do Cloud Deploy( Controle total dos recursos do Cloud Deploy. |
|
Aprovador do Cloud Deploy( Permissão para aprovar ou rejeitar lançamentos. |
|
Administrador de tipo de destino personalizado do Cloud Deploy( Permissão para gerenciar recursos CustomTargetType |
|
Desenvolvedor do Cloud Deploy( Permissão para gerenciar a configuração de implantação sem permissão para acessar recursos operacionais, como destinos. |
|
Executor do Cloud Deploy( Permissão para executar o trabalho do Cloud Deploy sem permissão para entregar a um destino. |
|
Operador do Cloud Deploy( Permissão para gerenciar a configuração de implantação. |
|
Administrador de políticas do Cloud Deploy Beta( Permissão para gerenciar políticas de implantação. |
|
Agente de substituição de políticas do Cloud Deploy Beta( Permissão para substituir políticas de implantação. |
|
Lançador do Cloud Deploy( Permissão para criar versões e lançamentos do Cloud Deploy. |
|
Leitor do Cloud Deploy( Pode ver recursos do Cloud Deploy. |
|
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. |
automations.get() |
clouddeploy.automations.get |
Recuperar detalhes de um recurso de automação individual. |
automations.list() |
clouddeploy.automations.list |
Listar recursos de automação e os respectivos metadados. |
automations.update() |
clouddeploy.automations.update |
Atualize um recurso de automação. |
automationRuns.cancel() |
clouddeploy.automationRuns.cancel |
Cancelar uma automação em execução. |
automationRuns.get() |
clouddeploy.automationRuns.get |
Recuperar detalhes de uma execução de automação individual. |
automationRuns.list() |
clouddeploy.automationRuns.list |
Listar 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 |
Excluir um recurso de tipo de destino personalizado. |
customTargetTypes.get() |
clouddeploy.customTargetTypes.get |
Extrair detalhes de um tipo de segmentação personalizada. |
customTargetTypes.getIamPolicy() |
clouddeploy.customTargetTypes.getIamPolicy |
Consiga a política do IAM para um recurso de tipo de destino personalizado. |
customTargetTypes.list() |
clouddeploy.customTargetTypes.list |
Liste os tipos de segmentações personalizadas disponíveis e os respectivos metadados. |
customTargetTypes.patch() |
clouddeploy.customTargetTypes.patch |
Atualize um tipo de segmentação personalizada existente. |
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 |
Listar 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 |
Criar um recurso de política de implantação. |
deployPolicies.delete() |
clouddeploy.deployPolicies.delete |
Excluir um recurso de política de implantação. |
deployPolicies.get() |
clouddeploy.deployPolicies.get |
Extrair detalhes de um recurso de política de implantação. |
deployPolicies.list() |
clouddeploy.deployPolicies.list |
Listar as políticas de implantação disponíveis e os metadados delas. |
jobRuns.get() |
clouddeploy.jobRuns.get |
Recuperar um recurso JobRuns . |
jobRuns.list() |
clouddeploy.jobRuns.list |
Listar recursos de JobRuns e os metadados deles. |
jobRuns.terminate() |
clouddeploy.jobRuns.terminate |
Encerrar 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 |
Abandonar uma versão e impedir novos lançamentos nela. |
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 |
Avançar 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 |
Cancelar 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 |
Ignorar 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 |
Substituir um recurso de política de implantação. |
deployPolicies.update() |
clouddeploy.deployPolicies.update |
Atualize um recurso de política de implantação atual. |
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
Usar
setIamPolicy
em Recursos do 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.
Você pode usar essas políticas e condições para restringir as seguintes ações em 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.