Fungsi enkripsi DLP

GoogleSQL untuk BigQuery mendukung fungsi DLP berikut yang memungkinkan enkripsi dan dekripsi yang memiliki interoperabilitas antara BigQuery dan Cloud Data Loss Prevention (Cloud DLP), menggunakan AES-SIV.

Daftar fungsi

Nama Ringkasan
DLP_DETERMINISTIC_ENCRYPT Mengenkripsi data dengan algoritma yang kompatibel dengan DLP.
DLP_DETERMINISTIC_DECRYPT Mendekripsi data terenkripsi DLP.
DLP_KEY_CHAIN Mendapatkan kunci enkripsi data yang digabungkan oleh Cloud Key Management Service.

DLP_DETERMINISTIC_ENCRYPT

DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context)
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context, surrogate)

Deskripsi

Fungsi ini memperoleh kunci enkripsi data dari key dan context, lalu mengenkripsi plaintext. Secara opsional, Anda dapat menggunakan surrogate untuk menambahkan hasil enkripsi.

Definisi

  • key: Nilai BYTES serial yang ditampilkan oleh DLP_KEY_CHAIN. key harus ditetapkan ke ENABLED di Cloud KMS. Untuk mengetahui informasi tentang cara membuat kunci yang digabungkan, lihat gcloud kmsEncrypt.
  • plaintext: Nilai STRING yang akan dienkripsi.
  • context: Nilai STRING yang diberikan pengguna yang digunakan dengan kunci Cloud KMS untuk mendapatkan kunci enkripsi data. Untuk informasi selengkapnya, lihat CryptoDeterministicConfig:context.
  • surrogate: Nilai STRING yang dapat ditambahkan ke output.

Jenis data yang ditampilkan

STRING

Contoh

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)

Deskripsi

Fungsi ini mendekripsi ciphertext menggunakan kunci enkripsi yang berasal dari key dan context. Secara opsional, Anda dapat menggunakan surrogate untuk menambahkan awalan hasil dekripsi.

Definisi

  • key: Nilai BYTES serial yang ditampilkan oleh DLP_KEY_CHAIN. key harus ditetapkan ke ENABLED di Cloud KMS. Untuk mengetahui informasi tentang cara membuat kunci yang digabungkan, lihat gcloud kmsEncrypt.
  • ciphertext: Nilai STRING yang akan didekripsi.
  • context: Nilai STRING yang digunakan dengan kunci Cloud KMS untuk mendapatkan kunci enkripsi data. Untuk informasi selengkapnya, lihat CryptoDeterministicConfig:context.
  • surrogate: Nilai STRING yang dapat ditambahkan ke output.

Jenis data yang ditampilkan

STRING

Contoh

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)

Deskripsi

Anda dapat menggunakan fungsi ini sebagai ganti argumen key untuk fungsi enkripsi deterministik DLP. Fungsi ini memungkinkan Anda menggunakan fungsi enkripsi AES-SIV tanpa menyertakan kunci plaintext dalam kueri.

Definisi

  • kms_resource_name: Literal STRING yang berisi jalur resource ke kunci Cloud KMS. kms_resource_name tidak boleh NULL dan harus berada di region Cloud yang sama tempat fungsi ini dijalankan. Argumen ini digunakan untuk mendapatkan kunci enkripsi data dalam fungsi DLP_DETERMINISTIC_DECRYPT dan DLP_DETERMINISTIC_ENCRYPT. Kunci Cloud KMS terlihat seperti ini:

    gcp-kms://projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-crypto-key
    
  • wrapped_key: Literal BYTES yang mewakili teks rahasia yang dipilih oleh pengguna. Teks rahasia ini bisa berukuran 16, 24, atau 32 byte. Untuk mengetahui informasi tentang cara membuat kunci yang digabungkan, lihat gcloud kms encryption.

Jenis data yang ditampilkan

STRUCT

Contoh

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= |
 *--------------------------------------*/