我正在尝试开发用于AES解密的Bigquery Javascript UDF。 用于AES加密的密钥已加密并存储在GCS中。 我已经开发了Javascript代码,它将执行以下步骤:
- 从GCS读取具有AES密钥加密值的文件
- 使用kms密钥环和kms密钥解密AES密钥值
- 使用此密钥进行AES解密。
我正在使用以下语句获取存储和kms库:
const Storage = require('@ google-cloud / storage'); const kms = require('@ google-cloud / kms');
当我必须从Bigquery UDF调用相同的功能时,我将如何做 确保这些库可用? (我不想在Bigquery UDF中对AES密钥进行硬编码)
我在Bigquery UDF定义中看到了[OPTIONS(library = library_array)]的选项,但是我 不确定存储和kms集成需要哪些特定的.js文件?
代码段
const Storage = require('@google-cloud/storage');
const storage = new Storage.Storage();
const kms = require('@google-cloud/kms');
const client = new kms.KeyManagementServiceclient();
bucketName ="gs://testbucket"
const keyFile = storage.bucket(bucketName).file("key.enc");
'use strict';
async function decrypt(ciphertext){
const name=<replace with crypto-key-path>;
const [result] = await client.decrypt({name,ciphertext});
return Buffer.from(result.plaintext,'base64').toString();
}
var key=saltFile.download(function(err,contents) {
key=decrypt(contents);
key.then(function (value) {
key = value.trim();
console.log(value);
});
return key;
})
谢谢你, 阿努