我计划将部分电子邮件 SMTP 的使用转换到 Amazon 的 SES。我有几个域和发件人电子邮件地址已通过 SES 验证,并且正在沙盒中进行测试。
据我所知,SES SMTP 凭证与我的 AWS 账户内的任何特定域或发件人电子邮件地址无关。
它是否正确?
生成 SMTP 凭据时没有提及域或电子邮件地址,并且在我的初步测试中,我可以将我的任何 SMTP 凭据与任何经过验证的发送电子邮件地址一起使用。
有没有办法让一组 SES SMTP 凭证只适用于一个域,或者只适用于一个发送电子邮件地址?如果您想要拥有只适用于某些电子邮件地址而不适用于其他电子邮件地址的 SMTP 凭证,那么另一种选择似乎是将发送电子邮件地址隔离到单独的 AWS 账户中。为什么要这样设计?感觉很奇怪,我怀疑我没有理解 SES SMTP 凭证与发件人电子邮件地址和域之间的关系背后的意图。
答案1
目前,AWS 不支持针对特定域使用上述单独的 SMTP 凭证。根据您计划使用的域数量,您可以创建单独的 AWS 账户并将 SMTP 凭证绑定到这些域。
答案2
在您的 IAM 用户上设置自定义内联策略可以实现此目的:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ses:SendRawEmail"
],
"Condition": {
"StringEquals": {
"ses:FromAddress": "[email protected]"
}
},
"Resource": [
"*"
]
}
]
}
我认为您也可以使用通配符(*.example.com
)。
答案3
据我所知,SES SMTP 凭证与我的 AWS 账户内的任何特定域或发件人电子邮件地址无关。
没错。
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/control-user-access.html
您无法在 IAM 策略中指定特定的 Amazon SES 资源。您只能控制对 Amazon SES 操作的访问。因此,Amazon SES 不使用 Amazon 资源名称 (ARN),该名称用于标识策略中的资源。当您编写策略来控制对 Amazon SES 操作的访问时,您使用 * 作为资源。