Como manter papéis personalizados com o Deployment Manager

Contexto

Com os papéis personalizados do Google 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. Você pode usar o Deployment Manager para descrever os papéis usando arquivos de configuração, que podem ser verificados no seu 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, que demonstram os benefícios de usar o Deployment Manager para manter os 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é que as novas permissões sejam adicionadas ao seu papel personalizado, os usuários na organização não terão acesso aos recursos Beta. Você pode usar os arquivos de configuração do Deployment Manager e o controle de origem para ajudar a auditar permissões existentes, 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 ao qual atribuiu uma etapa de lançamento ALPHA. Depois que o papel personalizado foi testado e validado, você pode usar o Deployment Manager para atualizar a configuração do papel personalizado e avançar para o estágio BETA sem usar o Console do Google Cloud Platform.
  • Compreensão da adoção de papéis personalizados: se você tem mais definições de papéis personalizados da sua organização no controle de origem, fica mais fácil compartilhar, aprender com os padrões de uso e impor restrições em vários projetos.

Como compreender 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 os papéis personalizados do Cloud IAM, há esquemas para os papéis personalizados dos envolvidos no projeto e na organização. Cada arquivo de esquema especifica o número máximo de propriedades para cada papel personalizado e os valores padrão deles.
  • Modelos, que são arquivos Jinja ou Python que aprimoram configurações ao permitir que você divida uma configuração em partes reutilizáveis. Para os 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. Faça o download e autentique o gcloud.

Após a conclusão dessas etapas de pré-requisito, você pode começar a usar o Deployment Manager com o Cloud IAM para manter 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 em Papéis no menu suspenso para a conta de serviço das APIs do Google e em seguida, 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:

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:
    - bigquery.config.get
    - bigquery.datasets.get

Este arquivo YAML especifica as propriedades sobre um papel chamado custom-role, que concede permissões para bigquery.config.get e bigquery.datasets.get. Observe que ele faz referência a um arquivo .jinja duas vezes. Essas referências usam os valores fornecidos pelo modelo do Jinja conforme descrito abaixo.

project_custom_role.jinja

{#
Copyright 2017 Google Inc. 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 no arquivo .schema se o arquivo YAML correspondente não especificar valores para cada propriedade.

  1. Faça o download do conteúdo deste repositório GitHub para sua máquina local. Ele contém o exemplo do arquivo custom-role.yaml e as dependências.
  2. Em uma janela de terminal, navegue até o local de download e procure por custom-role.yaml. Em seguida, execute o comando a seguir para implantar o exemplo de papel personalizado, substituindo o valor do marcador de posição [YOUR-DEPLOYMENT-NAME] pelo seu próprio:

    gcloud deployment-manager deployments create \
       [YOUR-DEPLOYMENT-NAME] --config custom-role.yaml
    

  3. 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.
    

  4. Se a operação foi 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, incluindo informações abrangentes sobre o status, quaisquer erros e muito mais.

    fingerprint: PUo2fmKdoFdJqiLViHjT3Q==
    id: '4184503157438526636'
    insertTime: '2017-12-13T21:21:07.136-08:00'
    manifest: manifest-1513228867140
    name: [YOUR-DEPLOYMENT-NAME]
    operation:
      endTime: '2017-12-13T21:21:10.747-08:00'
      name: operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc
      operationType: insert
      progress: 100
      startTime: '2017-12-13T21:21:07.296-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. Você também pode ver as informações detalhadas sobre a configuração do papel personalizado ao recuperar o manifesto da implantação. Na saída do comando describe na etapa 2 acima, observe o código do manifest. Copie esse código e use-o para substituir o valor do marcador de posição abaixo:

    gcloud deployment-manager manifests describe [YOUR-MANIFEST-ID] \
        --deployment [YOUR-DEPLOYMENT-NAME]
    

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

  1. Abra a página "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 Identity and Access Management