GoogleSQL pour BigQuery est compatible avec les fonctions DLP suivantes qui permettent le chiffrement et le déchiffrement interopérables entre BigQuery et Cloud Data Loss Prevention (Cloud DLP), en utilisant AES-SIV.
Liste des fonctions
Nom | Résumé |
---|---|
DLP_DETERMINISTIC_ENCRYPT
|
Chiffre les données avec un algorithme compatible avec la protection contre la perte de données. |
DLP_DETERMINISTIC_DECRYPT
|
Déchiffre les données chiffrées par la protection contre la perte de données. |
DLP_KEY_CHAIN
|
Récupère une clé de chiffrement de données encapsulée par Cloud Key Management Service. |
DLP_DETERMINISTIC_ENCRYPT
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context)
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context, surrogate)
Description
Cette fonction dérive une clé de chiffrement des données à partir de key
et context
, puis chiffre plaintext
. Vous pouvez éventuellement utiliser surrogate
pour ajouter le préfixe du résultat de chiffrement.
Définitions
key
: valeurBYTES
sérialisée renvoyée parDLP_KEY_CHAIN
.key
doit être défini surENABLED
dans Cloud KMS. Pour en savoir plus sur la génération d'une clé encapsulée, consultez chiffrement kms gcloud.plaintext
: valeurSTRING
à chiffrer.context
: valeurSTRING
fournie par l'utilisateur, utilisée avec une clé Cloud KMS pour obtenir une clé de chiffrement des données. Pour en savoir plus, consultez la page CryptoDeterministicConfig:context.surrogate
: valeurSTRING
que vous pouvez ajouter à la sortie.
Type de données renvoyé
STRING
Exemple
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
Cette fonction déchiffre ciphertext
à l'aide d'une clé de chiffrement dérivée de key
et context
. Vous pouvez éventuellement utiliser surrogate
pour ajouter le résultat de déchiffrement.
Définitions
key
: valeurBYTES
sérialisée renvoyée parDLP_KEY_CHAIN
.key
doit être défini surENABLED
dans Cloud KMS. Pour en savoir plus sur la génération d'une clé encapsulée, consultez chiffrement kms gcloud.ciphertext
: valeurSTRING
à déchiffrer.context
: valeurSTRING
utilisée avec une clé Cloud KMS pour obtenir une clé de chiffrement des données. Pour en savoir plus, consultez la page CryptoDeterministicConfig:context.surrogate
: valeurSTRING
que vous pouvez ajouter à la sortie.
Type de données renvoyé
STRING
Exemple
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
Vous pouvez utiliser cette fonction à la place de l'argument key
pour les fonctions de chiffrement déterministes DLP. Cette fonction vous permet d'utiliser les fonctions de chiffrement AES-SIV sans inclure de clés plaintext
dans une requête.
Définitions
kms_resource_name
: un littéral de typeSTRING
contenant le chemin d'accès à la clé Cloud KMS. La valeurkms_resource_name
ne peut pas êtreNULL
et doit se trouver dans la même région Cloud que celle dans laquelle cette fonction est exécutée. Cet argument est utilisé pour dériver la clé de chiffrement des données dans les fonctionsDLP_DETERMINISTIC_DECRYPT
etDLP_DETERMINISTIC_ENCRYPT
. Une clé Cloud KMS se présente comme suit :gcp-kms://projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-crypto-key
wrapped_key
: un littéral de typeBYTES
qui représente un texte secret choisi par l'utilisateur. Ce texte secret peut comporter 16, 24 ou 32 octets. Pour en savoir plus sur la génération d'une clé encapsulée, consultez chiffrement kms gcloud.
Type de données renvoyé
STRUCT
Exemple
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= |
*--------------------------------------*/