Mascherare i dati delle colonne
Questo documento mostra come implementare la maschera dei dati per oscurare selettivamente i dati sensibili. Implementando il mascheramento dei dati, puoi fornire diversi livelli di visibilità a gruppi di utenti diversi. Per informazioni generali, vedi Introduzione al mascheramento dei dati.
Per implementare il mascheramento dei dati, aggiungi una norma relativa ai 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 Data Catalog a una o più entità per uno o più tag di criteri 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. che mappa le norme relative ai dati associate altag di criteriy alla colonna selezionata.
- Assegna agli utenti che devono avere accesso ai dati mascherati il ruolo Lettore mascherato BigQuery. Come best practice, assegna il ruolo Lettore mascherato BigQuery a livello di criteri dei dati. L'assegnazione del ruolo a livello di progetto o superiore concede agli utenti le autorizzazioni per tutti i criteri dei dati nel progetto, il che può causare problemi dovuti a autorizzazioni eccessive.
Puoi utilizzare la console Trusted Cloud o l'API BigQuery Data Policy per lavorare con i criteri dei dati.
Una volta completati questi passaggi, gli utenti che eseguono query sulla colonna ricevono dati non mascherati, dati mascherati o un errore di accesso negato, a seconda dei gruppi a cui appartengono e dei ruoli che sono stati loro concessi. Per ulteriori informazioni, vedi Come interagiscono i ruoli Lettore mascherato e Lettore granulare.
In alternativa, puoi applicare le norme sui dati direttamente a una colonna (Anteprima). Per maggiori informazioni, consulta Mascherare i dati con le norme sui dati direttamente in una colonna.
Mascherare i dati con i tag di policy
Utilizza i tag di criteri per oscurare selettivamente i dati sensibili.
Prima di iniziare
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the Data Catalog and BigQuery Data Policy APIs.
- BigQuery viene attivato automaticamente nei nuovi progetti, ma potresti doverlo attivare in un progetto preesistente.
-
Enable the BigQuery API.
- Se stai creando una policy dei dati che fa riferimento a una routine di mascheramento personalizzata, crea la UDF di mascheramento associata in modo che sia disponibile nei passaggi successivi.
- Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .
- 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 elencata in Posizione.
- In Tag norma, inserisci un nome e una descrizione per il tag di criteri.
- Per aggiungere un tag di criteri figlio a un tag di criteri, fai clic su Aggiungi tag secondario.
- 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 policy e tag policy figlio in base alle esigenze della tua tassonomia.
- Al termine della creazione dei tag criterio per la gerarchia, fai clic su Crea.
- Chiama
taxonomies.create
per creare una tassonomia. - Chiama
taxonomies.policytag.create
per creare un tag di criteri. - Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .
- Fai clic sul nome della tassonomia da aprire.
- Seleziona un tag di criteri.
- Fai clic su Gestisci i criteri relativi ai dati.
- In Nome della norma sui dati, digita un nome per la norma sui dati. Il nome della norma deve essere univoco all'interno del progetto in cui si trova.
- Per 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.get
ebigquery.routines.list
a 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 che inserisci qui viene concesso il ruolo Lettore mascherato BigQuery.
- Fai clic su Invia.
Chiama il metodo
create
. Trasmetti una risorsaDataPolicy
che soddisfi i seguenti requisiti:- Il campo
dataPolicyType
è impostato suDATA_MASKING_POLICY
. - Il campo
dataMaskingPolicy
identifica la regola o la routine di mascheramento dei dati da utilizzare. - Il campo
dataPolicyId
fornisce un nome per la norma sui dati che è univoco all'interno del progetto in cui si trova la norma sui dati.
- Il campo
Chiama il metodo
setIamPolicy
e trasmetti unPolicy
.Policy
deve identificare le entità a cui viene concesso l'accesso ai dati mascherati e specificareroles/bigquerydatapolicy.maskedReader
per il camporole
.Apri la pagina BigQuery nella console Trusted Cloud .
In BigQuery Explorer, individua e seleziona la tabella da aggiornare. Si apre 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 a questa:
Fai clic su Salva.
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 contenente 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
names
dipolicyTags
, utilizza il nome risorsa del tag 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
- Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .
- Fai clic sul nome della tassonomia da aprire.
- Seleziona un tag di criteri.
- Fai clic su Gestisci i criteri relativi ai dati.
- (Facoltativo) Modifica la regola di mascheramento.
- (Facoltativo) Aggiungi o rimuovi i principal.
- Fai clic su Invia.
- Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .
- 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.
- Il campo
dataPolicyType
è impostato suDATA_MASKING_POLICY
oRAW_DATA_ACCESS_POLICY
. - Il campo
dataMaskingPolicy
identifica la regola o la routine di mascheramento dei dati da utilizzare. - Il campo
dataPolicyId
fornisce un nome per la norma sui dati che è univoco all'interno del progetto in cui si trova la norma sui dati. -
bigquery.tables.update
-
bigquery.tables.setColumnDataPolicy
-
bigquery.dataPolicies.get
- 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 allegare un massimo di otto norme sui dati a una colonna.
- Una tabella può fare riferimento a un massimo di 1000 policy dei dati univoche tramite le sue colonne.
- Non puoi applicare sia i tag di policy sia le policy dei dati alla stessa colonna.
- Una query può fare riferimento a un massimo di 2000 norme sui dati.
- Puoi eliminare una norma sui dati solo se non viene fatto riferimento a nessuna colonna della tabella.
- Se un utente ha solo il ruolo
maskedAccess
, la chiamata APItabledata.list
non riesce. - Le operazioni di copia delle tabelle non vanno a buon fine per le tabelle protette da criteri sui dati delle colonne se l'utente non dispone dell'accesso ai dati non elaborati.
- Le operazioni di copia delle tabelle tra regioni diverse non supportano le tabelle protette da criteri per i dati delle colonne.
- Le policy dei dati delle colonne non sono disponibili nelle regioni BigQuery Omni.
- L'SQL legacy non riesce se la tabella di destinazione ha policy dei dati a livello di colonna.
- I job di caricamento non supportano gli schemi specificati dall'utente con norme sui dati delle colonne.
- Se sovrascrivi una tabella di destinazione, il sistema rimuove tutti i tag dei criteri esistenti dalla tabella, a meno che tu non utilizzi il flag
--destination_schema
per specificare uno schema con criteri relativi ai dati delle colonne. - Per impostazione predefinita, il mascheramento dei dati non supporta le colonne partizionate o in cluster. Si tratta di una limitazione generale del mascheramento dei dati, non specifica per le norme relative ai dati delle colonne. La maschera dei dati nelle colonne partizionate o in cluster può aumentare significativamente i costi delle query.
Creazione tassonomie
All'utente o account di servizio che crea una tassonomia deve essere concesso il ruolo Amministratore tag di policy Data Catalog.
Console
API
Per utilizzare le tassonomie esistenti, chiama
taxonomies.import
al posto dei primi due passaggi della seguente procedura.
Utilizzare i tag di policy
Per saperne di più su come utilizzare i tag delle norme, ad esempio come visualizzarli o aggiornarli, consulta Utilizzare i tag delle norme. Per le best practice, consulta Best practice per l'utilizzo dei tag di criteri in BigQuery.
Creare norme relative ai dati
L'utente o il account di servizio che crea una norma sui 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 norma sui dati che fa riferimento a una routine di mascheramento personalizzata, devi anche disporre delle autorizzazioni per le routine.
In caso di mascheramento personalizzato, concedi agli utenti i ruoli Amministratore BigQuery o Proprietario dati BigQuery per assicurarti che dispongano delle autorizzazioni necessarie per le routine e le norme sui dati.
Puoi creare fino a nove policy relative ai dati per un tag di criteri. Uno di questi criteri è riservato alle impostazioni di controllo dell'accesso a livello di colonna.
Console
API
Imposta tag di policy sulle colonne
Imposta una policy dei dati su una colonna collegando il tag di criteri associato alla policy dei dati alla colonna.
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 norme Data Catalog e Visualizzatore progetto.
bigquery.tables.setCategory
è incluso nei ruoli
BigQuery Admin (roles/bigquery.admin
) e
BigQuery Data Owner (roles/bigquery.dataOwner
).
Per visualizzare le tassonomie e i tag di policy in tutti i progetti di un'organizzazione nella
consoleTrusted Cloud , gli utenti devono disporre dell'autorizzazione resourcemanager.organizations.get
, inclusa nel ruolo Visualizzatore organizzazione.
Console
Imposta il tag di criteri modificando uno schema utilizzando la consoleTrusted Cloud .
bq
API
Per le tabelle esistenti, chiama il numero tables.patch
o, per le nuove tabelle, chiama il numero
tables.insert
. Utilizza la proprietà
schema
dell'oggetto Table
che trasmetti
per impostare un tag di criteri nella definizione dello schema. Consulta lo schema dell'esempio di riga di comando
per scoprire come impostare untag di criteriy.
Quando lavori con una tabella esistente, è preferibile il metodo tables.patch
, perché il metodo tables.update
sostituisce l'intera risorsa tabella.
Applica controllo di accesso
Quando crei una policy relativa ai dati per un tag di criteri, controllo dell'accesso viene applicato automaticamente. Tutte le colonne a cui è applicato questo tag di criteri restituiscono dati mascherati in risposta alle query degli utenti che hanno il ruolo Lettore mascherato.
Per interrompere l'applicazione del controllo dell'accesso, devi prima eliminare tutti i criteri dei dati associati ai tag criterio nella tassonomia. Per saperne di più, consulta Applicare il controllo dell'accesso.
Controllare le autorizzazioni IAM per una norma sui dati
Per visualizzare le autorizzazioni che hai per una norma sui dati, chiama il metodo
testIamPermissions
.
Aggiornare le norme relative ai dati
L'utente o il account di servizio che aggiorna una norma sui dati deve disporre dell'autorizzazione
bigquery.dataPolicies.update
.
Se stai aggiornando il tag di criteri a cui sono associati i criteri relativi ai dati, devi disporre anche dell'autorizzazione datacatalog.taxonomies.get
.
Se stai aggiornando i principal associati alle norme sui 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
API
Per modificare la regola di mascheramento dei dati, chiama il metodo
patch
e trasmetti una risorsa
DataPolicy
con un campo dataMaskingPolicy
aggiornato.
Per modificare le entità associate a una policy dei dati, chiama il metodo
setIamPolicy
e passa un
Policy
che aggiorna
le entità a cui viene concesso l'accesso ai dati mascherati.
Eliminare i criteri relativi ai dati
L'utente o il account di servizio che crea una norma sui dati deve disporre dell'autorizzazione
bigquery.dataPolicies.delete
. Questa autorizzazione è inclusa nei ruoli
Amministratore policy dei dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
Console
API
Per eliminare un criterio relativo ai dati, chiama il metodo
delete
.
Mascherare i dati applicando criteri dei dati a una colonna
In alternativa alla creazione di tag di criteri, puoi creare criteri relativi ai dati e applicarli direttamente a una colonna.
Utilizzare le norme relative ai dati
Puoi creare, aggiornare ed eliminare criteri dei dati utilizzando l'API BigQuery Data Policy. Per applicare una norma sui dati direttamente a una colonna, non puoi utilizzare la pagina Tassonomie dei tag delle norme nella console Trusted Cloud .
Per lavorare con le norme sui dati, utilizza la risorsa
v2.projects.locations.datapolicies
.
Creare norme relative ai dati
L'utente o il account di servizio che crea una norma sui 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 norma sui dati che fa riferimento a una routine di mascheramento personalizzata, devi anche disporre delle autorizzazioni per le routine.
Se utilizzi il mascheramento personalizzato, assegna agli utenti il ruolo Proprietario dati BigQuery per assicurarti che dispongano delle autorizzazioni necessarie sia per le routine sia per le norme sui dati.
Per creare una norma sui dati, chiama il metodo
create
. Trasmetti una risorsa
DataPolicy
che soddisfi i seguenti requisiti:
Aggiornare le norme relative ai dati
L'utente o il account di servizio che aggiorna una norma sui 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.
Per modificare la regola di mascheramento dei dati, chiama il metodo
patch
e trasmetti una risorsa
DataPolicy
con un campo dataMaskingPolicy
aggiornato.
Puoi anche concedere l'controllo dell'accesso dell'accesso granulare alle norme sui dati.
Le autorizzazioni per concedere l'accesso al controllo dell'accesso granulare ai criteri relativi ai dati e per gestire i criteri
relativi ai dati sono diverse. Per controllare le autorizzazioni di controllo dell'accesso granulare, devi aggiornare
il campo grantees
del criterio dei dati. Per controllare l'accesso alle norme sui dati,
imposta i ruoli IAM utilizzando il metodo
setIamPolicy
.
Per impostare i beneficiari di una norma sui dati, utilizza il metodo v2 patch
. Per gestire le autorizzazioni dei criteri relativi ai dati, utilizza il metodo v1
setIamPolicy
.
Per concedere l'controllo dell'accesso dell'accesso granulare alle norme sui dati, chiama il metodo
patch
e trasmetti una risorsa
DataPolicy
con un campo grantees
aggiornato.
Eliminare i criteri relativi ai dati
L'utente o il account di servizio che crea una norma sui dati deve disporre dell'autorizzazione
bigquery.dataPolicies.delete
. Questa autorizzazione è inclusa nei ruoli
Amministratore policy dei dati BigQuery, Amministratore BigQuery e Proprietario dati BigQuery.
Per eliminare un criterio relativo ai dati, chiama il metodo
delete
.
Assegnare un criterio per i dati direttamente a una colonna
Puoi assegnare un criterio dei dati direttamente a una colonna senza utilizzare i tag di criteri.
Prima di iniziare
Per ottenere le autorizzazioni
necessarie per assegnare una norma sui dati direttamente a una colonna,
chiedi all'amministratore di concederti
il ruolo IAM Amministratore norme sui dati BigQuery (roles/bigquerydatapolicy.admin
) nella 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 dei dati direttamente a una colonna sono necessarie le seguenti autorizzazioni:
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Assegnare una policy per i dati
Per assegnare una norma sui dati direttamente a una colonna, esegui una delle seguenti operazioni:
SQL
Per collegare un criterio dei dati a una colonna, utilizza le istruzioni DDL CREATE
TABLE
, ALTER TABLE ADD
COLUMN
o ALTER COLUMN SET
OPTIONS
.
Il seguente esempio utilizza l'istruzione CREATE TABLE
e imposta i criteri di gestione 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 norma sui 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 un criterio di gestione dei dati a una colonna, chiama il metodo
patch
nella tabella
e aggiorna lo schema della tabella con i criteri di gestione dei dati applicabili.
Limitazioni
L'assegnazione di una policy dei dati direttamente a una colonna è soggetta alle seguenti limitazioni: