Este documento descreve como usar o acesso baseado no contexto para proteger diferentes tipos de apps e recursos. O acesso baseado no contexto é uma abordagem de segurança em que você controla o acesso dos usuários com base na força da autenticação, na postura do dispositivo, no local da rede, na localização geográfica ou em outros atributos. Essa abordagem vai além do uso de identidades básicas de usuário para acesso de segurança e pode ajudar a implementar um modelo de segurança de confiança zero para melhorar sua postura geral de segurança. Para detalhes sobre as práticas recomendadas, consulte Práticas recomendadas para proteger apps e recursos usando o acesso baseado no contexto.
Para ajudar a proteger seus apps e Google Cloud recursos, você pode definir controles de acesso detalhados com base em uma variedade e combinação de fatores contextuais. Use o Access Context Manager para definir políticas de acesso, que contêm níveis de acesso e parâmetros de serviço.
Este documento é destinado a qualquer profissional de segurança responsável pelo Identity and Access Management (IAM) e pela segurança de Google Cloud recursos e apps. Este documento pressupõe que você já esteja familiarizado com o Access Context Manager, Google Cloud, e o gerenciamento do IAM.
Níveis de acesso
Os níveis de acesso permitem definir um conjunto de requisitos que os usuários e os dispositivos precisam atender para atingir um determinado nível de confiança.
Por exemplo, você pode usar o Access Context Manager para configurar os seguintes níveis de acesso para sua organização:
- Básico: um conjunto básico de requisitos que você considera o nível mínimo.
- Médio: um conjunto mais rigoroso de requisitos que você espera que os funcionários e os dispositivos corporativos atendam. Esse nível de acesso pode excluir usuários colaboradores terceirizados e dispositivos não corporativos.
- Alto: requisitos rigorosos que apenas alguns funcionários e dispositivos atendem.
Um nível de acesso por si só não tem efeito imediato nos usuários ou dispositivos. O nível de acesso especifica requisitos, mas não define os usuários, apps ou recursos em que esses requisitos precisam ser aplicados. Um nível de acesso é como uma configuração reutilizável que você pode consultar ao configurar o acesso a apps ou recursos específicos.
Google Cloud permite usar níveis de acesso para vários tipos diferentes de apps ou recursos, incluindo os seguintes, que são descritos neste documento:
- Google Workspace e outros apps e serviços fora do Google Cloud
- O Google Cloud console e as Google Cloud APIs
- Perímetros de serviço de nuvem privada virtual (VPC)
- Identity-Aware Proxy (IAP) para acesso SSH e RDP
- IAP para apps da Web
Apps e recursos
As seções a seguir descrevem como aplicar níveis de acesso aos diferentes tipos de apps e recursos e como os processos variam entre os diferentes tipos.
Google Workspace e outros apps e serviços fora do Google Cloud
Os apps e serviços fora do Google Cloud que oferecem suporte ao acesso baseado no contexto incluem o seguinte:
- Google Admin Console
- Apps do Google Workspace, como Gmail, Google Meet e Google Agenda
- Outros apps do Google, como o Gemini ou o Data Studio
- Apps SAML personalizados
Para restringir o acesso ao Google Workspace e a apps e serviços fora de Google Cloud, configure o acesso baseado no contexto para cada serviço ou app individualmente no Admin Console. No Admin Console, faça o seguinte:
Defina o escopo em que você quer aplicar um nível de acesso. Um escopo é uma combinação do seguinte:
- Um serviço específico ou app SAML para proteger.
- Uma unidade organizacional (UO) ou um grupo que contém usuários relevantes.
Selecione o nível de acesso a ser aplicado ao escopo selecionado.
Ao atribuir um nível de acesso, também é possível mudar as configurações dele. Você pode especificar que o nível de acesso só será aplicado quando os usuários acessarem o app da Web diretamente. Ou, você pode especificar que o nível também será aplicado quando apps para dispositivos móveis e outros apps acessarem a API. Para mais detalhes, consulte Comportamento do app com base nas configurações de nível de acesso em "Atribuir níveis de acesso baseado no contexto a apps".
Pode haver mais de uma atribuição aplicável a um usuário e app específicos. Por exemplo, um usuário pode ser membro da UO Funcionários e da equipe all-apac. A UO e o grupo respectivos podem ter níveis de acesso diferentes atribuídos a eles. Nesse caso, o Cloud Identity e o Google Workspace aplicam apenas uma das atribuições, que é a de maior prioridade:
- As atribuições baseadas em grupo têm uma prioridade maior do que as atribuições baseadas em UO.
- Nos grupos, é possível personalizar a prioridade relativa deles.
- Nas UOs, a UO raiz tem a menor prioridade relativa.
O Cloud Identity e o Google Workspace permitem revisar e analisar eventos de acesso baseado no contexto no registro de acesso baseado no contexto.
O Google Cloud console e as Google Cloud APIs
Você pode configurar o acesso baseado no contexto ao Google Cloud console e às Google Cloud APIs usando vinculações de acesso.
Google Cloud As APIs usam o OAuth 2.0 para autenticação. Para usar uma Google Cloud API, os usuários precisam de um token de acesso OAuth válido emitido pelo Google, e o token precisa ser emitido para um dos Google Cloud escopos do OAuth. As vinculações de acesso restringem a capacidade dos usuários de adquirir esses tokens de acesso. Como resultado, as vinculações de acesso limitam o acesso ao Google Cloud console e a todos os apps OAuth que usam Google Cloud escopos do OAuth, como os seguintes:
- A CLI gcloud
- Ferramentas de terceiros, como o Terraform
- Apps OAuth que você criou e que usam um Google Cloud escopo do OAuth
Uma vinculação de acesso vincula um grupo a um nível de acesso. Cada grupo pode ter apenas uma vinculação de acesso. Cada vinculação de acesso pode definir as seguintes configurações:
- Uma lista
scopedAccessSettingsque atribui níveis de acesso a apps OAuth individuais. - Um nível de acesso padrão.
Se uma vinculação de acesso especificar uma configuração de acesso com escopo e um nível de acesso padrão, os dois níveis de acesso serão combinados usando a semântica OR.
Em seguida, um usuário precisa atender apenas a um dos níveis de acesso para acessar o app OAuth.
Uma vinculação de acesso se aplica a membros diretos e indiretos do grupo. Se um usuário for membro de vários grupos, várias vinculações de acesso poderão ser aplicadas a ele, o que pode resultar em vários níveis de acesso. Nesse caso, os níveis de acesso também são combinados usando a semântica OR, o que significa que o usuário precisa atender apenas a um dos níveis de acesso.
Perímetros de serviço da VPC
Ao criar um perímetro de serviço da VPC, você especifica uma lista de serviços restritos. Os serviços restritos podem ser acessados de dentro do perímetro de serviço, mas, por padrão, não podem ser acessados de fora do perímetro de serviço.
Para permitir o acesso de fora do perímetro de serviço, use regras de entrada. As regras de entrada permitem especificar as condições em que você quer permitir o acesso externo. Você pode usar níveis de acesso para permitir que uma regra de entrada aplique o acesso baseado no contexto.
Um perímetro de serviço da VPC pode ter várias regras de entrada. Como resultado, mais de uma regra de entrada pode ser aplicada a um usuário e app específicos, e essas regras de entrada podem exigir níveis de acesso diferentes. Nesse caso, os níveis de acesso são avaliados usando a semântica OR, e o usuário precisa atender apenas a um dos níveis de acesso.
É possível combinar vinculações de acesso com regras de entrada do perímetro de serviço da VPC. Se as vinculações de acesso e as regras de entrada especificarem níveis de acesso diferentes para um usuário e app específicos, os níveis serão combinados usando a semântica AND. Nesse caso, o usuário precisa atender aos dois níveis de acesso.
Para revisar e analisar as tentativas de acesso a recursos em um perímetro de serviço da VPC, use os registros de auditoria do VPC Service Controls ou o analisador de violações do VPC Service Controls.
Acesso SSH e RDP a VMs
Você pode configurar o acesso baseado no contexto para acesso SSH e RDP a VMs usando o encaminhamento de TCP do IAP.
O encaminhamento de TCP do IAP oferece suporte a vinculações de acesso e regras de entrada do perímetro de serviço da VPC. As vinculações de acesso para o Google Cloud console e as APIs do Cloud são aplicadas automaticamente ao encaminhamento de TCP do IAP.
Se o perímetro de serviço incluir o
iaptunnel.googleapis.com serviço
como um serviço restrito, as regras de entrada
serão aplicadas automaticamente ao encaminhamento de TCP do IAP. Para detalhes sobre as melhores
práticas, consulte
Incluir o encaminhamento de TCP do IAP como um serviço restrito.
Também é possível configurar o acesso baseado no contexto usando condições do IAM. Você pode usar condições do IAM como uma alternativa a vinculações de acesso e regras de entrada do perímetro de serviço da VPC ou usar todas elas juntas.
Conceda a um usuário ou grupo o papel Usuário do túnel protegido pelo IAP (
roles/iap.tunnelResourceAccessor). Em seguida, na vinculação de papel, adicione uma expressão de condição do IAM que exige que o usuário atenda a um determinado nível de acesso. Por exemplo, a expressão pode ser semelhante a esta:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levelsOpcionalmente, você pode personalizar a condição do IAM para exigir vários níveis de acesso ou incluir outras verificações.
Um usuário e app específicos podem estar sujeitos a uma vinculação de acesso, uma regra de entrada e uma condição do IAM quando o usuário e o app acessam o encaminhamento de TCP do IAP. Nesse cenário, os níveis de acesso são combinados usando a semântica AND, e o usuário precisa atender a todos os níveis de acesso.
Para revisar e analisar as tentativas de acesso ao encaminhamento de TCP do IAP, você deve ativar os registros de auditoria de acesso a dados para o IAP.
Apps da Web
Você pode configurar o acesso baseado no contexto para apps da Web usando o IAP.
O IAP para apps da Web é diferente do encaminhamento de TCP do IAP:
- As vinculações de acesso não se aplicam a apps da Web configurados com o IAP porque o app OAuth usado pelo IAP não usa nenhum Google Cloud escopo do OAuth.
- As regras de entrada do perímetro de serviço da VPC não se aplicam a apps da Web que estão configurados com o IAP porque o IAP não é uma Google Cloud API e não pode ser configurado como um serviço restrito.
Para configurar o acesso baseado no contexto para apps da Web usando o IAP, use condições do IAM:
Conceda a um usuário ou grupo o papel Usuário do app da Web protegido pelo IAP (
roles/iap.httpsResourceAccessor). Em seguida, na vinculação de papel, adicione uma expressão de condição do IAM que exige que o usuário atenda a um determinado nível de acesso. Por exemplo, a expressão pode ser semelhante a esta:"accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levelsOpcionalmente, você pode personalizar a condição do IAM para exigir vários níveis de acesso ou incluir outras verificações.
Para revisar e analisar as tentativas de acesso a apps da Web configurados com o IAP, você deve ativar os registros de auditoria de acesso a dados para o IAP.
A seguir
- Práticas recomendadas para proteger apps e recursos usando o acesso baseado no contexto.
- Para mais arquiteturas de referência, diagramas e práticas recomendadas, confira a Central de arquitetura do Cloud.
Colaboradores
Autor: Johannes Passing | Arquiteto de soluções na nuvem
Outro colaborador: Ido Flatow | Arquiteto de soluções do Cloud