使用node-ses发送邮件时,我们需要在创建客户端时提供访问密钥和密钥。 我想摆脱这些键,并希望使用运行此代码的lambda函数的IAM角色访问来处理它。
ses = require('node-ses'),
client = ses.createClient({ key: config.get('awsSettings.accessKey'), secret: config.get('awsSettings.secretKey') }),
答案 0 :(得分:2)
使用 SES API或SES SMTP服务接口时,无法使用某种形式的SES credentials。对于node-ses
,此库实现SendEmail and SendRawEmail SES API次调用,因此受此服务的凭据要求的限制。
在这两种情况下,这些凭据在您启用服务时由SES发出,和/或通过IAM用户配置,即与该用户关联的密钥和访问密钥。这些凭据用于SES SMTP和API服务的身份验证,并且用作此用途的用户名和密码。
您无法使用IAM角色替代SES凭据的使用; SES要求电子邮件客户端使用这些凭据中的这些凭据进行SES服务身份验证。
总结自Using Credentials With Amazon SES:
如果您想访问Amazon SES API,请使用AWS访问密钥(访问密钥ID和秘密访问密钥),其中包括指定IAM用户帐户的Access密钥ID和秘密访问密钥。 / p>
如果要访问Amazon SES SMTP界面,请使用SES SMTP凭据,该凭据由用户名和密码组成。虽然 您的Amazon SES SMTP凭据与您的AWS访问权限不同 密钥和IAM用户访问密钥,Amazon SES SMTP凭据 实际上是一种IAM凭证。