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
No console, acesse a página IAM.
Na guia Permissões, clique em Conceder acesso e configure o seguinte:
- Novos principais: especifique o grupo a que você quer conceder a função.
- Na opção Selecionar um papel, escolha Access Context Manager > Administrador de vinculação de acesso à nuvem.
- Clique em Salvar.
gcloud
Faça login:
gcloud auth login
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.
No console, acesse a página Chrome Enterprise Premium.
Escolha uma organização e clique em Selecionar.
Clique em Gerenciar acesso para escolher os grupos de usuários que terão acesso.
Clique em Adicionar e configure o seguinte:
- 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.
- Selecionar níveis de acesso: escolha o nível de acesso da CBA a ser aplicado ao grupo.
- 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.
Faça login na CLI gcloud.
gcloud auth application-default login
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
.
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.(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.
Crie um nível de acesso de exceção usando um dos seguintes métodos.
- Nível de acesso personalizado:
forneça
true
como o valor na condição de expressão CEL. - Nível de acesso básico:
crie um
nível de acesso com base em intervalo de IP
fornecendo sub-redes IP
0.0.0.0/0
e::/0
, que correspondem a IPv4 e IPv6, respectivamente.
- Nível de acesso personalizado:
forneça
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
.
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.