Controlli di servizio VPC per BigQuery
Questa pagina spiega come migliorare la sicurezza delle risorse BigQuery creando perimetri con i Controlli di servizio VPC. Questi perimetri limitano l'accesso a e da BigQuery e sono indipendenti dai controlli di Identity and Access Management (IAM). Sono utili nei seguenti casi d'uso:
- Impedire la fuga di dati limitando l'accesso alle risorse, tranne a quelle consentite specificamente nelle regole per il traffico in entrata e in uscita.
- Caricamento sicuro dei dati in BigQuery da origini di terze parti o da servizi Google Cloud, come Cloud Storage.
- Controllo dell'esportazione dei dati da BigQuery a Cloud Storage o altri target.
Per ulteriori informazioni, consulta la panoramica dei Controlli di servizio VPC.
Prima di iniziare
- Per ottenere le autorizzazioni necessarie per configurare i perimetri di servizio, consulta Controllo dell'accesso con IAM per Controlli di servizio VPC.
- Devi avere una policy di accesso per la tua organizzazione. Per ulteriori informazioni, consulta Creare un criterio di accesso.
Crea il perimetro
L'esempio seguente mostra come creare un perimetro Controlli di servizio VPC che limita l'intervallo di indirizzi IP esterni che possono accedere a un progetto BigQuery.
Crea un livello di accesso che consenta l'accesso solo a un intervallo specificato di indirizzi IP, ad esempio quelli all'interno di una rete aziendale. Per crearlo, utilizza il 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
Sostituisci quanto segue:
ACCESS_LEVEL_NAME
: l'ID del livello di accessoTITLE
: il titolo leggibile per il perimetro di servizio
Per saperne di più sulla creazione dei livelli di accesso, consulta le implementazioni di esempio.
Proteggi la risorsa BigQuery creando o aggiornando un perimetro. Gli esempi riportati di seguito proteggono un progetto. Per altri scenari di utilizzo, ad esempio la protezione del trasferimento dei dati da un bucket Cloud Storage in un altro progetto, consulta i scenari di utilizzo.
Crea perimetro
Per creare un nuovo perimetro per proteggere il progetto BigQuery, utilizza il 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
Sostituisci quanto segue:
POLICY_NAME
: l'ID del criterio di accessoACCESS_LEVEL_NAME
: l'ID del livello di accessoPERIMETER
: l'ID del perimetroTITLE
: il titolo breve e leggibile per il perimetro di servizioBIGQUERY_PROJECT_NUMBER
: l'ID del progetto BigQueryPOLICY_NAME
: l'ID del criterio di accesso
Aggiorna perimetro
Per aggiornare un perimetro esistente, utilizza il comando
gcloud access-context-manager perimeters update
:gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yaml
Sostituisci
BIGQUERY_PERIMETER
con l'ID del perimetro che protegge la risorsa BigQuery.
Testa il perimetro
Testa il perimetro dei Controlli di servizio VPC prima di applicarlo. Per ulteriori informazioni, consulta la sezione Modalità di prova per i perimetri di servizio e Utilizzare la modalità di prova per testare i criteri di ingresso o di uscita.
Casi d'uso
I seguenti esempi di casi d'uso mostrano come proteggere i dati in entrata e in uscita da BigQuery con i Controlli di servizio VPC.
Esegui query sui dati delle tabelle esterne da un bucket Cloud Storage in un altro progetto
Gli esempi riportati di seguito mostrano come consentire in modo selettivo la comunicazione tra i progetti BigQuery e Cloud Storage quando sono separati da perimetri.
Consenti al progetto BigQuery di accedere al progetto Cloud Storage aggiornando le regole di uscita per il perimetro intorno al progetto 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
Sostituisci quanto segue:
BIGQUERY_PROJECT_NUMBER
: l'ID del progetto BigQueryCLOUD_STORAGE_PERIMETER
: l'ID del perimetro che protegge le risorse Cloud StoragePOLICY_NAME
: l'ID del criterio di accesso
Consenti al progetto Cloud Storage di accedere al progetto BigQuery aggiornando le regole in uscita per il perimetro intorno al progetto 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
Sostituisci quanto segue:
CLOUD_STORAGE_PROJECT_NUMBER
: l'ID del progetto Cloud StoragePERIMETER
: l'ID del perimetroPOLICY_NAME
: l'ID del criterio di accesso
(Facoltativo) Se il perimetro che protegge il progetto BigQuery include
storage.googleapis.com
come servizio con limitazioni, devi aggiornare la regola di ingresso: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
Importare ed esportare dati da BigQuery Omni
Come ulteriore livello di difesa, puoi utilizzare i perimetri di Controlli di servizio VPC per limitare l'accesso tra BigQuery Omni e un servizio cloud esterno. Per ulteriori informazioni ed esempi, consulta la configurazione di Controlli di servizio VPC per la creazione di una tabella BigLake di Azure Blob Storage.
Passaggi successivi
- Scopri di più sui Controlli di servizio VPC in Analytics Hub.
- Scopri come limitare l'accesso a BigQuery Omni con un servizio cloud esterno.
- Scopri i rischi e le misure di mitigazione tramite i Controlli di servizio VPC.
- Scopri di più sul supporto e sui limiti di VPC Service Controls in BigQuery.
- Risolvi i problemi comuni di BigQuery e Controlli di servizio VPC.