我的設置稱爲(的NodeJS)如下:使用AWS SES與lambda函數從S3
- LAMBDA提供API端點經由AWS SES
- API端點是發送出的電子郵件的功能從靜態的JS文件叫上一個S3桶
這工作:
var exec = require('child_process').exec;
var aws = require('aws-sdk');
var ses = new aws.SES({
"accessKeyId": "MY_ACCESS_KEY",
"secretAccessKey": "MY_SECRET_ACCESS_KEY",
"region": "A_REGION"
});
var ses = new aws.SES();
exports.handler = function(event, context) {
...code to send email...
};
我想從函數中刪除證書,而讓Lambda從其他地方獲取證書。
如果我刪除的憑據,我得到:
User `arn:aws:sts::1234567890:assumed-role/lambda_basic_execution/awslambda_1234567890\' is not authorized to perform `ses:SendEmail\' on resource `arn:aws:ses:us-region-123:1234567890:identity/[email protected]\'
我仍然試圖環繞策略,角色和憑據我的頭。 我首先想到Lambda可能能夠從S3環境變量中獲取憑證,但我不知道如何設置這些憑據,或者無論如何這是正確的方法。
如果有人能給我一個提示這可能會起作用的話,會很棒。或者如果這是不可能的。
我從Lambda函數中刪除證書的主要原因是我想將函數代碼添加到git倉庫中。我對將這些憑據添加到代碼回購中感到不滿。
我發現這一點: 「你可能會注意到的一件事是,我們暴露我們的AWS的公共和私有密鑰其實,這是爲了保證安全,我們實際上創建了一個新的AWS用戶和一個策略,專門防止除了一個Lambda函數「 http://lg.i o/2015/05/16/the-future-is-now-and-its-using-aws-lambda.html (via http://stackoverflow.com/a/31013511/1667461) 所以也許創建一個只有這些權限的用戶纔是我的問題的答案。 – escapedcat