Como manter papéis personalizados com o Deployment Manager

Informações complementares

Com os papéis personalizados do Cloud Identity and Access Management, é possível conceder permissões granulares para contas de usuários e contas de serviço. Ao contrário dos papéis predefinidos, que são mantidos pelo Google e atualizados em conformidade, os personalizados são mantidos pela organização à medida que as novas permissões se tornam disponíveis.

O Deployment Manager pode facilitar a configuração e a manutenção dos papéis personalizados. Use-o para descrever papéis em arquivos de configuração que podem ser incluídos no sistema de controle de origem escolhido. Juntos, o Deployment Manager e o controle de origem podem facilitar a criação de "configuração como código" para:

  • rastrear papéis personalizados à medida que mudam ao longo do tempo;
  • promover papéis personalizados por meio de etapas de inicialização à medida que são testados e validados;
  • automatizar como os papéis são implantados em toda a organização.

Cenários para manter papéis personalizados usando o Deployment Manager

Considere os seguintes cenários, em que demonstramos os benefícios de usar o Deployment Manager para manter papéis personalizados:

  • Controle do acesso a novas permissões: você tem um papel personalizado que contém permissões para um serviço do Google Cloud Platform. O serviço adiciona novos recursos Beta e expõe novas permissões. O papel personalizado não herdará essas novas permissões automaticamente. Elas precisam ser adicionadas manualmente. Até novas permissões serem adicionadas ao papel personalizado, os usuários da organização não terão acesso aos recursos Beta. Use os arquivos de configuração do Deployment Manager e o controle de origem para ajudar a auditar permissões atuais, atualizar os papéis personalizados conforme necessário e manter um histórico de revisões.
  • Gerenciamento do ciclo de vida do papel: você tem um novo papel personalizado a que atribuiu uma etapa de lançamento ALPHA. Depois que o papel personalizado for testado e validado, use o Deployment Manager para atualizar a configuração do papel personalizado e avançá-lo para a etapa BETA sem usar o console do Google Cloud Platform.
  • Noções básicas sobre a adoção de papéis personalizados: ter mais definições de papéis personalizados da organização no controle de origem facilita o compartilhamento, o aprendizado a partir de padrões de uso e a aplicação de restrições em vários projetos.

Como entender os arquivos de configuração do Deployment Manager

O Deployment Manager usa três tipos de arquivos diferentes para descrever uma implantação. Cada tipo está descrito abaixo:

  • As configurações são arquivos YAML que descrevem os recursos e as propriedades deles. Para os papéis personalizados do Cloud IAM, cada arquivo YAML especifica todas as propriedades de um ou mais papéis personalizados, como nome, descrição e permissões.
  • Os esquemas especificam todas as propriedades possíveis para um determinado recurso e os valores padrão deles. Para papéis personalizados do Cloud IAM, há esquemas para os papéis personalizados dos envolvidos no projeto e na organização.
  • Modelos, que são arquivos Jinja ou Python para o aprimoramento de configurações com a possibilidade de dividir uma configuração em partes reutilizáveis. No caso dos papéis personalizados do Cloud IAM, há dois modelos fornecidos: um para os papéis personalizados para envolvidos no projeto e outro para os papéis para envolvidos na organização.

Para mais informações sobre esses tipos, consulte Fundamentos do Deployment Manager.

Antes de começar

Se você não estiver familiarizado com o Deployment Manager, primeiro complete o Guia de início rápido. Em seguida, siga as etapas abaixo:

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. Selecione ou crie um projeto do Google Cloud Platform.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform.

    Saiba como ativar o faturamento

  4. Ativar Deployment Manager e Cloud IAM APIs.

    Ativar as APIs

  5. Instale e inicialize o SDK do Cloud.

Após a conclusão dessas etapas de pré-requisito, comece a usar o Deployment Manager com o Cloud IAM para atualizar os papéis personalizados.

Conceder permissões à conta de serviço das APIs do Google

Para manter papéis personalizados usando o Deployment Manager, primeiro você precisa conceder as permissões apropriadas à conta de serviço das APIs do Google. Essa conta é criada por padrão para cada organização e projeto.

  1. Abra a página "IAM" no Console do Google Cloud Platform.
    Abrir a página do IAM
  2. Clique em Selecionar um projeto.
  3. Selecione um projeto e clique em Abrir.
  4. Na lista de membros, localize o membro com a conta de serviço das APIs do Google.
  5. Clique no menu suspenso **Papéis **da conta de serviço das APIs do Google e clique em Papéis > Administrador de papéis.
  6. Clique em Salvar para aplicar o papel.

Agora que a conta de serviço das APIs do Google recebeu permissão para manter os papéis personalizados, você pode implantar um papel personalizado de exemplo usando o Deployment Manager.

Implantar papéis personalizados no projeto

Conforme descrito na seção acima, o Deployment Manager usa uma combinação de arquivos de configuração para descrever uma implantação. Para o Cloud IAM, veja os dois arquivos de exemplo a seguir para os papéis personalizados de um projeto:

project_custom_role.yaml

