VPC Service Controls para BigQuery
Nesta página, explicamos como melhorar a segurança dos recursos do BigQuery criando perímetros com o VPC Service Controls. Esses perímetros restringem o acesso ao BigQuery e são independentes dos controles de Identity and Access Management (IAM). Eles são úteis nos seguintes casos de uso:
- Impedir a divulgação de dados restringindo o acesso a recursos, exceto aqueles especificamente permitidos nas regras de entrada e saída.
- Carregar dados com segurança no BigQuery de fontes de terceiros ou de serviços do Google Cloud, como o Cloud Storage.
- Controle a exportação de dados do BigQuery para o Cloud Storage ou outras origens.
Para mais informações, consulte a Visão geral do VPC Service Controls.
Antes de começar
- Para receber as permissões necessárias para configurar perímetros de serviço, consulte Controle de acesso com o IAM para o VPC Service Controls.
- Você precisa ter uma política de acesso para sua organização. Para mais informações, consulte Criar uma política de acesso.
Criar o perímetro
O exemplo a seguir mostra como criar um perímetro do VPC Service Controls que limita o intervalo de endereços IP externos que podem acessar um projeto do BigQuery.
Crie um nível de acesso que permita o acesso apenas a um intervalo especificado de endereços IP, por exemplo, aqueles em uma rede corporativa. Para 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:
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 como criar níveis de acesso, consulte as implementações de exemplo.
Proteja o recurso do BigQuery criando ou atualizando um perímetro. Os exemplos a seguir protegem um projeto. Para outros casos de uso, como proteger a transferência de dados de um bucket do Cloud Storage em outro projeto, consulte os casos de uso.
Criar 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:
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
Atualizar perímetro
Para atualizar um perímetro, 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.
Testar o perímetro
Teste o perímetro do VPC Service Controls antes de aplicá-lo. Para mais informações, consulte Modo de simulação para perímetros de serviço e Usar o modo de simulação para testar políticas de entrada ou saída.
Casos de uso
Os exemplos de caso de uso a seguir mostram como proteger os dados que entram e saem do BigQuery com o VPC Service Controls.
Consultar dados de tabelas externas de um bucket do Cloud Storage em outro projeto
Os exemplos a seguir mostram como permitir seletivamente a comunicação entre os projetos do BigQuery e do Cloud Storage quando eles estão separados por perímetros.
Permita que o projeto do BigQuery acesse o 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:
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 acesse o projeto do BigQuery atualizando as regras de saída para o perímetro ao redor 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:
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 inclui
storage.googleapis.com
como um serviço restrito, atualize 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
Importar e exportar dados do BigQuery Omni
Como uma camada extra de defesa, é possível usar os perímetros do 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 para quando você cria uma tabela do BigLake do Azure Blob Storage.
A seguir
- Saiba mais sobre o VPC Service Controls no Analytics Hub.
- Saiba como restringir o acesso ao BigQuery Omni com um serviço de nuvem externo.
- Entenda os riscos e a mitigação com o VPC Service Controls.
- Saiba mais sobre a compatibilidade e as limitações do VPC Service Controls no BigQuery.
- Resolver problemas comuns do BigQuery e do VPC Service Controls.