0

我在 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?

4

1 回答 1

1

这是一个有趣的挑战!

Amazon SES 接口位于 Internet 上,因此理论上任何东西都可以访问它。通常,策略限制使用调用 SES的 IAM 用户或角色的权限来确定是否允许调用,而不是从发起调用的位置。

我假设您这样做是因为您只希望您的生产系统发送电子邮件,而不是开发/测试系统。

但是,无法通过 VPC 进行限制,因为 Amazon SES 无法看到 VPC 的概念。它只是通过 Internet 接收 API 调用。

如果您的应用程序位于私有子网中并通过 NAT 网关发送请求,那么您可以添加一个策略以根据 NAT 网关的 IP 地址进行限制。

您可以通过对Allow语句施加限制或添加Deny语句来做到这一点。

请参阅:AWS:根据源 IP 拒绝对 AWS 的访问 - AWS Identity and Access Management

于 2018-11-21T03:56:52.980 回答