This页面显示如何使用 SES 发送电子邮件。该示例通过读取凭据来工作~/.aws/credentials
,它们是根(但“共享”??)凭据。
该文档在多个地方建议不要使用 root 凭据。
获取临时凭证
使用roles被提到作为一个选项,但是assume_role()
没有为 SES 客户端对象定义。
如何使用 SES 特定的临时凭证通过 SES 发送电子邮件?
Update
我的问题的背景是在 EC2 实例上运行的应用程序。
这有几个部分。
首先您需要一个 IAM 策略。您可以使用内置策略之一,例如AmazonSESFullAccess
或者您可以创建自己的。特定策略的持有者将能够访问策略中定义的资源和操作。您可以手动创建此策略,也可以通过 AWS 控制台进行操作,它将引导您完成该策略。 IAM --> 策略 --> 创建策略
其次,你需要一个角色。此外,可以在控制台中轻松完成。 IAM --> 角色 --> 创建角色。可信实体是AWS服务。突出显示 EC2。在下一个屏幕中,选择要与此角色关联的策略。这是您在上面创建的策略。如果您的 EC2 已有角色,则您可以将 IAM 策略添加到该角色。将 IAM 策略分配给角色,就是他们所说的信任策略。
现在,在您的 EC2 实例上运行的任何代码都将能够向您的 SES 服务发送消息。 EC2 承担分配给它的角色。 SES 政策就是针对该角色定义的。这将允许 EC2 获取临时凭证(在幕后)。
背景故事如下。对 AWS 服务的任何 API 调用都需要有密钥和秘密。当您从本地计算机进行 API 调用时,您可以使用您的个人密钥和秘密(甚至是根密钥)。当您需要从另一个服务进行 API 调用时,您没有该密钥和秘密。将凭证存储在 EC2 上既不安全也不实用。或者更糟糕的是,在 S3 存储桶中。这就是为什么 AWS 提出了Role
概念。角色可以从称为简单令牌服务 (STS) 的内部服务请求临时凭据。例如,角色附加到 EC2 实例。如果该角色附加了正确的策略,EC2 实例可以请求获取临时凭证以对另一个服务进行 API 调用。所有这一切都发生在幕后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)