GoogleSQL per BigQuery supporta le seguenti funzioni DLP che consentono la crittografia e la decriptazione interoperabili tra BigQuery e Cloud Data Loss Prevention (Cloud DLP) utilizzando AES-SIV.
Elenco funzioni
Nome | Riepilogo |
---|---|
DLP_DETERMINISTIC_ENCRYPT
|
Cripta i dati con un algoritmo compatibile con DLP. |
DLP_DETERMINISTIC_DECRYPT
|
Decripta i dati criptati con DLP. |
DLP_KEY_CHAIN
|
Recupera una chiave di crittografia dei dati con wrapping da Cloud Key Management Service. |
DLP_DETERMINISTIC_ENCRYPT
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context)
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context, surrogate)
Description
Questa funzione ricava una chiave di crittografia dei dati da key
e context
e poi
cripta plaintext
. Facoltativamente, puoi utilizzare surrogate
per anteporre il risultato della crittografia.
Definizioni
key
: un valoreBYTES
serializzato restituito daDLP_KEY_CHAIN
.key
deve essere impostato suENABLED
in Cloud KMS. Per informazioni su come generare una chiave con wrapping, vedi gcloud kms encryption.plaintext
: il valoreSTRING
da criptare.context
: un valoreSTRING
fornito dall'utente, utilizzato con una chiave Cloud KMS per ricavare una chiave di crittografia dei dati. Per ulteriori informazioni, consulta CryptoDeterministicConfig:context.surrogate
: un valoreSTRING
che puoi anteporre all'output.
Tipo di dati restituiti
STRING
Esempio
SELECT
DLP_DETERMINISTIC_ENCRYPT(
DLP_KEY_CHAIN(
'gcp-kms://projects/my_project/locations/us-central1/keyRings/keyringtest/cryptoKeys/testkey',
b'\123\044\290\876....'),
plaintext,
'',
'test') AS results
/*--------------------------------------*
| results |
+--------------------------------------+
| AXDEwUnZsTf/NzxoHaC8AZXcawWuma7L39A= |
*--------------------------------------*/
DLP_DETERMINISTIC_DECRYPT
DLP_DETERMINISTIC_DECRYPT(key, ciphertext, context)
DLP_DETERMINISTIC_DECRYPT(key, ciphertext, context, surrogate)
Description
Questa funzione decripta ciphertext
utilizzando una chiave di crittografia derivata da key
e context
. Facoltativamente, puoi utilizzare surrogate
per anteporre il risultato della decrittografia.
Definizioni
key
: un valoreBYTES
serializzato restituito daDLP_KEY_CHAIN
.key
deve essere impostato suENABLED
in Cloud KMS. Per informazioni su come generare una chiave con wrapping, vedi gcloud kms encryption.ciphertext
: il valoreSTRING
da decriptare.context
: un valoreSTRING
utilizzato con una chiave Cloud KMS per ricavare una chiave di crittografia dei dati. Per ulteriori informazioni, consulta CryptoDeterministicConfig:context.surrogate
: un valoreSTRING
che puoi anteporre all'output.
Tipo di dati restituiti
STRING
Esempio
SELECT
DLP_DETERMINISTIC_DECRYPT(
DLP_KEY_CHAIN(
'gcp-kms://projects/myproject/locations/us-central1/keyRings/keyringtest/cryptoKeys/testkey',
b'\123\044\290\876....'),
'your_surrogate(36)AdFnA6r5doSDWxPwW/W4vBaa4iOvDagC8z8=',
'',
'your_surrogate') AS results
/*-----------*
| results |
+-----------+
| plaintext |
*-----------*/
DLP_KEY_CHAIN
DLP_KEY_CHAIN(kms_resource_name, wrapped_key)
Description
Puoi utilizzare questa funzione invece dell'argomento key
per le funzioni di crittografia deterministiche DLP. Questa funzione consente di utilizzare le funzioni di crittografia AES-SIV senza includere le chiavi plaintext
in una query.
Definizioni
kms_resource_name
: un valore letteraleSTRING
che contiene il percorso della risorsa per la chiave Cloud KMS.kms_resource_name
non può essereNULL
e deve risiedere nella stessa regione Cloud in cui viene eseguita questa funzione. Questo argomento viene utilizzato per ricavare la chiave di crittografia dei dati nelle funzioniDLP_DETERMINISTIC_DECRYPT
eDLP_DETERMINISTIC_ENCRYPT
. Una chiave Cloud KMS si presenta così:gcp-kms://projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-crypto-key
wrapped_key
: un valore letteraleBYTES
che rappresenta un testo del secret scelto dall'utente. Questo testo secret può essere di 16, 24 o 32 byte. Per informazioni su come generare una chiave con wrapping, vedi gcloud kmsEncrypt.
Tipo di dati restituiti
STRUCT
Esempio
SELECT
DLP_DETERMINISTIC_ENCRYPT(
DLP_KEY_CHAIN(
'gcp-kms://projects/my_project/locations/us-central1/keyRings/keyringtest/cryptoKeys/testkey',
b'\123\044\290\876....'),
plaintext,
'',
'test') AS results
/*--------------------------------------*
| results |
+--------------------------------------+
| AXDEwUnZsTf/NzxoHaC8AZXcawWuma7L39A= |
*--------------------------------------*/