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 :

  1. Crea una tassonomia con almeno un tag di criteri.
  2. (Facoltativo) Concedi il ruolo Lettore granulare Data Catalog a una o più entità per uno o più tag di criteri che hai creato.
  3. 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.
  4. Imposta il tag di criteri su una colonna. che mappa le norme relative ai dati associate altag di criteriy alla colonna selezionata.
  5. 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

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the Data Catalog and BigQuery Data Policy APIs.

    Enable the APIs

  4. BigQuery viene attivato automaticamente nei nuovi progetti, ma potresti doverlo attivare in un progetto preesistente.
  5. Enable the BigQuery API.

    Enable the API

  6. 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.
  7. Creazione tassonomie

    All'utente o account di servizio che crea una tassonomia deve essere concesso il ruolo Amministratore tag di policy Data Catalog.

    Console

    1. Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .

      Apri la pagina Tassonomie di tag di criteri

    2. Fai clic su Crea tassonomia.
    3. Nella pagina Nuova tassonomia:

      1. In Nome tassonomia, inserisci il nome della tassonomia che vuoi creare.
      2. In Descrizione, inserisci una descrizione.
      3. Se necessario, modifica il progetto elencato in Progetto.
      4. Se necessario, modifica la posizione elencata in Posizione.
      5. In Tag norma, inserisci un nome e una descrizione per il tag di criteri.
      6. Per aggiungere un tag di criteri figlio a un tag di criteri, fai clic su Aggiungi tag secondario.
      7. Per aggiungere un nuovo tag di criteri allo stesso livello di un altro tag di criteri, fai clic su + Aggiungi tag di policy.
      8. Continua ad aggiungere tag policy e tag policy figlio in base alle esigenze della tua tassonomia.
      9. Al termine della creazione dei tag criterio per la gerarchia, fai clic su Crea.

    API

    Per utilizzare le tassonomie esistenti, chiama taxonomies.import al posto dei primi due passaggi della seguente procedura.

    1. Chiama taxonomies.create per creare una tassonomia.
    2. Chiama taxonomies.policytag.create per creare un tag di criteri.

    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

    1. Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .

      Apri la pagina Tassonomie di tag di criteri

    2. Fai clic sul nome della tassonomia da aprire.
    3. Seleziona un tag di criteri.
    4. Fai clic su Gestisci i criteri relativi ai dati.
    5. 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.
    6. 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 e bigquery.routines.list a livello di progetto.
    7. 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.
    8. Fai clic su Invia.

    API

    1. Chiama il metodo create. Trasmetti una risorsa DataPolicy che soddisfi i seguenti requisiti:

      • Il campo dataPolicyType è impostato su DATA_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.
    2. Chiama il metodo setIamPolicy e trasmetti un Policy. Policy deve identificare le entità a cui viene concesso l'accesso ai dati mascherati e specificare roles/bigquerydatapolicy.maskedReader per il campo role.

    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 .

    1. Apri la pagina BigQuery nella console Trusted Cloud .

      Vai alla pagina BigQuery

    2. In BigQuery Explorer, individua e seleziona la tabella da aggiornare. Si apre lo schema della tabella.

    3. Fai clic su Modifica schema.

    4. Nella schermata Schema attuale, seleziona la colonna di destinazione e fai clic su Aggiungi tag di policy.

    5. Nella schermata Aggiungi un tag di policy, individua e seleziona il tag di criteri che vuoi applicare alla colonna.

    6. Fai clic su Seleziona. La schermata dovrebbe essere simile a questa:

      Modifica schema.

    7. Fai clic su Salva.

    bq

    1. 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.
    2. Modifica schema.json per impostare un tag di criteri su una colonna. Per il valore del campo names di policyTags, 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"]
         }
       },
       ...
      ]
    3. Aggiorna lo schema.

      bq update \
         project-id:dataset.table schema.json

    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

    1. Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .

      Apri la pagina Tassonomie di tag di criteri

    2. Fai clic sul nome della tassonomia da aprire.
    3. Seleziona un tag di criteri.
    4. Fai clic su Gestisci i criteri relativi ai dati.
    5. (Facoltativo) Modifica la regola di mascheramento.
    6. (Facoltativo) Aggiungi o rimuovi i principal.
    7. Fai clic su Invia.

    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

    1. Apri la pagina Tassonomie di tag di criteri nella consoleTrusted Cloud .

      Apri la pagina Tassonomie di tag di criteri

    2. Fai clic sul nome della tassonomia da aprire.
    3. Seleziona un tag di criteri.
    4. Fai clic su Gestisci i criteri relativi ai dati.
    5. Fai clic su accanto al criterio relativo ai dati da eliminare.
    6. Fai clic su Invia.
    7. Fai clic su Conferma.

    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:

    • Il campo dataPolicyType è impostato su DATA_MASKING_POLICY o RAW_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.

    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:

    • bigquery.tables.update
    • bigquery.tables.setColumnDataPolicy
    • bigquery.dataPolicies.get

    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:

    • 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 API tabledata.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.