amazon-web-services - 如何使用 SES 特定的临时凭证通过 SES 发送电子邮件?

标签 amazon-web-services aws-sdk amazon-ses

This页面显示如何使用 SES 发送电子邮件。该示例通过从 ~/.aws/credentials 读取凭证来工作,这些凭证是根(但“共享”??)凭证。

文档在多个地方建议不要使用 root 凭据。

获取临时凭证 使用roles作为一个选项提到,但 assume_role() 没有为 SES 客户端对象定义。

如何使用 SES 特定的临时凭据通过 SES 发送电子邮件?

更新

我的问题的上下文是在 EC2 实例上运行的应用程序。

最佳答案

这有几个部分。

首先您需要一个 IAM 政策。您可以使用内置策略之一,例如 AmazonSESFullAccess,也可以创建自己的策略。特定策略的持有者将能够访问策略中定义的资源和操作。您可以手动创建此策略,也可以通过 AWS 控制台进行操作,它将引导您完成该策略。 IAM --> 策略 --> 创建策略

其次,您需要一个角色。此外,可以在控制台中轻松完成。 IAM --> 角色 --> 创建角色。可信实体是AWS服务。突出显示 EC2。在下一个屏幕中,选择要与此角色关联的策略。这是您在上面创建的策略。如果您的 EC2 已有角色,则您可以将 IAM 策略添加到该角色。将 IAM 策略分配给角色,就是他们所说的信任策略。

现在,在您的 EC2 实例上运行的任何代码都将能够向您的 SES 服务发送消息。 EC2 承担分配给它的角色。 SES 政策就是针对该角色定义的。这将允许 EC2 获取临时凭证(在幕后)。

背景故事如下。对 AWS 服务的任何 API 调用都需要有 key 和 secret 。当您从本地计算机进行 API 调用时,您可以使用您的个人 key 和 secret (甚至是根 key )。当您需要从另一个服务进行 API 调用时,您没有该 key 和 secret 。将凭证存储在 EC2 上既不安全也不实用。或者更糟糕的是,在 S3 存储桶中。这就是 AWS 提出角色概念的原因。角色可以从称为简单 token 服务 (STS) 的内部服务请求临时凭据。例如,角色附加到 EC2 实例。如果该角色附加了正确的策略,EC2 实例可以请求获取临时凭证以对另一个服务进行 API 调用。所有这一切都发生在幕后。

关于amazon-web-services - 如何使用 SES 特定的临时凭证通过 SES 发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52377332/

相关文章:

javascript - 如何使用 JavaScript 删除 AWS S3 上的对象?

amazon-web-services - Amazon SES 邮件作为垃圾邮件

php - Amazon SES 退回/投诉处理

amazon-web-services - 如何在aws pentaho社区版上使用Spoon?

integration-testing - 如何将本地 DynamoDB 与 AWS Go SDK 结合使用?

amazon-web-services - 如何为 aws_autoscaling_group 发出的现货请求应用标签?

java - 如何将 AWS Java SDK 添加到 Scala/Play 项目

javascript - 如何获取smtp uri

java - AmazonCloudWatchClient 不发送 HTTP 请求

image - 操作系统 : How to easily view thumbnails of lots of images in an S3 bucket