如何为 tomcat beanstalk 设置正确的 SES 身份策略?

问题描述

我想从 tomcat beanstalk 发送电子邮件,但收到以下错误消息

用户“arn:aws:sts::123:assumed-role/aws-elasticbeanstalk-ec2-role/i-123”无权对资源“arn:aws”执行“ses:SendEmail”: ses:eu-central-1:123:identity/example.com' (服务:Ses,状态码:403,请求ID:2a82693d-3344-4b53-8c8c-ef347c23cd29,扩展请求ID:null)

我已在 example.com 上的 SES 控制台中声明以下身份策略

{
    "Version": "2008-10-17","Statement": [
        {
            "Sid": "stmt1624645438239","Effect": "Allow","Principal": {
                "AWS": "arn:aws:sts::123:assumed-role/aws-elasticbeanstalk-ec2-role/i-123"
            },"Action": "ses:SendEmail","Resource": "arn:aws:ses:eu-central-1:123:identity/example.com"
        }
    ]
}

但我仍然收到错误消息。为什么?

解决方法

我发现解决方案是从身份和访问管理 (IAM) 创建策略

  1. 转到身份和访问管理 (IAM) 仪表板 > 客户管理的政策
  2. 为 SES 服务创建策略(在我授予所有 ARN 访问权限的资源中)
  3. 附加 ec2 角色