在Ruby中从aws-kms解密密钥

ngw*_*ngw 5 ruby node.js aws-kms serverless-framework

我在无服务器框架字上使用serverless-kms-secrets来设置一些我想使用Ruby使用的ENV变量。

我可以确认该插件运行正常,它使用加密变量生成了文件,并且可以在我的环境中在AWS lambda上看到该加密变量。问题是我无法在Ruby中解密它。在插件中(正确)解密它的代码在这里,我知道它获取保存在文件中的字符串并使用Base64对其进行编码,因此没什么大不了的。在Ruby中:

token = "blablabla"
client = Aws::KMS::Client.new(region: 'us-east-1')
blob = Base64.encode64(token)
client.decrypt({ciphertext_blob: blob})
....
Aws::KMS::Errors::InvalidCiphertextException ()
Run Code Online (Sandbox Code Playgroud)

客户端应该自动获取我的凭据,但是我不确定我是否了解keyArn的使用方式,尽管看起来并不相关。

有谁知道如何解决这个问题?

ngw*_*ngw 2

我必须对其进行解码,而不是对字符串进行编码。

token = "blablabla"
client = Aws::KMS::Client.new(region: 'us-east-1')
blob = Base64.decode64(token)
client.decrypt({ciphertext_blob: blob})
Run Code Online (Sandbox Code Playgroud)