BigQuery용 GoogleSQL은 ,AES-SIV를 사용하여 BigQuery와 Cloud Data Loss Prevention(Cloud DLP) 간 상호 운용 가능한 암호화 및 복호화를 허용하는 다음 DLP 함수를 지원합니다.
함수 목록
이름 | 요약 |
---|---|
DLP_DETERMINISTIC_ENCRYPT
|
DLP 호환 알고리즘으로 데이터를 암호화합니다. |
DLP_DETERMINISTIC_DECRYPT
|
DLP 암호화 데이터를 복호화합니다. |
DLP_KEY_CHAIN
|
Cloud Key Management Service로 래핑된 데이터 암호화 키를 가져옵니다. |
DLP_DETERMINISTIC_ENCRYPT
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context)
DLP_DETERMINISTIC_ENCRYPT(key, plaintext, context, surrogate)
Description(설명)
이 함수는 key
및 context
에서 데이터 암호화 키를 파생한 다음 plaintext
를 암호화합니다. 필요한 경우 surrogate
를 사용하여 암호화 결과 앞에 추가할 수 있습니다.
정의
key
:DLP_KEY_CHAIN
에서 반환된 직렬화된BYTES
값입니다. Cloud KMS에서key
를ENABLED
로 설정해야 합니다. 래핑된 키를 생성하는 방법은 gcloud kms encrypt를 참조하세요.plaintext
: 암호화할STRING
값입니다.context
: 데이터 암호화 키를 파생하기 위해 Cloud KMS 키와 함께 사용되는 사용자 제공STRING
값입니다. 자세한 내용은 CryptoDeterministicConfig:context를 참조하세요.surrogate
: 출력 앞에 추가할 수 있는STRING
값입니다.
반환 데이터 유형
STRING
예시
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(설명)
이 함수는 key
및 context
에서 파생된 암호화 키를 사용하여 ciphertext
를 복호화합니다. 필요한 경우 surrogate
를 사용하여 복호화 결과 앞에 추가할 수 있습니다.
정의
key
:DLP_KEY_CHAIN
에서 반환된 직렬화된BYTES
값입니다. Cloud KMS에서key
를ENABLED
로 설정해야 합니다. 래핑된 키를 생성하는 방법은 gcloud kms encrypt를 참조하세요.ciphertext
: 복호화할STRING
값입니다.context
: 데이터 암호화 키를 파생하기 위해 Cloud KMS 키와 함께 사용되는STRING
값입니다. 자세한 내용은 CryptoDeterministicConfig:context를 참조하세요.surrogate
: 출력 앞에 추가할 수 있는STRING
값입니다.
반환 데이터 유형
STRING
예시
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(설명)
DLP 확정적 암호화 함수에 key
인수 대신 이 함수를 사용할 수 있습니다. 이 함수를 사용하면 쿼리에 plaintext
키를 포함하지 않고도 AES-SIV 암호화 함수를 사용할 수 있습니다.
정의
kms_resource_name
: Cloud KMS 키의 리소스 경로가 포함된STRING
리터럴입니다.kms_resource_name
은NULL
이 될 수 없으며 이 함수가 실행되는 동일한 Cloud 리전에 있어야 합니다. 이 인수는DLP_DETERMINISTIC_DECRYPT
및DLP_DETERMINISTIC_ENCRYPT
함수에서 데이터 암호화 키를 파생하는 데 사용됩니다. Cloud KMS 키는 다음과 같습니다.gcp-kms://projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-crypto-key
wrapped_key
: 사용자가 선택한 보안 비밀 텍스트를 나타내는BYTES
리터럴입니다. 이 보안 비밀 텍스트는 16, 24, 32바이트일 수 있습니다. 래핑된 키를 생성하는 방법은 gcloud kms encrypt를 참조하세요.
반환 데이터 유형
STRUCT
예시
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= |
*--------------------------------------*/