As configurações de regra de entrada de acesso baseado no contexto permitem acessar recursos de acordo com atributos do cliente, como origem de rede (endereço IP ou rede VPC), tipo de identidade (conta de serviço ou usuário), identidade e dados do dispositivo. O acesso é definido por regras de entrada.
Consulte Regras de entrada e saída e tenha uma visão geral sobre o assunto.
Para saber como aplicar as políticas de regra de entrada e saída, consulte Configurar políticas de entrada e saída.
Exemplos de configuração de casos de uso de acesso baseado no contexto
Esta seção contém os seguintes exemplos de acesso baseado no contexto:
- Permitir que usuários humanos acessem o BigQuery pela internet e somente com contas de serviço específicas de um determinado intervalo de IP
- Permitir que os funcionários consultem o BigQuery em dispositivos confiáveis pela internet e em uma conta de serviço específica para carregar dados de modo privado em um bucket do Cloud Storage (dados de origem)
Permitir que usuários humanos acessem o BigQuery pela internet e somente com contas de serviço específicas de um determinado intervalo de IP

Suponha que você tenha definido o seguinte perímetro, encontrado listando o perímetro com a gcloud:
name: accessPolicies/222/servicePerimeters/Example
status:
resources:
- projects/111
restrictedServices:
- bigquery.googleapis.com
- storage.googleapis.com
vpcAccessibleServices:
enableRestriction: true
allowedServices:
- RESTRICTED_SERVICES
title: Example
Também presumimos que um nível de acesso chamado CorpDatacenters tenha sido definido. O CorpDatacenters, neste exemplo, é um intervalo de permissões de IPs de data centers corporativos acessados por contas de serviço permitidas.
Veja a seguir a política direcional para permitir todos os humanos e um conjunto específico de contas de serviço, limitadas a um determinado conjunto de IPs (definido por um nível de acesso):
echo """
- ingressFrom:
identities:
- serviceAccount:my-sa@my-project.iam.gserviceaccount.com
sources:
- accessLevel: accessPolicies/222/accessLevels/CorpDatacenters
ingressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- method: \"*\"
resources:
- \"*\"
- ingressFrom:
identityType: ANY_USER_ACCOUNT
sources:
- accessLevel: \"*\"
ingressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- method: \"*\"
resources:
- \"*\"
""" > ingress.yaml
Aplique as regras de entrada executando o seguinte comando:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
Permitir que os funcionários consultem o BigQuery e carreguem dados de maneira particular em um bucket do Cloud Storage

Suponha que você tenha definido o seguinte perímetro, encontrado listando o perímetro com a gcloud:
name: accessPolicies/222/servicePerimeters/Example
status:
resources:
- projects/111
restrictedServices:
- bigquery.googleapis.com
- storage.googleapis.com
vpcAccessibleServices:
enableRestriction: true
allowedServices:
- RESTRICTED_SERVICES
title: Example
Esta é a política direcional para permitir que humanos acessem visualizações do BigQuery a partir de dispositivos confiáveis (usando um nível de acesso) e uma conta de serviço particular específica para acessar o Cloud Storage de uma rede VPC autorizada:
echo """
- ingressFrom:
identities:
- serviceAccount:my-sa@my-project.iam.gserviceaccount.com
sources:
- resource: projects/111
ingressTo:
operations:
- serviceName: storage.googleapis.com
methodSelectors:
- method: google.storage.Write
- method: google.storage.objects.create
resources:
- \"*\"
- ingressFrom:
identityType: ANY_SERVICE_ACCOUNT
sources:
- resource: //compute.googleapis.com/projects/my-network-project/global/networks/top-tier-vpc-network
ingressTo:
operations:
- serviceName: storage.googleapis.com
methodSelectors:
- method: google.storage.Write
- method: google.storage.objects.create
resources:
- \"*\"
- ingressFrom:
identityType: ANY_USER_ACCOUNT
sources:
- accessLevel: accessPolicies/222/accessLevels/TrustedDevices
ingressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- permission: bigquery.tables.getData
resources:
- \"*\"
""" > ingress.yaml
Aplique as regras de entrada executando o seguinte comando:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
Para informações sobre as limitações de redes VPC ao usar redes VPC em perímetros de serviço, consulte Limitações de rede VPC.