Maschera i dati delle colonne
Questo documento mostra come implementare il mascheramento dei dati per oscurare in modo selettivo i dati sensibili. Implementando il mascheramento dei dati, puoi fornire diversi livelli di visibilità a diversi gruppi di utenti. Per informazioni generali, consulta Introduzione al mascheramento dei dati.
Puoi implementare il mascheramento dei dati aggiungendo una policy dei dati a una colonna. Per aggiungere una policy di mascheramento dei dati a una colonna, devi completare i seguenti passaggi :
- Crea una tassonomia con almeno un tag di criteri.
- (Facoltativo) Concedi il ruolo Lettore granulare di Data Catalog a una o più entità su uno o più tag di policy che hai creato.
- Crea fino a tre policy dei dati per il tag di criteri, per mappare le regole di mascheramento e le entità (che rappresentano utenti o gruppi) a quel tag.
- Imposta il tag di criteri su una colonna. In questo modo, le policy dei dati associate al tag di criteri vengono mappate alla colonna selezionata.
- Assegna agli utenti che devono avere accesso ai dati mascherati il ruolo Lettore mascherato BigQuery. Come best practice, assegna il ruolo BigQuery Masked Reader a livello di policy dei dati. L'assegnazione del ruolo a livello di progetto o superiore concede agli utenti le autorizzazioni per tutte le policy relative ai dati del progetto, il che può causare problemi dovuti a un numero eccessivo di autorizzazioni.
Puoi utilizzare la console Google Cloud o l'API BigQuery Data Policy per lavorare con le policy dei dati.
Una volta completati questi passaggi, gli utenti che eseguono query sulla colonna ricevono dati in chiaro, dati mascherati o un errore di accesso negato, a seconda dei gruppi a cui appartengono e dei ruoli che sono stati loro concessi. Per saperne di più, consulta Come interagiscono i ruoli Masked Reader e Fine-Grained Reader.
In alternativa, puoi applicare le policy dei dati direttamente a una colonna. Per saperne di più, consulta Maschera i dati con le policy dei dati direttamente su una colonna.
Maschera i dati con i tag di policy
Utilizza i tag di policy per oscurare in modo selettivo i dati sensibili.
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. - Se stai creando una policy dei dati che fa riferimento a una routine di mascheramento personalizzata, crea la funzione definita dall'utente di mascheramento associata in modo che sia disponibile nei passaggi seguenti.
Creazione tassonomie
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 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.
Utilizza i tag di policy
Per saperne di più su come utilizzare i tag di policy, ad esempio come visualizzarli o aggiornarli, consulta Utilizza i tag di policy. Per le best practice, consulta Best practice per l'utilizzo dei tag di policy in BigQuery.
Crea policy dei dati
L'utente o il account di servizio che crea una policy dati deve disporre delle autorizzazioni bigquery.dataPolicies.create, bigquery.dataPolicies.setIamPolicy e datacatalog.taxonomies.get.
Le autorizzazioni bigquery.dataPolicies.create e bigquery.dataPolicies.setIamPolicy sono incluse nei ruoli Amministratore policy dei dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
L'autorizzazione datacatalog.taxonomies.get è inclusa nei ruoli Amministratore Data Catalog e Visualizzatore Data Catalog.
Se stai creando una policy dei dati che fa riferimento a una routine di mascheramento personalizzata, devi disporre anche delle autorizzazioni per la routine.
In caso di mascheramento personalizzato, concedi agli utenti i ruoli Amministratore BigQuery o Proprietario dati BigQuery per assicurarti che dispongano delle autorizzazioni necessarie sia per le routine che per le policy dei dati.
Puoi creare fino a nove policy dei dati per un tag di criteri. Una di queste policy è riservata alle impostazioni di controllo dell'accesso a livello di colonna.
Console
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic sul nome della tassonomia da aprire.
- Seleziona un tag di criteri.
- Fai clic su Gestisci i criteri relativi ai dati.
- In Nome policy dati, digita un nome per la policy dati. Il nome della policy dei dati deve essere univoco all'interno del progetto in cui si trova la policy dei dati.
- In Regola di mascheramento, scegli una regola di mascheramento predefinita o una routine di mascheramento personalizzata. Se selezioni una routine di mascheramento personalizzata, assicurati di disporre delle autorizzazioni
bigquery.routines.getebigquery.routines.lista livello di progetto. - In Entità, digita il nome di uno o più utenti o gruppi a cui vuoi concedere l'accesso mascherato alla colonna. Tieni presente che a tutti gli utenti e i gruppi inseriti qui viene concesso il ruolo BigQuery Masked Reader.
- Fai clic su Invia.
API
Chiama il metodo
create. Passa una risorsaDataPolicyche soddisfi i seguenti requisiti:- Il campo
dataPolicyTypeè impostato suDATA_MASKING_POLICY. - Il campo
dataMaskingPolicyidentifica la regola o la routine di mascheramento dei dati da utilizzare. - Il campo
dataPolicyIdfornisce un nome per la policy dei dati che è univoco all'interno del progetto in cui si trova la policy dei dati.
- Il campo
Chiama il metodo
setIamPolicye trasmetti unPolicy. LaPolicydeve identificare le entità a cui è concesso l'accesso ai dati mascherati e specificareroles/bigquerydatapolicy.maskedReaderper il camporole.
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.
Imposta i tag di policy sulle colonne
Imposta una policy dei dati su una colonna collegando alla colonna il tag di criteri associato alla policy dei dati.
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.
Applica controllo di accesso
Quando crei una policy dei dati per un tag di criteri, controllo dell'accesso viene applicato automaticamente. Tutte le colonne a cui è applicato il tag di criteri restituiscono dati mascherati in risposta alle query degli utenti con il ruolo Lettore mascherato.
Per interrompere l'applicazione del controllo degli accessi, devi prima eliminare tutte le policy relative ai dati associate ai tag di policy nella tassonomia. Per saperne di più, consulta Applica il controllo degli accessi.
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.
Controlla le autorizzazioni IAM su una policy dei dati
Per ottenere la policy IAM per una policy dei dati, segui questi passaggi:
API
Chiama il
metodo testIamPermissions.
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.
Aggiorna le policy sui dati
L'utente o il account di servizio che aggiorna una policy dati deve disporre dell'autorizzazione bigquery.dataPolicies.update.
Se stai aggiornando il tag di criteri a cui è associata la policy di dati, devi disporre anche dell'autorizzazione datacatalog.taxonomies.get.
Se stai aggiornando le entità associate alla policy dei dati, devi disporre dell'autorizzazione bigquery.dataPolicies.setIamPolicy.
Le autorizzazioni bigquery.dataPolicies.update e bigquery.dataPolicies.setIamPolicy sono incluse nei ruoli Amministratore policy dei dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
L'autorizzazione datacatalog.taxonomies.get è inclusa nei ruoli Amministratore Data Catalog e Visualizzatore Data Catalog.
Console
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic sul nome della tassonomia per aprirla.
- Seleziona un tag di criteri.
- Fai clic su Gestisci i criteri relativi ai dati.
- Facoltativamente, modifica la regola di mascheramento.
- (Facoltativo) Aggiungi o rimuovi entità.
- Fai clic su Invia.
API
Per modificare la regola di mascheramento dei dati, chiama il metodo patch e passa una risorsa DataPolicy con un campo dataMaskingPolicy aggiornato.
Per modificare le entità associate a una policy dei dati, chiama il metodo setIamPolicy e trasmetti un Policy che aggiorna le entità a cui è concesso l'accesso ai dati mascherati.
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 le policy dei dati
L'utente o il account di servizio che crea una policy dati deve disporre dell'autorizzazione bigquery.dataPolicies.delete. Questa autorizzazione è inclusa nei ruoli Amministratore policy dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
Console
- Nella console Google Cloud , vai alla pagina Tassonomie dei tag di policy.
- Fai clic sul nome della tassonomia da aprire.
- Seleziona un tag di criteri.
- Fai clic su Gestisci i criteri relativi ai dati.
- Fai clic su accanto al criterio relativo ai dati da eliminare.
- Fai clic su Invia.
- Fai clic su Conferma.
API
Per eliminare una policy dei dati, chiama il metodo delete.
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.
Maschera i dati applicando policy dei dati a una colonna
In alternativa alla creazione di tag di policy, puoi creare policy dei dati e applicarle direttamente a una colonna.
Puoi anche implementare il mascheramento dei dati tramite i tag di governance dei dati. Per saperne di più, consulta Controlla l'accesso con i tag di governance dei dati.
Utilizza le policy dei dati
Puoi creare, aggiornare ed eliminare le policy dei dati utilizzando l'API BigQuery Data Policy. Per applicare una policy dei dati direttamente a una colonna, non puoi utilizzare la pagina Tassonomie dei tag di policy nella console Google Cloud .
Per utilizzare le policy dei dati, utilizza la risorsa v2.projects.locations.datapolicies.
Crea policy dei dati
L'utente o il account di servizio che crea una policy dati deve disporre dell'autorizzazione bigquery.dataPolicies.create.
L'autorizzazione bigquery.dataPolicies.create è inclusa nei ruoli Amministratore policy dei dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
L'autorizzazione datacatalog.taxonomies.get è inclusa nei ruoli Amministratore Data Catalog e Visualizzatore Data Catalog.
Se stai creando una policy dei dati che fa riferimento a una routine di mascheramento personalizzata, devi disporre anche delle autorizzazioni per la routine.
Se utilizzi il mascheramento personalizzato, concedi agli utenti il ruolo BigQuery Data Owner per assicurarti che dispongano delle autorizzazioni necessarie sia per le routine sia per le policy dei dati.
API
Per creare una policy dei dati, chiama il metodo create. Passa una risorsa DataPolicy che soddisfi i seguenti requisiti:
- Il campo
dataPolicyTypeè impostato suDATA_MASKING_POLICYoRAW_DATA_ACCESS_POLICY. - Il campo
dataMaskingPolicyidentifica la regola o la routine di mascheramento dei dati da utilizzare. - Il campo
dataPolicyIdfornisce un nome per la policy dei dati che è univoco all'interno del progetto in cui si trova la policy dei dati.
SQL
Per creare una policy dei dati con accesso mascherato, utilizza l'istruzione CREATE DATA_POLICY e imposta il valore di data_policy_type su DATA_MASKING_POLICY:
CREATE[ OR REPLACE] DATA_POLICY [IF NOT EXISTS] `myproject.region-us.data_policy_name` OPTIONS ( data_policy_type="DATA_MASKING_POLICY", masking_expression="ALWAYS_NULL" );
Per creare una policy dei dati con accesso non elaborato, utilizza l'istruzione CREATE DATA_POLICY e imposta il valore di data_policy_type su RAW_DATA_ACCESS_POLICY:
CREATE[ OR REPLACE] DATA_POLICY [IF NOT EXISTS] `myproject.region-us.data_policy_name` OPTIONS (data_policy_type="RAW_DATA_ACCESS_POLICY");
Se il valore di data_policy_type non è specificato, il valore predefinito è RAW_DATA_ACCESS_POLICY.
CREATE[ OR REPLACE] DATA_POLICY [IF NOT EXISTS] myproject.region-us.data_policy_name;- Il campo
data_policy_typeè impostato suDATA_MASKING_POLICYoRAW_DATA_ACCESS_POLICY. Non puoi aggiornare questo campo dopo aver creato la policy dei dati. - Il campo
masking_expressionidentifica la regola o la routine di mascheramento dei dati da utilizzare.
Aggiorna le policy sui dati
L'utente o il account di servizio che aggiorna una policy dati deve disporre dell'autorizzazione bigquery.dataPolicies.update.
L'autorizzazione bigquery.dataPolicies.update è inclusa nei ruoli Amministratore policy dei dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
API
Per modificare la regola di mascheramento dei dati, chiama il metodo patch e passa una risorsa DataPolicy con un campo dataMaskingPolicy aggiornato.
SQL
Utilizza l'istruzione ALTER DATA_POLICY per aggiornare le regole di mascheramento dei dati. Ad esempio:
ALTER DATA_POLICY `myproject.region-us.data_policy_name` SET OPTIONS ( data_policy_type="DATA_MASKING_POLICY", masking_expression="SHA256" );
Puoi anche concedere l'controllo dell'accesso granulare dell'accesso alle policy dei dati.
Le autorizzazioni per concedere l'controllo dell'accesso granulare dell'accesso alle policy relative ai dati e per gestire le policy relative ai dati sono diverse. Per controllare le autorizzazioni di controllo dell'accesso granulare dell'accesso, devi aggiornare il campo grantees della policy dei dati. Per controllare l'accesso alle policy dei dati, imposta i ruoli IAM utilizzando il metodo setIamPolicy.
Per impostare i beneficiari su una policy dei dati, utilizza il metodo v2 patch
. Per gestire le autorizzazioni delle policy dei dati, utilizza il metodo v1
setIamPolicy.
API
Per concedere l'controllo dell'accesso granulare dell'accesso alle policy dei dati, chiama il metodo patch e passa una risorsa DataPolicy con un campo grantees aggiornato.
SQL
Per concedere controllo dell'accesso granulare dell'accesso alle policy dei dati, utilizza l'istruzione GRANT FINE_GRAINED_READ per aggiungere grantees.
Ad esempio:
GRANT FINE_GRAINED_READ ON DATA_POLICY `myproject.region-us.data_policy_name` TO "principal://goog/subject/user1@example.com","principal://goog/subject/user2@example.com"
Per revocare l'accesso controllo dell'accesso granulare dell'accesso dalle policy dei dati, utilizza l'istruzione REVOKE FINE_GRAINED_READ per rimuovere grantees.
Ad esempio:
REVOKE FINE_GRAINED_READ ON DATA_POLICY `myproject.region-us.data_policy_name` FROM "principal://goog/subject/user1@example.com","principal://goog/subject/user2@example.com"
Elimina le policy dei dati
L'utente o il account di servizio che crea una policy dati deve disporre dell'autorizzazione bigquery.dataPolicies.delete. Questa autorizzazione è inclusa nei ruoli Amministratore policy dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
API
Per eliminare una policy dei dati, chiama il metodo delete.
SQL
Utilizza l'istruzione DROP DATA_POLICY per eliminare una policy dei dati:
DROP DATA_POLICY `myproject.region-us.data_policy_name`;
Assegna una policy dei dati direttamente a una colonna
Puoi assegnare una policy dei dati direttamente a una colonna senza utilizzare i tag di policy.
Prima di iniziare
Per ottenere le autorizzazioni necessarie per assegnare una policy dei dati direttamente a una colonna, chiedi all'amministratore di concederti il ruolo IAM BigQuery Data Policy Admin (roles/bigquerydatapolicy.admin) sulla tabella.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per assegnare una policy dei dati direttamente a una colonna. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per assegnare una policy dati direttamente a una colonna sono necessarie le seguenti autorizzazioni:
-
bigquery.tables.update -
bigquery.tables.setColumnDataPolicy -
bigquery.dataPolicies.attach
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Assegna una policy dei dati
Per assegnare una policy dei dati direttamente a una colonna, esegui una delle seguenti operazioni:
SQL
Per collegare una policy dei dati a una colonna, utilizza le istruzioni DDL CREATE
TABLE, ALTER TABLE ADD
COLUMN o ALTER COLUMN SET
OPTIONS.
L'esempio seguente utilizza l'istruzione CREATE TABLE e imposta le policy dei dati su una colonna:
CREATE TABLE myproject.table1 ( name INT64 OPTIONS (data_policies=["{'name':'myproject.region-us.data_policy_name1'}", "{'name':'myproject.region-us.data_policy_name2'}"]) );
L'esempio seguente utilizza ALTER COLUMN SET OPTIONS per aggiungere una policy dei dati a una colonna esistente di una tabella:
ALTER TABLE myproject.table1 ALTER COLUMN column_name SET OPTIONS ( data_policies += ["{'name':'myproject.region-us.data_policy_name1'}", "{'name':'myproject.region-us.data_policy_name2'}"]);
API
Per assegnare una policy dati a una colonna, chiama il metodo patch sulla tabella e aggiorna lo schema della tabella con le policy dati applicabili.
Annulla l'assegnazione di una policy dei dati
Per annullare l'assegnazione di una policy dati direttamente su una colonna, esegui una delle seguenti operazioni:
SQL
Per scollegare una policy dati da una colonna, utilizza l'istruzione DDL ALTER COLUMN SET
OPTIONS.
L'esempio seguente utilizza ALTER COLUMN SET OPTIONS per rimuovere tutte le policy di dati da una colonna esistente di una tabella:
ALTER TABLE myproject.table1 ALTER COLUMN column_name SET OPTIONS ( data_policies = []);
L'esempio seguente utilizza ALTER COLUMN SET OPTIONS per sostituire le policy dei dati di una colonna esistente in una tabella:
ALTER TABLE myproject.table1 ALTER COLUMN column_name SET OPTIONS ( data_policies = ["{'name':'myproject.region-us.new_data_policy_name'}"]);
API
Per annullare l'assegnazione di una policy dei dati a una colonna, chiama il metodo patch sulla tabella e aggiorna lo schema della tabella con policy dei dati vuote o aggiornate.
Limitazioni
L'assegnazione di una policy dei dati direttamente a una colonna è soggetta alle seguenti limitazioni:
- Devi utilizzare la risorsa
v2.projects.locations.datapolicies. - Non puoi applicare sia i tag di policy sia le policy dei dati alla stessa colonna.
- Puoi collegare un massimo di otto policy dati a una colonna.
- Una tabella può fare riferimento a un massimo di 1000 policy dei dati univoche tramite le sue colonne.
- Una query può fare riferimento a un massimo di 2000 policy dei dati.
- Puoi eliminare una policy dei dati solo se non è presente alcun riferimento a questa policy in una colonna della tabella.
- Se un utente ha solo il ruolo
maskedAccess, la chiamata APItabledata.listnon va a buon fine. - Le operazioni di copia delle tabelle non riescono sulle tabelle protette da policy dei dati delle colonne se l'utente non dispone dell'accesso ai dati non elaborati.
- Le operazioni di copia delle tabelle tra regioni non supportano le tabelle protette da policy dei dati delle colonne.
- Le policy dei dati delle colonne non sono disponibili nelle regioni BigQuery Omni.
- L'esecuzione di SQL precedente non va a buon fine se la tabella di destinazione ha policy dei dati delle colonne.
- I job di caricamento non supportano gli schemi specificati dall'utente con policy dei dati delle colonne.
- Se sovrascrivi una tabella di destinazione, il sistema rimuove tutti i tag di policy esistenti dalla tabella, a meno che non utilizzi il flag
--destination_schemaper specificare uno schema con policy dei dati delle colonne. - Per impostazione predefinita, l'oscuramento dei dati non supporta le colonne partizionate o raggruppate. Si tratta di una limitazione generale del mascheramento dei dati, non specifica delle policy dei dati delle colonne. Il mascheramento dei dati su colonne partizionate o raggruppate in cluster può aumentare notevolmente i costi delle query.
- Non puoi assegnare una policy dei dati direttamente a una colonna nelle tabelle degli oggetti, nelle tabelle esterne non BigLake, nelle tabelle esterne Apache Iceberg e in Delta Lake.
- L'accesso granulare può essere concesso solo a livello di policy dei dati. Per saperne di più, consulta Aggiorna le policy relative ai dati.
- Non puoi annullare l'assegnazione dell'ultima policy dei dati rimanente su una colonna utilizzando l'API BigQuery Data Policy. Puoi annullare l'assegnazione dell'ultima policy dei dati rimanente su una colonna utilizzando l'istruzione DDL
ALTER COLUMN SET OPTIONS.