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 intensidade da autenticação, na postura do dispositivo, na localização 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 você a implementar um modelo de segurança de confiança zero para melhorar sua postura geral de segurança. Para mais detalhes sobre as práticas recomendadas, consulte Práticas recomendadas para proteger apps e recursos usando o Acesso sensível ao contexto.
Para ajudar a proteger seus apps e recursos do Google Cloud , você pode definir controles de acesso granulares com base em vários fatores contextuais e combinações deles. 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 profissionais de segurança responsáveis pelo gerenciamento de identidade e acesso (IAM) e pela segurança de recursos e apps do Google Cloud . Este documento pressupõe que você já conheça o Access Context Manager, Google Cloude o gerenciamento do IAM.
Níveis de acesso
Com os níveis de acesso, é possível definir um conjunto de requisitos que os usuários e os dispositivos precisam atender para alcançar um determinado nível de confiança.
Por exemplo, você pode usar o Access Context Manager para configurar os seguintes níveis de acesso na 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 dispositivos corporativos atendam. Esse nível de acesso pode excluir usuários da força de trabalho estendida e dispositivos não corporativos.
- Alto: requisitos rígidos 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 devem ser aplicados. Um nível de acesso é como uma parte reutilizável de configuração que você pode consultar ao configurar o acesso a apps ou recursos específicos.
Com oGoogle Cloud , você pode 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 console Google Cloud e as APIs Google Cloud
- Perímetros de serviço da nuvem privada virtual (VPC)
- Identity-Aware Proxy (IAP) para acesso por 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:
- Google Admin Console
- Apps do Google Workspace, como Gmail, Google Meet e Google Agenda
- Outros apps do Google, como o Gemini ou o Looker 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 dos seguintes itens:
- Um serviço ou app SAML específico 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, você também pode mudar as configurações dele. Você pode especificar que o nível de acesso só se aplica quando os usuários acessam o web app diretamente. Ou você pode especificar que o nível também se aplica quando apps para dispositivos móveis e outros apps acessam 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 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 prioridade maior do que as atribuições baseadas em UO.
- Dentro dos grupos, é possível personalizar a prioridade relativa.
- Dentro das UOs, a UO raiz tem a menor prioridade relativa.
Com o Cloud Identity e o Google Workspace, é possível analisar e revisar eventos de acesso baseado no contexto no registro de acesso baseado no contexto.
O console Google Cloud e as APIs Google Cloud
É possível configurar o acesso baseado no contexto ao console do Google Cloud e às APIs doGoogle Cloud usando vinculações de acesso.
As APIsGoogle Cloud usam o OAuth 2.0 para autenticação. Para usar uma API Google Cloud, 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. Como resultado, as vinculações de acesso limitam o acesso ao console do Google Cloud e a todos os apps OAuth que usam escopos do Google Cloud OAuth, como:
- A gcloud CLI
- Ferramentas de terceiros, como o Terraform
- Apps OAuth que você criou e que usam um escopo OAuth Google Cloud
Uma vinculação de acesso associa 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
scopedAccessSettings
que 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 serão combinados usando a semântica OR
.
Depois, o usuário precisa atender a apenas 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 a apenas 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 dele.
Para permitir o acesso de fora do perímetro de serviço, use regras de entrada. Com as regras de entrada, é possível especificar as condições em que você quer permitir o acesso externo. É possível 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 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 a apenas um deles.
É 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 um 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 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 às VMs
É possível configurar o acesso baseado no contexto para SSH e RDP às 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. Suas 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
serviço iaptunnel.googleapis.com
como um serviço restrito, as regras de entrada
serão aplicadas automaticamente ao encaminhamento de TCP do IAP. Para mais detalhes sobre as práticas recomendadas, consulte Incluir o encaminhamento TCP do IAP como um serviço restrito.
Também é possível configurar o acesso baseado no contexto usando condições do IAM. É possível usar as condições do IAM como alternativa às vinculações de acesso e às 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 de 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 exija 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_levels
Se quiser, personalize a condição do IAM para exigir vários níveis de acesso ou incluir outras verificações.
Um usuário e um app específicos podem estar sujeitos a uma vinculação de acesso, uma regra de entrada e uma condição do IAM quando 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 analisar e revisar as tentativas de acesso ao encaminhamento TCP do IAP, é necessário ativar os registros de auditoria de acesso a dados para o IAP.
Apps da Web
É possível 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 IAP porque o app OAuth usado pela IAP não usa escopos do OAuth Google Cloud .
- As regras de entrada do perímetro de serviço da VPC não se aplicam a apps da Web configurados com a IAP porque ela não é uma API doGoogle Cloud e não pode ser configurada como um serviço restrito.
Para configurar o acesso baseado no contexto para apps da Web usando o IAP, você precisa usar as condições do IAM:
Conceda a um usuário ou grupo o papel de 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_levels
Se quiser, personalize a condição do IAM para exigir vários níveis de acesso ou incluir outras verificações.
Para analisar as tentativas de acesso a apps da Web configurados com o IAP, é necessário 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