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 baseado no 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. Essa restrição se aplica a todos os aplicativos clientes que chamam as APIs do Google Cloud. Os aplicativos incluem aplicativos próprios criados pelo Google, como o console do Google Cloud e a CLI do Google Cloud, e aplicativos de terceiros. Também é possível aplicar as restrições a aplicativos de cliente específicos ou eximir aplicativos específicos.

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 que contenha os membros que devem 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 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 papel, escolha Access Context Manager > Administrador de vinculação de acesso ao Cloud.
    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 devem ter 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 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, à 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. Para especificar o Google aplicativos, use o nome do aplicativo, como Cloud Console para os console do Google Cloud. Apenas o console do Google Cloud e o SDK Google Cloud Os aplicativos do Google são compatíveis.

    {
        "groupKey": "{GROUP_KEY}",
        "restricted_client_applications": [
            {"name": "Cloud Console"},
            {"name": "Google Cloud SDK"},
            {"client_id": "{CLIENT_ID}"}
        ],
        "accessLevels": [ "{LEVEL}" ],
    }
    
  3. Crie a vinculação de nível de acesso da CBA.

    curl -X POST \
    -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project:PROJECT_ID" \
    -d @policy_file.json \
    https://accesscontextmanager.googleapis.com/v1/organizations/ORG-ID/gcpUserAccessBindings

    em que PROJECT_ID é o ID do projeto do Google Cloud e ORG-ID é o ID da sua organização.

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

    $ curl -X PATCH \
    -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project:PROJECT_ID" \
    -d @policy_file.json \
    https://accesscontextmanager.googleapis.com/v1/POLICY_NAME?update_mask=restricted_client_applications

    em que PROJECT_ID é o ID do projeto do Google Cloud e POLICY_NAME é o nome da sua política de acesso.

Impedir que um aplicativo seja vinculado

Outra maneira de aplicar um nível de acesso CBA sem bloquear aplicativos clientes que não oferecem suporte a certificados do cliente é isentar esses aplicativos do 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 métodos a seguir.

  2. Crie um arquivo exemption_file.json.

    Você deve selecionar um grupo diferente do usado na Vincule um nível de acesso da CBA a um grupo de usuários. porque só é possível aplicar uma vinculação a um grupo.

    {
        "groupKey": "{GROUP_KEY}",
        "restricted_client_applications": [
            {"client_id": "{CLIENT_ID}"}
        ],
        "accessLevels": [ "{LEVEL}" ],
    }
    
  3. Crie a política de vinculação de isenção.

    $ curl -X POST \
    -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project:PROJECT_ID" \
    -d @exemption_file.json \
    https://accesscontextmanager.googleapis.com/v1/organizations/ORG-ID/gcpUserAccessBindings

    em que PROJECT_ID é o ID do projeto do Google Cloud e ORG-ID é o ID da sua organização.