Limita l'accesso con controllo dell'accesso a livello di colonna
Questa pagina spiega come utilizzare controllo dell'accesso a livello di colonna di BigQuery per limitare l'accesso ai dati di BigQuery a livello di colonna. Per informazioni generali sul controllo dell'accesso a livello di colonna, consulta Introduzione al controllo dell'accesso a livello di colonna di BigQuery.
Le istruzioni in questa pagina utilizzano sia BigQuery sia Data Catalog.
Per impostare un tag di criteri su una colonna, devi aggiornare lo schema della tabella. Puoi utilizzare la console Google Cloud , lo strumento a riga di comando bq e l'API BigQuery per impostare un tag di criteri su una colonna. Inoltre, puoi creare una tabella, specificare lo schema e i tag di policy in un'unica operazione utilizzando le seguenti tecniche:
- I comandi
bq mkebq loaddello strumento a riga di comando bq. - Il metodo API
tables.insert. - La pagina Crea tabella nella console Google Cloud . Se utilizzi la consoleGoogle Cloud , devi selezionare Modifica come testo quando aggiungi o modifichi lo schema.
Per migliorare controllo dell'accesso a livello di colonna, puoi facoltativamente utilizzare il mascheramento dinamico dei dati. Il mascheramento dei dati consente di mascherare i dati sensibili sostituendo i contenuti nulli, predefiniti o con hashing al posto del valore effettivo della colonna.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Data Catalog and BigQuery Data Policy APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Data Catalog and BigQuery Data Policy APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- BigQuery viene abilitato automaticamente nei nuovi progetti, ma potresti doverlo attivare in un progetto preesistente.
Abilita l'API BigQuery, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Ruoli e autorizzazioni
Esistono diversi ruoli correlati ai tag di policy per utenti e service account.
- Gli utenti o i service account che amministrano i tag di policy devono avere il ruolo Amministratore tag di policy di Data Catalog. Il ruolo Amministratore tag di policy può gestire tassonomie e tag di policy, nonché concedere o rimuovere i ruoli IAM associati ai tag di policy.
- Gli utenti o i service account che applicano il controllo degli accessi per controllo dell'accesso a livello di colonna devono disporre del ruolo BigQuery Admin o BigQuery Data Owner. I ruoli BigQuery possono gestire le policy dei dati, che vengono utilizzate per applicare controllo dell'accesso a una tassonomia.
- Per visualizzare le tassonomie e i tag di policy per tutti i progetti di un'organizzazione nella consoleGoogle Cloud , gli utenti devono disporre del ruolo Visualizzatore organizzazione. In caso contrario, la console visualizza solo le tassonomie e i tag di policy associati al progetto selezionato.
- Gli utenti o i service account che eseguono query sui dati protetti dal controllo dell'accesso a livello di colonna devono disporre del ruolo Lettore granulare di Data Catalog per accedere ai dati.
Per saperne di più su tutti i ruoli correlati ai tag di criteri, consulta Ruoli utilizzati con il controllo dell'accesso a livello di colonna.
Il ruolo Amministratore tag di policy di Data Catalog
Il ruolo Amministratore tag di policy di Data Catalog può creare e gestire i tag di policy dei dati.
Per concedere il ruolo Amministratore tag di policy, devi disporre dell'autorizzazione resourcemanager.projects.setIamPolicy per il progetto per cui vuoi concedere il ruolo. Se non disponi dell'autorizzazione resourcemanager.projects.setIamPolicy, chiedi a un Proprietario progetto di concederti l'autorizzazione o di eseguire i passaggi seguenti per te.
Nella console Google Cloud vai alla pagina IAM.
Se l'indirizzo email dell'utente a cui concedere il ruolo è presente nell'elenco, selezionalo e fai clic su Modifica. Viene visualizzato il riquadro Accesso in modifica. Fai clic su Aggiungi un altro ruolo.
Se l'indirizzo email dell'utente non è presente nell'elenco, fai clic su Aggiungi, quindi inserisci l'indirizzo email nella casella Nuove entità.
Fai clic sull'elenco a discesa Seleziona un ruolo.
In Per prodotto o servizio, fai clic su Data Catalog. In Ruoli, fai clic su Amministratore tag di policy.
Fai clic su Salva.
I ruoli BigQuery Data Policy Admin, BigQuery Admin e BigQuery Data Owner
I ruoli BigQuery Data Policy Admin, BigQuery Admin e BigQuery Data Owner possono gestire le policy dei dati.
Per concedere uno di questi ruoli, devi disporre dell'autorizzazione resourcemanager.projects.setIamPolicy sul progetto per cui vuoi concedere il ruolo. Se non disponi dell'autorizzazione resourcemanager.projects.setIamPolicy, chiedi a un Proprietario progetto di concederti l'autorizzazione o di eseguire i seguenti passaggi per te.
Nella console Google Cloud vai alla pagina IAM.
Se l'indirizzo email dell'utente a cui concedere il ruolo è presente nell'elenco, selezionalo e fai clic su Modifica. Quindi, fai clic su Aggiungi un altro ruolo.
Se l'indirizzo email dell'utente non è presente nell'elenco, fai clic su Aggiungi, quindi inserisci l'indirizzo email nella casella Nuove entità.
Fai clic sull'elenco a discesa Seleziona un ruolo.
Fai clic su BigQuery, quindi su BigQuery Data Policy Admin o BigQuery Admin o BigQuery Data Owner.
Fai clic su Salva.
Il ruolo Organization Viewer
Il ruolo Organization Viewer consente agli utenti di visualizzare i dettagli della risorsa organizzazione. Per concedere questo ruolo, devi disporre dell'autorizzazione resourcemanager.organizations.setIamPolicy per l'organizzazione.
Il ruolo Data Catalog Fine-Grained Reader
Gli utenti che devono accedere ai dati protetti con il controllo dell'accesso a livello di colonna devono avere il ruolo Lettore granulare di Data Catalog o qualsiasi altro ruolo a cui è concessa l'autorizzazione datacatalog.categories.fineGrainedGet.
Questo ruolo viene assegnato alle entità nell'ambito della configurazione di un tag di criteri.
Per concedere a un utente il ruolo Lettore granulare su un tag di criteri, devi disporre dell'autorizzazione datacatalog.taxonomies.setIamPolicy sul progetto che contiene la tassonomia del tag di criteri. Se non disponi dell'autorizzazione datacatalog.taxonomies.setIamPolicy, chiedi a un Proprietario progetto di concederti l'autorizzazione o di eseguire l'azione per te.
Per istruzioni, consulta Imposta le autorizzazioni sui tag di policy.
Configura controllo dell'accesso a livello di colonna
Configura controllo dell'accesso a livello di colonna completando queste attività:
- Crea una tassonomia di tag di policy.
- Associa le entità ai tag di policy e concedi alle entità il ruolo Lettore granulare di Data Catalog.
- Associa i tag di policy alle colonne della tabella BigQuery.
- Applica controllo dell'accesso alla tassonomia contenente i tag di policy.
Creazione tassonomie
All'utente o account di servizio che crea una tassonomia deve essere concesso il ruolo Amministratore tag di policy di Data Catalog.
Console
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic su Crea tassonomia.
Nella pagina Nuova tassonomia:
- In Nome tassonomia, inserisci il nome della tassonomia che vuoi creare.
- In Descrizione, inserisci una descrizione.
- Se necessario, modifica il progetto elencato in Progetto.
- Se necessario, modifica la posizione indicata in Posizione.
- In Tag di policy, inserisci un nome e una descrizione per tag di criteri.
- Per aggiungere un tag di criteri secondario per un tag di criteri, fai clic su Aggiungi sottotag.
- Per aggiungere un nuovo tag di criteri allo stesso livello di un altro tag di criteri, fai clic su + Aggiungi tag di policy.
- Continua ad aggiungere tag di policy e tag di policy secondari in base alle esigenze della tua tassonomia.
- Al termine della creazione dei tag di policy per la gerarchia, fai clic su Crea.
API
Per utilizzare le tassonomie esistenti, chiama taxonomies.import anziché i primi due passaggi della procedura seguente.
- Chiama
taxonomies.createper creare una tassonomia. - Chiama
taxonomies.policyTags.createper creare un tag di criteri.
Imposta le autorizzazioni sui tag di policy
All'utente o account di servizio che crea una tassonomia deve essere concesso il ruolo Amministratore tag di policy di Data Catalog.
Console
Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
Fai clic sul nome della tassonomia che contiene i tag di policy pertinenti.
Seleziona uno o più tag di policy.
Se il riquadro informazioni è nascosto, fai clic su Mostra riquadro informazioni.
Nel riquadro Informazioni puoi visualizzare i ruoli e le entità per i tag di policy selezionati. Aggiungi il ruolo Policy Tags Admin agli account che creano e gestiscono i tag di policy. Aggiungi il ruolo Fine-Grained Reader agli account che devono avere accesso ai dati protetti dal controllo dell'accesso a livello di colonna. Puoi utilizzare questo riquadro anche per rimuovere i ruoli dagli account o modificare altre autorizzazioni.
Fai clic su Salva.
API
Chiama taxonomies.policytag.setIamPolicy per concedere l'accesso a un tag di criteri assegnando le entità ai ruoli appropriati.
Imposta i tag di policy sulle colonne
L'utente o il account di servizio che imposta un tag di criteri deve disporre delle autorizzazioni datacatalog.taxonomies.get e bigquery.tables.setCategory.
datacatalog.taxonomies.get è incluso nei ruoli Amministratore tag di policy di Data Catalog e Visualizzatore progetto.
bigquery.tables.setCategory è incluso nei ruoli Amministratore BigQuery (roles/bigquery.admin) e Proprietario dati BigQuery (roles/bigquery.dataOwner).
Per visualizzare le tassonomie e i tag di policy in tutti i progetti di un'organizzazione nella consoleGoogle Cloud , gli utenti devono disporre dell'autorizzazione resourcemanager.organizations.get, inclusa nel ruolo Visualizzatore organizzazione. Questa autorizzazione non è richiesta quando utilizzi l'API o lo strumento a riga di comando bq.
Console
Imposta il tag di criteri modificando uno schema utilizzando la consoleGoogle Cloud .
Apri la pagina BigQuery nella console Google Cloud .
In Explorer di BigQuery, individua e seleziona la tabella che vuoi aggiornare. Viene visualizzato lo schema della tabella.
Fai clic su Modifica schema.
Nella schermata Schema attuale, seleziona la colonna di destinazione e fai clic su Aggiungi tag di policy.
Nella schermata Aggiungi un tag di policy, individua e seleziona il tag di criteri che vuoi applicare alla colonna.
Fai clic su Seleziona. La schermata dovrebbe essere simile alla seguente:
Fai clic su Salva.
bq
Scrivi lo schema in un file locale.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
dove:
- project-id è l'ID progetto.
- dataset è il nome del set di dati che contiene la tabella che stai aggiornando.
- table è il nome della tabella che stai aggiornando.
Modifica schema.json per impostare un tag di criteri su una colonna. Per il valore del campo
namesdipolicyTags, utilizza il nome della risorsa del tag di policy.[ ... { "name": "ssn", "type": "STRING", "mode": "REQUIRED", "policyTags": { "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"] } }, ... ]
Aggiorna lo schema.
bq update \ project-id:dataset.table schema.json
API
Per le tabelle esistenti, chiama tables.patch, mentre per le nuove tabelle chiama tables.insert. Utilizza la proprietà schema dell'oggetto Table che passi per impostare un tag di criteri nella definizione dello schema. Consulta lo schema di esempio della riga di comando per scoprire come impostare un tag di criteri.
Quando si lavora con una tabella esistente, è preferibile il metodo tables.patch, perché il metodo tables.update sostituisce l'intera risorsa della tabella.
Altri modi per impostare i tag di policy sulle colonne
Puoi anche impostare i tag di policy quando:
- Utilizza
bq mkper creare una tabella. Passa uno schema da utilizzare per la creazione della tabella. - Utilizza
bq loadper caricare i dati in una tabella. Passa uno schema da utilizzare quando carichi la tabella.
Per informazioni generali sullo schema, consulta Specifica di uno schema.
Applica controllo di accesso
Segui queste istruzioni per attivare o disattivare l'applicazione del controllo dell'accesso.
L'applicazione controllo dell'accesso richiede la creazione di una policy dei dati. Questa operazione viene eseguita automaticamente se applichi controllo dell'accesso utilizzando la consoleGoogle Cloud . Se vuoi applicare controllo dell'accesso utilizzando l'API BigQuery Data Policy, devi creare esplicitamente la policy dei dati.
L'entità che applica controllo dell'accesso deve avere il ruolo Amministratore BigQuery o Proprietario dati BigQuery. L'entità deve inoltre disporre del ruolo Data Catalog Admin o Data Catalog Viewer.
Per interrompere l'applicazione del controllo dell'accesso, se è attivo, fai clic su Applica il controllo degli accessi per disattivarlo.
Se hai policy dei dati associate a uno dei tag di policy nella tassonomia, devi eliminare tutte le policy dei dati nella tassonomia prima di interrompere l'applicazione del controllo dell'accesso. Se elimini le policy dei dati utilizzando l'API BigQuery Data Policy, devi eliminare tutte le policy dei dati con un dataPolicyType di DATA_MASKING_POLICY. Per saperne di più, consulta Elimina le policy relative ai dati.
Crea una policy dei dati
Per creare una policy sui dati:
Console
Per applicare controllo dell'accesso, segui questi passaggi:
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
Fai clic sulla tassonomia di cui vuoi applicare il controllo dell'accesso a livello di colonna.
Se l'opzione Applica il controllo degli accessi non è già attiva, fai clic su Applica il controllo degli accessi per attivarla.
API
Utilizza il metodo create e passa una risorsa DataPolicy in cui il campo dataPolicyType è impostato su COLUMN_LEVEL_SECURITY_POLICY.
Recupera una policy dei dati
Per ottenere informazioni su una policy dei dati, segui questi passaggi:
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Ottieni la policy IAM (Identity and Access Management) per una policy dei dati
Per ottenere la policy IAM per una policy dei dati, segui questi passaggi:
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Elenca le policy sui dati
Per elencare le policy di dati, segui questi passaggi:
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Elimina una policy dei dati
Per eliminare una policy dei dati:
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Utilizza i tag di policy
Utilizza questa sezione per scoprire come visualizzare, modificare ed eliminare i tag di policy.
Visualizza i tag di policy
Per visualizzare i tag di policy che hai creato per una tassonomia:
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic sulla tassonomia di cui vuoi visualizzare i tag di policy. La pagina Tassonomie mostra i tag di policy nella tassonomia.
Visualizza i tag di policy nello schema
Puoi visualizzare i tag di policy applicati a una tabella quando esamini lo schema della tabella. Puoi visualizzare lo schema utilizzando la console Google Cloud , lo strumento a riga di comando bq, l'API BigQuery e le librerie client. Per informazioni dettagliate su come visualizzare lo schema, consulta Recupero delle informazioni sulla tabella.
Autorizzazioni di visualizzazione sui tag di policy
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic sul nome della tassonomia che contiene i tag di policy pertinenti.
- Seleziona uno o più tag di policy.
- Se il riquadro informazioni è nascosto, fai clic su Mostra riquadro informazioni.
- Nel riquadro Informazioni puoi visualizzare i ruoli e le entità per i tag di policy selezionati.
Aggiorna le autorizzazioni sui tag di policy
All'account utente o al service account che crea una tassonomia deve essere concesso il ruolo Amministratore tag di policy di Data Catalog.
Console
Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
Fai clic sul nome della tassonomia che contiene i tag di policy pertinenti.
Seleziona uno o più tag di policy.
Se il riquadro informazioni è nascosto, fai clic su Mostra riquadro informazioni.
Nel riquadro Informazioni puoi visualizzare i ruoli e le entità per i tag di policy selezionati. Aggiungi il ruolo Policy Tags Admin agli account che creano e gestiscono i tag di policy. Aggiungi il ruolo Fine-Grained Reader agli account che devono avere accesso ai dati protetti dal controllo dell'accesso a livello di colonna. Puoi utilizzare questo riquadro anche per rimuovere i ruoli dagli account o modificare altre autorizzazioni.
Fai clic su Salva.
API
Chiama taxonomies.policytag.setIamPolicy per concedere l'accesso a un tag di criteri assegnando le entità ai ruoli appropriati.
Recupera i nomi delle risorse dei tag di criteri
Il nome della risorsa del tag di criteri è necessario quando applichi il tag di criteri a una colonna.
Per recuperare il nome della risorsa del tag di criteri:
Visualizza i tag di policy per la tassonomia che contiene il tag di criteri.
Trova il tag di criteri di cui vuoi copiare il nome della risorsa.
Fai clic sull'icona Copia nome risorsa tag di criteri policy.
Cancella i tag di policy
Aggiorna lo schema della tabella per cancellare un tag di criteri da una colonna. Puoi utilizzare la consoleGoogle Cloud , lo strumento a riga di comando bq e il metodo dell'API BigQuery per cancellare un tag di criteri da una colonna.
Console
Nella pagina Schema attuale, in Tag di policy, fai clic su X.
bq
Recupera lo schema e salvalo in un file locale.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
dove:
- project-id è l'ID progetto.
- dataset è il nome del set di dati che contiene la tabella che stai aggiornando.
- table è il nome della tabella che stai aggiornando.
Modifica schema.json per cancellare un tag di criteri da una colonna.
[ ... { "name": "ssn", "type": "STRING", "mode": "REQUIRED", "policyTags": { "names": [] } }, ... ]
Aggiorna lo schema.
bq update \ project-id:dataset.table schema.json
API
Chiama tables.patch e utilizza la proprietà schema per cancellare un tag di criteri nella definizione dello schema. Consulta lo schema di esempio della riga di comando per scoprire come cancellare un tag di criteri.
Poiché il metodo tables.update sostituisce l'intera risorsa della tabella, è preferibile il metodo tables.patch.
Elimina i tag di policy
Puoi eliminare uno o più tag di policy in una tassonomia oppure puoi eliminare la tassonomia e tutti i tag di policy che contiene. L'eliminazione di un tag di criteri rimuove automaticamente l'associazione tra il tag di criteri e le colonne a cui è stato applicato.
Quando elimini un tag di criteri a cui è associata una policy dei dati, l'eliminazione della policy dei dati può richiedere fino a 30 minuti. Puoi eliminare direttamente la policy relativa ai dati se vuoi che venga eliminata immediatamente.
Per eliminare uno o più tag di policy in una tassonomia, segui questi passaggi:
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic sul nome della tassonomia contenente i tag da eliminare.
- Fai clic su Modifica.
- Fai clic su accanto ai tag di policy da eliminare.
- Fai clic su Salva.
- Fai clic su Conferma.
Per eliminare un'intera tassonomia:
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic sul nome della tassonomia contenente i tag da eliminare.
- Fai clic su Elimina tassonomia dei tag di policy.
- Digita il nome della tassonomia e fai clic su Elimina.
Esegui query sui dati con controllo dell'accesso a livello di colonna
Se un utente ha accesso al set di dati e dispone del ruolo Lettore con granularità di Data Catalog, i dati della colonna sono disponibili per l'utente. L'utente esegue una query come di consueto.
Se un utente ha accesso al set di dati, ma non ha il ruolo Lettore con granularità fine di Data Catalog, i dati della colonna non sono disponibili per l'utente. Se un utente di questo tipo esegue SELECT *, riceve un errore che elenca le colonne a cui non può accedere. Per risolvere l'errore, puoi:
Modifica la query per escludere le colonne a cui l'utente non può accedere. Ad esempio, se l'utente non ha accesso alla colonna
ssn, ma ha accesso alle colonne rimanenti, può eseguire la seguente query:SELECT * EXCEPT (ssn) FROM ...
Nell'esempio precedente, la clausola
EXCEPTesclude la colonnassn.Chiedi a un amministratore di Data Catalog di aggiungere l'utente come lettore con accesso granulare di Data Catalog alla classe di dati pertinente. Il messaggio di errore fornisce il nome completo del tag di criteri per cui l'utente deve avere accesso.
Domande frequenti
La sicurezza a livello di colonna di BigQuery funziona per le viste?
Sì. Le viste derivano da una tabella sottostante. Lo stesso controllo dell'accesso a livello di colonna sulla tabella si applica quando si accede alle colonne protette tramite una vista.
In BigQuery esistono due tipi di viste: logiche e autorizzate. Entrambi i tipi di viste derivano da una tabella di origine e sono coerenti con il controllo dell'accesso a livello di colonna della tabella.
Per saperne di più, consulta Viste autorizzate.
Controllo dell'accesso a livello di colonna funziona sulle colonne STRUCT o RECORD?
Sì. Puoi applicare i tag di policy solo ai campi foglia e solo questi campi sono protetti.
Posso utilizzare sia l'SQL precedente sia GoogleSQL?
Puoi utilizzare GoogleSQL per eseguire query sulle tabelle protette dal controllo dell'accesso a livello di colonna.
Le query SQL precedente vengono rifiutate se sono presenti tag di policy nelle tabelle di destinazione.
Le query vengono registrate in Cloud Logging?
Il controllo dei tag di policy viene registrato in Logging. Per saperne di più, consulta Audit logging per controllo dell'accesso a livello di colonna.
La copia di una tabella è interessata dal controllo dell'accesso a livello di colonna?
Sì. Non puoi copiare le colonne se non hai accesso.
Le seguenti operazioni verificano le autorizzazioni a livello di colonna.
SELECTquery con tabelle di destinazione- Job di copia delle tabelle
- Job di estrazione dei dati (ad esempio in Cloud Storage)
Quando copio i dati in una nuova tabella, i tag di policy vengono propagati automaticamente?
Nella maggior parte dei casi, no. Se copi i risultati di una query in una nuova tabella, alla nuova tabella non vengono assegnati automaticamente i tag di policy. Pertanto, la nuova tabella non ha controllo dell'accesso a livello di colonna. Lo stesso vale se esporti i dati in Cloud Storage.
L'eccezione è se utilizzi un job di copia della tabella. Poiché i job di copia delle tabelle non applicano alcuna trasformazione dei dati, i tag di policy vengono propagati automaticamente alle tabelle di destinazione. Questa eccezione non si applica ai job di copia delle tabelle tra regioni, perché i job di copia delle tabelle tra regioni non supportano la copia dei tag di policy.
Controllo dell'accesso a livello di colonna è compatibile con Virtual Private Cloud?
Sì, controllo dell'accesso a livello di colonna e il VPC sono compatibili e complementari.
VPC sfrutta IAM per controllare l'accesso ai servizi, come BigQuery e Cloud Storage. Il controllo degli accessi a livello di colonna fornisce una sicurezza granulare delle singole colonne all'interno di BigQuery.
Per applicare il VPC per i tag di policy e le policy dei dati per il controllo dell'accesso a livello di colonna e il mascheramento dinamico dei dati, devi limitare le seguenti API nel perimetro:
Risoluzione dei problemi
Le sezioni seguenti spiegano come risolvere i problemi relativi al controllo degli accessi a livello di colonna e ai tag di policy di Data Catalog.
Non riesco a visualizzare i ruoli di Data Catalog
Se non riesci a visualizzare ruoli come Lettore granulare di Data Catalog, è possibile che tu non abbia abilitato l'API Data Catalog nel tuo progetto. Per scoprire come abilitare l'API Data Catalog, consulta Prima di iniziare. I ruoli Data Catalog vengono visualizzati alcuni minuti dopo l'abilitazione dell'API Data Catalog.
Non riesco a visualizzare la pagina Tassonomie
Per visualizzare la pagina Tassonomie di tag di policy nella consoleGoogle Cloud , devi disporre di autorizzazioni aggiuntive. Ad esempio, il ruolo Amministratore tag di policy di Data Catalog ha accesso alla pagina Tassonomie.
Ho applicato i tag di policy, ma non sembra funzionare
Se continui a ricevere risultati delle query per un account che non dovrebbe avere accesso, è possibile che l'account riceva risultati memorizzati nella cache. In particolare, se in precedenza hai eseguito la query con successo e poi hai applicato i tag di policy, potresti ottenere risultati dalla cache dei risultati delle query. Per impostazione predefinita, i risultati delle query vengono memorizzati nella cache per 24 ore. La query non va a buon fine immediatamente se disattivi la cache dei risultati. Per maggiori dettagli sulla memorizzazione nella cache, consulta Impatto del controllo dell'accesso a livello di colonna.
In genere, la propagazione degli aggiornamenti IAM richiede circa 30 secondi. La propagazione delle modifiche alla gerarchia dei tag di criteri può richiedere fino a 30 minuti.
Non ho l'autorizzazione per leggere da una tabella con sicurezza a livello di colonna
Devi disporre del ruolo Fine-Grained Reader o del ruolo Masked Reader a diversi livelli, ad esempio organizzazione, cartella, progetto e tag di criteri. Il ruolo Lettore granulare concede l'accesso ai dati non elaborati, mentre il ruolo Lettore mascherato concede l'accesso ai dati mascherati. Puoi utilizzare lo strumento per la risoluzione dei problemi relativi alle policy IAM per verificare questa autorizzazione a livello di progetto.
Ho impostato il controllo granulare dell'accesso nella tassonomia dei tag di criteri, ma gli utenti vedono i dati protetti
Per risolvere il problema, verifica i seguenti dettagli:
- Nella pagina Tassonomie dei tag di policy del Centro sicurezza di BigQuery, verifica che l'opzione Applica il controllo dell'accesso sia in posizione On.
Assicurati che le query non utilizzino i risultati delle query memorizzati nella cache. Se utilizzi lo strumento a riga di comando bq per testare le query, utilizza il flag
--nouse_cacheper disabilitare la cache delle query. Ad esempio:bq query --nouse_cache --use_legacy_sql=false "SELECT * EXCEPT (customer_pii) FROM my_table;"
Considerazioni sulla migrazione dei progetti
I tag di policy e le tassonomie si trovano all'interno di un'organizzazione Google Cloud specifica e non vengono riassociati automaticamente quando viene eseguita la migrazione di un progetto a una nuova organizzazione. Se esegui la migrazione di un progetto che utilizza tag di policy per controllo dell'accesso a livello di colonna a un'altra organizzazione, si verificano i seguenti problemi:
- I tag di policy non sono più gestibili nella console Google Cloud all'interno del progetto di cui è stata eseguita la migrazione.
- Non puoi applicare questi tag di policy alle nuove colonne del progetto di cui è stata eseguita la migrazione.
- I controlli di accesso a livello di colonna esistenti potrebbero sembrare ancora attivi, ma il link alla tassonomia di origine nell'organizzazione originale è interrotto per scopi di gestione.
Per risolvere questo problema, è necessario l'intervento manuale dell'assistenza Google Cloud per riassociare la tassonomia alla nuova organizzazione. Se hai eseguito la migrazione di un progetto con tag di policy e riscontri questi problemi, contatta l'assistenza clienti Google Cloud.