gpt4 book ai didi

node.js - AWS Lambda : How to store secret to external API?

转载 作者:IT老高 更新时间:2023-10-28 21:52:18 27 4
gpt4 key购买 nike

我正在构建一个基于 AWS Lambda 的监控工具。给定一组指标,Lambda 应该能够使用 Twilio 发送 SMS API。为了能够使用 API,Twilio 提供了一个帐户 SID 和一个身份验证 token 。

我应该如何以及在哪里存储这些 secret ?

我目前正在考虑使用 AWS KMS但可能还有其他更好的解决方案。

最佳答案

这是我想出的。我正在使用 AWS KMS 将我的 secret 加密到一个文件中,然后我将其与代码一起上传到 AWS Lambda。然后当我需要使用它们时解密它。

以下是要遵循的步骤。

首先创建一个 KMS key 。您可以在此处找到文档:http://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html

然后加密您的 secret 并将结果放入文件中。这可以通过 CLI 实现:

aws kms encrypt --key-id some_key_id --plaintext "This is the scret you want to encrypt" --query CiphertextBlob --output text | base64 -D > ./encrypted-secret

然后,您需要将此文件作为 Lambda 的一部分上传。您可以按如下方式在 Lambda 中解密和使用 key 。

var fs = require('fs');
var AWS = require('aws-sdk');
var kms = new AWS.KMS({region:'eu-west-1'});

var secretPath = './encrypted-secret';
var encryptedSecret = fs.readFileSync(secretPath);

var params = {
CiphertextBlob: encryptedSecret
};

kms.decrypt(params, function(err, data) {
if (err) console.log(err, err.stack);
else {
var decryptedSecret = data['Plaintext'].toString();
console.log(decryptedSecret);
}
});

我希望你会发现这很有用。

关于node.js - AWS Lambda : How to store secret to external API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com