Acesso baseado no contexto com regras de entrada

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:

  1. 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
  2. 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

Entrada de usuários e redes reconhecidos

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

Entrada de dispositivos e redes reconhecidos

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.