VPC Service Controls para o BigQuery
Esta página explica como melhorar a segurança em torno dos recursos do BigQuery através da criação de perímetros com os VPC Service Controls. Estes perímetros restringem o acesso ao BigQuery e a partir do BigQuery, e são independentes dos controlos de Identity and Access Management (IAM). São úteis nos seguintes exemplos de utilização:
- Impedir a fuga de dados restringindo o acesso a recursos, exceto os especificamente permitidos nas regras de entrada e saída.
- Carregar dados de forma segura para o BigQuery a partir de origens de terceiros ou Google Cloud serviços, como o Cloud Storage.
- Controlar a exportação de dados do BigQuery para o Cloud Storage ou outros destinos.
Para mais informações, consulte a vista geral do VPC Service Controls.
Antes de começar
- Para obter as autorizações necessárias para configurar perímetros de serviço, consulte o artigo Controlo de acesso com o IAM para os VPC Service Controls.
- Tem de ter uma política de acesso para a sua organização. Para mais informações, consulte o artigo Crie uma política de acesso.
Crie o perímetro dos VPC Service Controls
O exemplo seguinte mostra como criar um perímetro do VPC Service Controls que limita o intervalo de endereços IP externos que podem aceder a um projeto do BigQuery.
Crie um nível de acesso que permita apenas o acesso a um intervalo especificado de endereços IP, por exemplo, os que se encontram numa rede corporativa. Para o criar, use o comando
gcloud access-context-manager levels create
:echo """ - ipSubnetworks: - 162.222.181.0/24 - 2001:db8::/48 """ > level.yaml gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title="TITLE" --basic-level-spec=level.yaml
Substitua o seguinte:
ACCESS_LEVEL_NAME
: o ID do nível de acessoTITLE
: o título legível para humanos do perímetro de serviço
Para mais informações sobre a criação de níveis de acesso, consulte as implementações de exemplo.
Proteja o recurso do BigQuery criando ou atualizando um perímetro. Os exemplos seguintes protegem um projeto. Para outros exemplos de utilização, como a proteção da transferência de dados de um contentor do Cloud Storage noutro projeto, consulte os exemplos de utilização.
Crie um perímetro
Para criar um novo perímetro para proteger o projeto do BigQuery, use o comando
gcloud access-context-manager perimeters create
:echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAME
Substitua o seguinte:
POLICY_NAME
: o ID da política de acessoACCESS_LEVEL_NAME
: o ID do nível de acessoPERIMETER
: o ID do perímetroTITLE
: o título curto e legível para humanos do perímetro de serviçoBIGQUERY_PROJECT_NUMBER
: o ID do projeto do BigQueryPOLICY_NAME
: o ID da política de acesso
Atualize o perímetro
Para atualizar um perímetro existente, use o comando
gcloud access-context-manager perimeters update
:gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yaml
Substitua
BIGQUERY_PERIMETER
pelo ID do perímetro que protege o recurso do BigQuery.
Teste o perímetro
Teste o perímetro dos VPC Service Controls antes de o aplicar. Para mais informações, consulte os artigos Modo de teste para perímetros de serviço e Usar o modo de teste para testar políticas de entrada ou saída.
Exemplos de utilização
Os seguintes exemplos de casos de utilização mostram como proteger os dados que entram e saem do BigQuery com os VPC Service Controls.
Consultar dados de tabelas externas a partir de um contentor do Cloud Storage noutro projeto
Os exemplos seguintes mostram como permitir seletivamente a comunicação entre os projetos do BigQuery e do Cloud Storage quando estão separados por perímetros.
Permita que o projeto do BigQuery aceda ao projeto do Cloud Storage atualizando as regras de saída para o perímetro em torno do projeto do Cloud Storage:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/BIGQUERY_PROJECT_NUMBER """ > egress.yaml gcloud access-context-manager perimeters update CLOUD_STORAGE_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress.yaml
Substitua o seguinte:
BIGQUERY_PROJECT_NUMBER
: o ID do projeto do BigQueryCLOUD_STORAGE_PERIMETER
: o ID do perímetro que protege os recursos do Cloud StoragePOLICY_NAME
: o ID da política de acesso
Permita que o projeto do Cloud Storage aceda ao projeto do BigQuery atualizando as regras de saída para o perímetro em torno do projeto do BigQuery:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/CLOUD_STORAGE_PROJECT_NUMBER """ > egress1.yaml gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress1.yaml
Substitua o seguinte:
CLOUD_STORAGE_PROJECT_NUMBER
: o ID do projeto do Cloud StoragePERIMETER
: o ID do perímetroPOLICY_NAME
: o ID da política de acesso
Opcional: se o perímetro que protege o projeto do BigQuery incluir o
storage.googleapis.com
como um serviço restrito, tem de atualizar a regra de entrada:echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAME
Importe e exporte dados do BigQuery Omni
Como camada de defesa adicional, pode usar perímetros dos VPC Service Controls para restringir o acesso entre o BigQuery Omni e um serviço de nuvem externo. Para mais informações e exemplos, consulte a configuração do VPC Service Controls quando cria uma tabela do BigLake do Azure Blob Storage.
O que se segue?
- Saiba mais acerca dos VPC Service Controls no Analytics Hub.
- Saiba como restringir o acesso ao BigQuery Omni com um serviço de nuvem externo.
- Compreenda os riscos e a mitigação através dos VPC Service Controls.
- Saiba mais acerca do suporte e das limitações dos VPC Service Controls no BigQuery.
- Resolva problemas comuns do BigQuery e dos VPC Service Controls.