使用存储和kms库的Bigquery Javascript UDF

我正在尝试开发用于AES解密的Bigquery Javascript UDF。 用于AES加密的密钥已加密并存储在GCS中。 我已经开发了Javascript代码,它将执行以下步骤:

  1. 从GCS读取具有AES密钥加密值的文件
  2. 使用kms密钥环和kms密钥解密AES密钥值
  3. 使用此密钥进行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;
   })

谢谢你, 阿努

cooperboss 回答:使用存储和kms库的Bigquery Javascript UDF

  • 要回答这个问题:您可以将密钥存储在GCS文件中,并通过将文件作为附加的.js导入来读取。

但是:

  • BigQuery UDF无法调用外部API,因此即使“ @ google-cloud / storage”成功导入,也无法运行和执行其他API调用。
本文链接:https://www.f2er.com/3098017.html

大家都在问