如何将Amazon SES权限写入您的Amazon S3存储桶

Yun*_*Yun 5 amazon-s3 amazon-web-services

我希望我的SES(AWS)可以接收电子邮件,因此我按照以下教程, http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-getting-started-receipt-rule.html

当我在最后一步 - 创建规则时,它会出现以下错误, 无法写入存储桶:"email-receiving"

我谷歌并发现此信息(http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html)可以解决问题.

但是,在添加我的策略语句时,它会出现错误 - 此策略包含以下错误:已禁止字段Principal有关IAM策略语法的详细信息,请参阅AWS IAM策略.

我的政策声明是,

{"Version":"2012-10-17","Statement":[{"Sid":"GiveSESPermissionToWriteEmail","Effect":"Allow","Principal":{"Service":["ses.amazonaws. com"]},"Action":["s3:PutObject"],"Resource":"arn:aws:s3 ::: mybulketname/*","Condition":{"StringEquals":{"aws:Referer" :"my12accountId"}}}]}

如果我起飞

"校长":{"服务":["ses.amazonaws.com"]}

验证政策将通过.

谢谢

Yev*_*yev 7

找到bucket-> permission-> bucketPolicy

{
    "Version": "2012-10-17",
    "Statement": [
       {
           "Sid": "AllowSESPuts",
           "Effect": "Allow",
           "Principal": {
               "Service": "ses.amazonaws.com"
           },
           "Action": "s3:PutObject",
           "Resource": "arn:aws:s3:::BUCKEN_NAME/*",
           "Condition": {
            "StringEquals": {
                   "aws:Referer": "YOUR ID"
                }
           }
       }
   ]
}
Run Code Online (Sandbox Code Playgroud)

在此处阅读更多内容https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html

要在AWS管理控制台上查找您的AWS账户ID号,请选择右上方导航栏上的Support,然后选择Support Center.您当前登录的帐户ID显示在"支持"菜单下方的右上角.

点击此处了解更多信息https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html


JD *_*D D 5

我遵循了这个建议,但我仍然遇到了这个问题。经过多次调试,我意识到 SES 无法写入,因为我将默认服务器端加密(在存储桶上)设置为“AWS-KMS”

我做了 5 分钟的谷歌搜索,但在任何地方都找不到这种不兼容的记录。

您可以通过将目标存储桶上的默认加密设置更新为“AES-256”或“无”来解决此问题。

  • 这个!这是我看到的问题。谢谢你做这个笔记。 (2认同)

Yun*_*Yun 0

这个问题已经解决。
在要授予 SES 权限的存储桶上创建策略,而不是在 IAM 中