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 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 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 de 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. |
|
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 básicos de Leitor, Editor e Proprietário 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 |
Criar um novo recurso de automação. |
automations.delete() |
clouddeploy.automations.delete |
Excluir um recurso de automação atual. |
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 metadados deles. |
automations.update() |
clouddeploy.automations.update |
Atualizar um recurso de automação atual. |
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.customTargetType.create |
Criar um recurso de tipo de destino personalizado. |
customTargetTypes.delete() |
clouddeploy.customTargetType.delete |
Excluir um recurso de tipo de destino personalizado. |
customTargetTypes.get() |
clouddeploy.customTargetType.get |
Recuperar detalhes de um tipo de segmentação personalizada. |
customTargetTypes.getIamPolicy() |
clouddeploy.customTargetType.getIamPolicy |
Consiga a política do IAM para um recurso de tipo de destino personalizado. |
customTargetTypes.list() |
clouddeploy.customTargetType.list |
Liste os tipos de segmentações personalizadas disponíveis e os respectivos metadados. |
customTargetTypes.patch() |
clouddeploy.customTargetType.patch |
Atualize um tipo de segmentação personalizada existente. |
customTargetTypes.setIamPolicy() |
clouddeploy.customTargetType.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 uma meta. |
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 |
Listar recursos de JobRuns e os metadados deles. |
jobRuns.terminate() |
clouddeploy.jobRuns.terminate |
encerra a execução de um 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. |
releases.promote() |
clouddeploy.rollouts.create |
Promova a versão para o próximo destino. |
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. 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. |
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 seus recursos do Cloud Deploy usando o IAM das seguintes maneiras:
APIs meta do IAM
Use
setIamPolicy
nos recursos do Cloud Deploy para restringir ações nesses recursos.IAM condicional
Aplique políticas de acesso programaticamente, incluindo as conditions para 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.