Como proteger o Console do Google Cloud e as APIs do Google Cloud

O acesso baseado no contexto para o Console do Cloud e as APIs do Google Cloud restringe o acesso ao Console do Cloud e às APIs do Google Cloud com regras baseadas em contexto. Ele se baseia no pacote BeyondCorp Enterprise (Verificação de endpoints e Access Context Manager) e ajuda a garantir que indivíduos e grupos da sua organização que atendem aos requisitos de acesso definidos possam acessar o Console do Cloud e as APIs do Google Cloud (inclusive por meio da ferramenta de linha de comando gcloud).

Esse recurso pode ser configurado com as seguintes etapas:

  1. [Opcional] Implante a Verificação de endpoints nos dispositivos da sua organização.
  2. Crie um nível de acesso no Access Context Manager.
  3. Crie um grupo de usuários a serem vinculados pelas restrições do BeyondCorp Enterprise.
  4. Receba as permissões necessárias de gerenciamento de identidade e acesso.
  5. Crie uma vinculação de acesso que imponha regras de reconhecimento ao contexto do Console do Cloud e das APIs do Google Cloud.

[Opcional] Como implantar a Verificação de endpoints

A Verificação de endpoints permite que você crie um inventário de dispositivos que acessam os dados da sua organização. Como parte de uma solução do BeyondCorp Enterprise, ela também oferece uma confiabilidade importante de dispositivo e um controle de acesso baseado em segurança, além de ajudar a impor um controle de acesso detalhado aos seus recursos do Google Cloud.

A Verificação de endpoints é executada como uma extensão do Chrome em computadores e laptops para usuários Mac, Windows e Linux. Um administrador pode implantá-la nos dispositivos da empresa no Google Admin Console, ou os membros da organização podem Instalar por conta própria.

Como criar um nível de acesso

Defina um nível de acesso que será usado ao determinar o acesso ao Console do Cloud e às APIs do Google Cloud. Basta criar um nível de acesso básico no Access Context Manager.

Como criar um grupo de usuários

Crie um grupo de usuários que precise ser vinculado por restrições de contexto. Todos os usuários desse grupo que também são membros da sua organização precisam atender ao nível de acesso criado anteriormente para acessar o Console do Cloud e as APIs do Google Cloud.

Como conceder as permissões necessárias do IAM

Conceda as permissões do IAM no nível da organização que serão necessárias para criar vinculações de acesso do Access Context Manager.

Console

  1. Acesse a página IAM e administrador no Console do Cloud.

    Acessar IAM e administrador

  2. Clique em Adicionar e configure o seguinte:

    • Novos membros: especifique o usuário ou grupo em que você quer conceder as permissões.
    • Selecione um papel: selecione Access Context Manager > Administrador de vinculação de acesso à nuvem.
  3. Clique em Save.

gcloud

  1. Verifique se você está autenticado com privilégios suficientes para adicionar permissões do IAM no nível da organização. Você precisa, no mínimo, do papel Administrador da organização.

    Depois de confirmar que você tem as permissões certas, faça login com:

    gcloud auth login
    
  2. Atribua o papel GcpAccessAdmin executando o seguinte comando:

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID é o ID da organização. Se você ainda não tiver o ID da organização, use o seguinte comando para encontrá-lo:

       gcloud organizations list
      
    • EMAIL é o endereço de e-mail da pessoa ou do grupo a que você quer conceder o papel.

Como criar uma vinculação de acesso

Agora é possível criar uma vinculação de acesso, que é um mapeamento entre o grupo de usuários criado anteriormente e o nível de acesso do Access Context Manager definido para acessar o Console do Cloud e as APIs do Google Cloud.

Console

  1. Acesse a página do BeyondCorp Enterprise no Console do Cloud.

    Acesse o BeyondCorp Enterprise

  2. Escolha uma organização e clique em Selecionar.

  3. Clique em Gerenciar acesso para escolher quais grupos de usuários terão acesso.

  4. Clique em Adicionar e configure o seguinte:

    • Grupos de participantes: especifique o grupo a que você quer conceder acesso. Apenas grupos que ainda não estão vinculados a um nível de acesso estão disponíveis para seleção.
    • Selecionar níveis de acesso: escolha o nível de acesso a ser aplicado ao grupo.
  5. Clique em Save.

gcloud

Consulte o SDK do Cloud para mais informações sobre este e outros comandos gcloud access-context-manager cloud-bindings, inclusive outras opções de sinalização.

gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID
  • Substitua GROUP_ID pelo ID do grupo de usuários criado anteriormente.

  • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager de quando você criou o nível de acesso.

  • Se a propriedade access-context-manager/organization não tiver sido predefinida, substitua ORG_ID na sinalização --organization opcional pelo ID da organização que você usou ao criar o papel GcpAccessAdmin.

API

  1. Crie um corpo de solicitação:

    {
      "groupKey": "GROUP_ID",
      "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    • Substitua GROUP_ID pelo ID do grupo de usuários criado anteriormente.

    • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager de quando você criou o nível de acesso.

  2. Crie a vinculação de acesso chamando o endpoint gcpUserAccessBindings, substituindo ORG_ID pelo ID da organização que você usou ao criar o papel GcpAccessAdmin:

    POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    Isso retorna um recurso GcpUserAccessBinding como uma resposta, que é formatada como:

    {
      // Unique name for the access binding, in the form
      // "organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID"
      name: string,
    
      // Unique Group ID.
      group_key: string,
    
      // The access level that users of the group must satisfy, in the form
      // "accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME"
      access_levels: [ string ]
    }
    

Como verificar o sucesso

Depois que as vinculações de acesso tiverem sido configuradas para um grupo de usuários, o acesso ao Console do Cloud e às APIs do Google Cloud deverá ser controlado com base na satisfação do nível de acesso vinculado.

É possível verificar se a vinculação foi criada com sucesso, editá-la ou excluí-la.

Console

Depois que você criar uma vinculação de acesso, todas as vinculações de acesso da organização serão exibidas e poderão ser editadas ou excluídas conforme necessário.

gcloud

  • Para visualizar todas as vinculações de acesso de uma organização:

    gcloud access-context-manager cloud-bindings list \
        --organization ORG_ID
    

    Se a propriedade access-context-manager/organization não tiver sido predefinida, substitua ORG_ID na sinalização --organization opcional pelo ID da organização que você usou ao criar o papel GcpAccessAdmin.

  • Para modificar uma vinculação de acesso, como alterar o nível de acesso:

    gcloud access-context-manager cloud-bindings update \
        --binding ACCESS_BINDING \
        --level ACCESS_LEVEL
    

    Substitua ACCESS_BINDING por organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME, em que ORG_ID é o ID da organização que você usou ao criar o papel GcpAccessAdmin e ACCESS_BINDING_NAME é a string única retornada para o identificador name quando a vinculação de acesso foi criada.

    O valor de ACCESS_LEVEL precisa ser formatado como era quando a vinculação foi criada para o recurso.

  • Para excluir uma vinculação de acesso específica:

    gcloud access-context-manager cloud-bindings delete \
        --binding ACCESS_BINDING
    

    Formate o valor de ACCESS_BINDING da mesma maneira descrita para modificar uma vinculação de acesso.

API

  • Para visualizar todas as vinculações de acesso de uma organização:

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    Isso retorna uma lista de recursos GcpUserAccessBinding.

  • Para modificar uma vinculação de acesso, como alterar o nível de acesso, crie um corpo de solicitação que defina a alteração e, em seguida, chame o endpoint com o nome do recurso:

    {
      "accessLevels": [ "ACCESS_LEVEL" ]
    }
    

    Formate o valor de ACCESS_LEVEL como estava quando a vinculação foi criada para o recurso.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels
    

    Substitua ACCESS_BINDING_NAME pela string exclusiva retornada para o identificador name quando a vinculação de acesso foi criada.

  • Para excluir um recurso GcpUserAccessBinding específico, chame o endpoint com o nome do recurso:

    DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
    

    Substitua ACCESS_BINDING_NAME pela string exclusiva retornada para o identificador name quando a vinculação de acesso foi criada.

Perguntas frequentes

  • Quanto tempo leva para uma vinculação de acesso recém-criada entrar em vigor?

    Isso pode levar até 24 horas.

  • O que acontecerá se eu excluir um grupo com uma vinculação de acesso?

    O grupo e a vinculação são excluídos, e todos os usuários do grupo terão acesso permitido.

  • O que acontecerá se eu excluir o nível de acesso usado em uma vinculação de acesso?

    O nível de acesso não poderá ser atendido, e todos os usuários do grupo vinculado serão negados.

  • O que acontece quando um usuário está em vários grupos que têm vinculações de acesso?

    O usuário só precisa atender ao nível de acesso de um desses grupos para conseguir acesso.

  • E os usuários que não fazem parte da minha organização?

    As pessoas que não fazem parte da sua organização, mesmo que você as tenha adicionado ao grupo de usuários que precisam ser vinculadas por restrições de reconhecimento de contexto e não estão sujeitas à vinculação de acesso.

A seguir