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
: NilaiBYTES
serial yang ditampilkan olehDLP_KEY_CHAIN
.key
harus ditetapkan keENABLED
di Cloud KMS. Untuk mengetahui informasi tentang cara membuat kunci yang digabungkan, lihat gcloud kmsEncrypt.plaintext
: NilaiSTRING
yang akan dienkripsi.context
: NilaiSTRING
yang diberikan pengguna yang digunakan dengan kunci Cloud KMS untuk mendapatkan kunci enkripsi data. Untuk informasi selengkapnya, lihat CryptoDeterministicConfig:context.surrogate
: NilaiSTRING
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
: NilaiBYTES
serial yang ditampilkan olehDLP_KEY_CHAIN
.key
harus ditetapkan keENABLED
di Cloud KMS. Untuk mengetahui informasi tentang cara membuat kunci yang digabungkan, lihat gcloud kmsEncrypt.ciphertext
: NilaiSTRING
yang akan didekripsi.context
: NilaiSTRING
yang digunakan dengan kunci Cloud KMS untuk mendapatkan kunci enkripsi data. Untuk informasi selengkapnya, lihat CryptoDeterministicConfig:context.surrogate
: NilaiSTRING
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
: LiteralSTRING
yang berisi jalur resource ke kunci Cloud KMS.kms_resource_name
tidak bolehNULL
dan harus berada di region Cloud yang sama tempat fungsi ini dijalankan. Argumen ini digunakan untuk mendapatkan kunci enkripsi data dalam fungsiDLP_DETERMINISTIC_DECRYPT
danDLP_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
: LiteralBYTES
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= |
*--------------------------------------*/