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

Nesta página, explicamos como aplicar o acesso baseado em certificado (CBA, na sigla em inglês) usando políticas de acesso com reconhecimento de contexto baseadas em um grupo de usuários.

É possível restringir o acesso a todos os serviços do 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 clientes que chamam as APIs do Google Cloud.

Você também pode aplicar as restrições a aplicativos de cliente específicos ou eximir aplicativos específicos. Os aplicativos incluem aplicativos de terceiros e próprios criados pelo Google, como Cloud Console para o console Google Cloud e 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 a recursos.

Criar um grupo de usuários

Crie um grupo de usuários com os membros que vão receber acesso com base no nível de acesso do CBA.

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

Atribua a função Administrador de vinculação de acesso ao Cloud 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. Você precisa ter, no mínimo, os 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 o papel.
    2. Na opção Selecionar um papel, selecione Access Context Manager > Administrador de vinculação de acesso à nuvem.
    3. Clique em Salvar.

gcloud

  1. Fazer 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 de cliente do grupo de usuários especificado.

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

    Acesse 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 estejam vinculados a um nível de acesso.
    2. Selecionar níveis de acesso: escolha o nível de acesso do CBA que será aplicado ao grupo.
    3. Clique em Salvar.

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

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

O exemplo a seguir vincula um nível de acesso CBA ao console do Google Cloud , a CLI gcloud e o 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. Para especificar aplicativos do Google, use o nome do aplicativo, como Cloud Console para o consoledo Google Cloud . Somente o console do Google Cloud e os aplicativos do Google Cloud SDK do Google são aceitos.

    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 de 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 de acesso com reconhecimento de contexto e ORG_ID pelo ID da organização.

    Se o GROUP_KEY não estiver disponível, você poderá recuperá-lo chamando o método get no recurso de grupo.

  4. (Opcional) Atualizar 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 de vinculação gerado automaticamente quando a vinculação foi criada.

Impedir que um aplicativo seja vinculado

Outra maneira de aplicar um nível de acesso de CBA sem bloquear aplicativos clientes que não oferecem suporte a certificados do 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 isençã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 de acesso com reconhecimento de contexto e ORG_ID pelo ID da organização.

    Se você não tiver o GROUP_KEY disponível, poderá recuperá-lo chamando o método get no recurso de grupo.