GoogleSQL for BigQuery unterstützt die folgenden DLP-Funktionen, die eine interoperable Verschlüsselung und Entschlüsselung zwischen BigQuery und Cloud Data Loss Prevention (Cloud DLP) mithilfe vonAES-SIV ermöglichen.
Funktionsliste
Name | Fazit |
---|---|
DLP_DETERMINISTIC_ENCRYPT
|
Verschlüsselt Daten mit einem DLP-kompatiblen Algorithmus. |
DLP_DETERMINISTIC_DECRYPT
|
Entschlüsselt DLP-verschlüsselte Daten. |
DLP_KEY_CHAIN
|
Ruft einen Datenverschlüsselungsschlüssel ab, der vom Cloud Key Management Service verpackt ist. |
DLP_DETERMINISTIC_ENCRYPT
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context)
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context, surrogate)
Beschreibung
Diese Funktion leitet einen Datenverschlüsselungsschlüssel von key
und context
ab und verschlüsselt dann plaintext
. Optional können Sie surrogate
verwenden, um das Verschlüsselungsergebnis voranzustellen.
Definitionen
key
: Ein serialisierterBYTES
-Wert, der vonDLP_KEY_CHAIN
zurückgegeben wird.key
muss in Cloud KMS aufENABLED
festgelegt werden. Informationen zum Generieren eines verpackten Schlüssels finden Sie unter gcloud kms encrypted.plaintext
: Der zu verschlüsselndeSTRING
-Wert.context
: Ein vom Nutzer bereitgestellterSTRING
-Wert, der mit einem Cloud KMS-Schlüssel zum Ableiten eines Datenverschlüsselungsschlüssels verwendet wird. Weitere Informationen finden Sie unter CryptoDeterministicConfig:context.surrogate
: EinSTRING
-Wert, den Sie der Ausgabe voranstellen können.
Rückgabedatentyp
STRING
Beispiel
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)
Beschreibung
Diese Funktion entschlüsselt ciphertext
mit einem von key
und context
abgeleiteten Verschlüsselungsschlüssel. Optional können Sie surrogate
verwenden, um das Entschlüsselungsergebnis voranzustellen.
Definitionen
key
: Ein serialisierterBYTES
-Wert, der vonDLP_KEY_CHAIN
zurückgegeben wird.key
muss in Cloud KMS aufENABLED
festgelegt werden. Informationen zum Generieren eines verpackten Schlüssels finden Sie unter gcloud kms encrypted.ciphertext
: Der zu entschlüsselndeSTRING
-Wert.context
: EinSTRING
-Wert, der mit einem Cloud KMS-Schlüssel zum Ableiten eines Datenverschlüsselungsschlüssels verwendet wird. Weitere Informationen finden Sie unter CryptoDeterministicConfig:context.surrogate
: EinSTRING
-Wert, den Sie der Ausgabe voranstellen können.
Rückgabedatentyp
STRING
Beispiel
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)
Beschreibung
Sie können diese Funktion anstelle des Arguments key
für deterministische DLP-Verschlüsselungsfunktionen verwenden. Mit dieser Funktion können Sie die AES-SIV-Verschlüsselungsfunktionen verwenden, ohne plaintext
-Schlüssel in eine Abfrage aufzunehmen.
Definitionen
kms_resource_name
: EinSTRING
-Literal, das den Ressourcenpfad zum Cloud KMS-Schlüssel enthält.kms_resource_name
kann nichtNULL
sein und muss sich in derselben Cloud-Region befinden, in der diese Funktion ausgeführt wird. Dieses Argument wird verwendet, um den Datenverschlüsselungsschlüssel in den FunktionenDLP_DETERMINISTIC_DECRYPT
undDLP_DETERMINISTIC_ENCRYPT
abzuleiten. Ein Cloud KMS-Schlüssel sieht so aus:gcp-kms://projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-crypto-key
wrapped_key
: EinBYTES
-Literal, das einen vom Nutzer ausgewählten Secret-Text darstellt. Dieser Secret-Text kann 16, 24 oder 32 Byte groß sein. Informationen zum Generieren eines verpackten Schlüssels finden Sie unter gcloud kms encrypted.
Rückgabedatentyp
STRUCT
Beispiel
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= |
*--------------------------------------*/