我在EC2实例上使用Redash,并且必须通过Amazon SES发送邀请邮件。
我想添加一个设置以将邮件发件人限制为Redash实例所在的某个VPC内部。
这是我的SES IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ses:SendRawEmail",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceVpce": "vpce-******"
},
"ForAnyValue:StringLike": {
"ses:Recipients": "*@mycompany.com"
}
}
}
]
}
但是我无法发送任何邮件。我认为这是因为我在上面的代码中使用了VPC端点。 SES尚不可用。
还有其他方法可以指定某个VPC吗?
答案 0 :(得分:1)
这是一个有趣的挑战!
Amazon SES接口在互联网上,因此从理论上讲任何人都可以访问它。通常,策略限制会使用 IAM用户或角色上的权限,该权限会调用SES来确定是否允许呼叫,而不是从何处进行呼叫。
我认为您正在这样做是因为您只希望Production系统发送电子邮件,而不是Dev / Test系统。
但是, 不可能通过VPC进行限制,因为Amazon SES无法了解VPC的概念。它只是通过Internet接收API调用。
如果您的应用程序位于专用子网中,并且通过NAT网关发送请求,那么您可以添加一个策略以基于NAT网关的IP地址进行限制。
您可以通过在Allow
语句上添加限制,或通过添加Deny
语句来做到这一点。
请参阅:AWS: Denies Access to AWS Based on the Source IP - AWS Identity and Access Management