imports:
- path: project_custom_role.jinja

resources:
- name: custom-role
  type: project_custom_role.jinja
  properties:
    roleId: myCustomRole
    title: My Title
    description: My description.
    includedPermissions:
    - iam.roles.get
    - iam.roles.list

Neste arquivo YAML, estão especificadas as propriedades de um papel personalizado chamado custom-role, que dá permissões a iam.roles.get e a iam.roles.list. Observe que ele se refere a um arquivo .jinja duas vezes. Essas referências usam os valores contidos no modelo Jinja conforme descrito abaixo.

project_custom_role.jinja

# Copyright 2017 Google LLC. All rights reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

resources:
- name: custom-role
  type: gcp-types/iam-v1:projects.roles
  properties:
    parent: projects/{{ env["project"] }}
    roleId: {{ properties["roleId"] }}
    role:
      title: {{ properties["title"] }}
      description: {{ properties["description"] }}
      stage: {{ properties["stage"] }}
      includedPermissions: {{ properties["includedPermissions"] }}

Este arquivo Jinja fornece um modelo para um papel personalizado para minimizar a duplicação das mesmas propriedades em muitos papéis. Os valores padrão serão inseridos do arquivo .schema se o arquivo YAML correspondente não especificar valores para cada propriedade.

Para implantar esse papel personalizado com o Deployment Manager:

  1. Faça o download do conteúdo deste repositório GitHub (em inglês) na máquina local.
  2. Em uma janela de terminal, navegue até o diretório examples/v2/iam_custom_role/jinja no repositório salvo. Ele contém o arquivo project_custom_role.yaml e os arquivos Jinja associados.
  3. Execute o comando a seguir para implantar o papel personalizado de exemplo, substituindo o valor do marcador [YOUR-DEPLOYMENT-NAME] por um nome de implantação de sua escolha:

    gcloud deployment-manager deployments create \
       [YOUR-DEPLOYMENT-NAME] --config project_custom_role.yaml
    
  4. Aguarde a conclusão da operação. A impressão digital da implantação e um indicador de progresso são exibidos:

    The fingerprint of the deployment is PUo2fmKdoFdJqiLViHjT3Q==
    Waiting for create [operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc]...done.
    
  5. Se a operação tiver sido bem-sucedida, você verá a seguinte mensagem de status:

    Create operation operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc completed successfully.
    NAME         TYPE                             STATE      ERRORS  INTENT
    custom-role  gcp-types/iam-v1:projects.roles  COMPLETED  []
    

Consultar o papel personalizado implantado

Para ver o papel personalizado no Deployment Manager:

  1. Em uma janela de terminal, execute o seguinte comando:

    gcloud deployment-manager deployments describe [YOUR-DEPLOYMENT-NAME]
    
  2. Você verá uma descrição da implantação com informações abrangentes sobre o status, eventuais erros e muito mais.

    fingerprint: oaJoGesEFYvsAldP2bm5jQ==
    id: '3222872306422524501'
    insertTime: '2018-01-29T13:40:10.822-08:00'
    manifest: manifest-1517262010855
    name: [YOUR-DEPLOYMENT-NAME]
    operation:
    endTime: '2018-01-29T13:40:26.500-08:00'
    name: operation-1517262010573-563f1172be0c9-ce5f0242-239fe1af
    operationType: insert
    progress: 100
    startTime: '2018-01-29T13:40:11.535-08:00'
    status: DONE
    user: id-7201362145@my-example-project.iam.gserviceaccount.com
    NAME         TYPE                             STATE      INTENT
    custom-role  gcp-types/iam-v1:projects.roles  COMPLETED
    
  3. Recupere o manifesto da implantação para ver as informações detalhadas sobre a configuração do papel personalizado. Na saída do comando describe, na etapa 2 acima, observe o código de manifest. Copie esse código, incluindo o prefixo manifest-, e use-o para substituir o valor do marcador abaixo:

    gcloud deployment-manager manifests describe [YOUR-MANIFEST-ID] \
        --deployment [YOUR-DEPLOYMENT-NAME]
    
  4. O manifesto contém informações completas sobre a implantação do papel personalizado, o que inclui o conteúdo bruto dos arquivos project_custom_role.yaml e project_custom_role.jinja de origem. Observe especialmente o bloco resources, próximo à parte inferior do manifesto, que resume os detalhes do papel:

    ...
    resources:

    • name: custom-role properties: description: My description. includedPermissions:
      • iam.roles.get
      • iam.roles.list roleId: aCustomRole stage: ALPHA title: My Title resources:
      • name: custom-role type: gcp-types/iam-v1:projects.roles type: project_custom_role.jinja ...

Para ver o papel personalizado no Console do Google Cloud Platform:

  1. Abra a página "IAM" no console do Google Cloud Platform.
    Abrir a página do IAM
  2. Clique em Selecionar um projeto.
  3. Selecione um projeto e clique em Abrir.
  4. No menu à esquerda, clique em Papéis.
  5. Clique no nome do papel personalizado recém-criado da lista. Ele será semelhante à captura de tela abaixo:

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud IAM