Jon*_*iez 53 security amazon-web-services node.js aws-lambda
我正在构建一个基于AWS Lambda的监控工具.给定一组指标,Lambdas应该能够使用Twilio API 发送SMS .为了能够使用API,Twilio提供帐户SID和身份验证令牌.
我应该如何以及在哪里存储这些秘密?
我目前正在考虑使用AWS KMS,但可能还有其他更好的解决方案.
Jon*_*iez 68
这就是我想出来的.我正在使用AWS KMS将我的秘密加密到我使用代码上传到AWS Lambda的文件中.然后,当我需要使用它时,我解密它.
以下是要遵循的步骤.
首先创建一个KMS密钥.您可以在此处找到文档:http://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html
然后加密你的秘密并将结果放入文件中.这可以通过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
Run Code Online (Sandbox Code Playgroud)
然后,您需要将此文件作为Lambda的一部分上载.您可以解密并使用Lambda中的秘密,如下所示.
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);
}
});
Run Code Online (Sandbox Code Playgroud)
我希望你会发现这很有用.
| 归档时间: |
|
| 查看次数: |
17090 次 |
| 最近记录: |