DLP-Verschlüsselungsfunktionen

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 serialisierter BYTES-Wert, der von DLP_KEY_CHAIN zurückgegeben wird. key muss in Cloud KMS auf ENABLED festgelegt werden. Informationen zum Generieren eines verpackten Schlüssels finden Sie unter gcloud kms encrypted.
  • plaintext: Der zu verschlüsselnde STRING-Wert.
  • context: Ein vom Nutzer bereitgestellter STRING-Wert, der mit einem Cloud KMS-Schlüssel zum Ableiten eines Datenverschlüsselungsschlüssels verwendet wird. Weitere Informationen finden Sie unter CryptoDeterministicConfig:context.
  • surrogate: Ein STRING-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 serialisierter BYTES-Wert, der von DLP_KEY_CHAIN zurückgegeben wird. key muss in Cloud KMS auf ENABLED festgelegt werden. Informationen zum Generieren eines verpackten Schlüssels finden Sie unter gcloud kms encrypted.
  • ciphertext: Der zu entschlüsselnde STRING-Wert.
  • context: Ein STRING-Wert, der mit einem Cloud KMS-Schlüssel zum Ableiten eines Datenverschlüsselungsschlüssels verwendet wird. Weitere Informationen finden Sie unter CryptoDeterministicConfig:context.
  • surrogate: Ein STRING-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: Ein STRING-Literal, das den Ressourcenpfad zum Cloud KMS-Schlüssel enthält. kms_resource_name kann nicht NULL 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 Funktionen DLP_DETERMINISTIC_DECRYPT und DLP_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: Ein BYTES-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= |
 *--------------------------------------*/