As configurações de regra de entrada de acesso baseado no contexto permitem o acesso a recursos com base em 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.
Para uma visão geral das regras de entrada e saída, consulte Regras de entrada e saída.
Para saber como aplicar políticas de regra de entrada e saída, consulte Como 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 acesso a 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 acesso a 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.