Implementar o acesso baseado em certificado para um grupo de usuários

Nesta página, explicamos como aplicar o acesso baseado em certificado (CBA) usando políticas de Acesso Baseado no Contexto que são baseadas em um grupo de usuários.

É possível restringir o acesso a todos os serviços Google Cloud vinculando um nível de acesso da CBA a um grupo de usuários que você quer restringir. Essa restrição se aplica a todos os aplicativos cliente que chamam as APIs Google Cloud.

Se quiser, aplique as restrições a aplicativos cliente específicos ou exclua alguns deles. Os aplicativos incluem apps de terceiros e próprios criados pelo Google, como o Cloud Console para o console Google Cloud e o Google Cloud SDK para o Google Cloud CLI.

Antes de começar

Verifique se você criou um nível de acesso de CBA que exige certificados ao determinar o acesso aos recursos.

Criar um grupo de usuários

Crie um grupo de usuários com os membros que precisam receber acesso com base no nível de acesso da CBA.

Atribuir a função de administrador de vinculação de acesso à nuvem

Atribua a função Administrador de vinculação de acesso à nuvem ao grupo de usuários.

Verifique se você tem autorização com privilégios suficientes para adicionar permissões do IAM no nível da organização. No mínimo, você precisa dos papéis Administrador da organização e Administrador de vinculação de acesso ao Cloud.

Console

  1. No console, acesse a página IAM.

    Acessar o IAM

  2. Na guia Permissões, clique em Conceder acesso e configure o seguinte:

    1. Novos principais: especifique o grupo a que você quer conceder a função.
    2. Na opção Selecionar um papel, escolha Access Context Manager > Administrador de vinculação de acesso à nuvem.
    3. Clique em Salvar.

gcloud

  1. Faça login:

    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.

Vincular um nível de acesso da CBA a um grupo de usuários

Nessa opção de vinculação, o nível de acesso da CBA se aplica a todos os aplicativos cliente do grupo de usuários especificado.

  1. No console, acesse a página Chrome Enterprise Premium.

    Acessar o Chrome Enterprise Premium

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

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

  4. Clique em Adicionar e configure o seguinte:

    1. Grupos de participantes: especifique o grupo a que você quer conceder acesso. Só é possível selecionar grupos que ainda não estão vinculados a um nível de acesso.
    2. Selecionar níveis de acesso: escolha o nível de acesso da CBA a ser aplicado ao grupo.
    3. Clique em Salvar.

Vincular um nível de acesso da CBA a um grupo de usuários e aplicativos específicos

Em alguns casos de uso, como aplicativos que aceitam certificados de cliente, vincular um nível de acesso da CBA a um grupo de usuários pode ser muito amplo. Use essa opção para aplicar níveis de acesso da CBA a aplicativos que aceitam certificados de cliente.

O exemplo a seguir vincula um nível de acesso da CBA ao console Google Cloud , à CLI gcloud e ao aplicativo OAuth de um usuário.

  1. Faça login na CLI gcloud.

    gcloud auth application-default login
    
  2. Crie um arquivo policy_file.json.

    É possível especificar aplicativos usando o ID do cliente OAuth deles. Para especificar aplicativos do Google, use o nome do aplicativo, como Cloud Console para o consoleGoogle Cloud . Somente o console Google Cloud e os aplicativos do SDK Google Cloud são compatíveis.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Cloud Console
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Google Cloud SDK
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_1
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    

    Substitua:

    • CLIENT_ID_1: o ID do cliente OAuth.
    • CBA_ACCESS_LEVEL: um nome de nível de acesso da CBA no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
  3. Crie a vinculação de nível de acesso da CBA.

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../policy_file.json

    Substitua GROUP_KEY pelo grupo do Acesso baseado no contexto e ORG_ID pelo ID da organização.

    Se você não tiver o GROUP_KEY, recupere-o chamando o método get no recurso de grupo.

  4. (Opcional) Atualize uma vinculação de nível de acesso.

    gcloud access-context-manager cloud-bindings update \
      --binding='BINDING_NAME' \
      --binding-file=.../policy_file.json

    Substitua BINDING_NAME pelo nome da vinculação gerado automaticamente quando ela foi criada.

Isentar um aplicativo de uma vinculação

Outra maneira de aplicar um nível de acesso de CBA sem bloquear aplicativos cliente que não são compatíveis com certificados de cliente é isentar esses aplicativos da política.

As etapas a seguir pressupõem que você já criou um nível de acesso de CBA que exige certificados ao determinar o acesso a recursos.

  1. Crie um nível de acesso de exceção usando um dos seguintes métodos.

  2. Crie um arquivo exemption_file.json.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: APPLICATION_NAME_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    

    Substitua:

    • CLIENT_ID_2: o ID do cliente OAuth.
    • APPLICATION_NAME_2: o nome do aplicativo.
    • EXEMPT_ACCESS_LEVEL: um nome de nível de acesso de isenção no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
  3. Crie a política de vinculação de isenção.

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../exemption_file.json

    Substitua GROUP_KEY pelo grupo do Acesso baseado no contexto e ORG_ID pelo ID da organização.

    Se você não tiver o GROUP_KEY, recupere-o chamando o método get no recurso de grupo.