Acesso baseado no contexto com regras de entrada

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:

  1. 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
  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 acesso a 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.