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.