【问题标题】:Unable to create bucket policy for cross account write of logs in S3无法为 S3 中的日志跨账户写入创建存储桶策略
【发布时间】:2021-10-09 17:24:52
【问题描述】:

我正在尝试将来自 Cloudwatch 日志流的日志写入跨账户 S3 存储桶。在账户 B 中创建存储桶策略时,出现以下错误。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "s3:PutBucketAcl",
        "s3:PutObject",
        "s3:getobject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::ayush-test-b3245-4676/*",
      "Principal": {
        "AWS": "arn:aws:iam::45097+@#%^*#:role/service-role/s3-bucket-lambda-role-uz281"
      }
    }
  ]
}

请帮我解决这个问题,我想添加一个 Lambda 角色来编写这些日志。

Error Screenshot

【问题讨论】:

  • 试试"Resource": ["arn:aws:s3:::ayush-test-b3245-4676", "arn:aws:s3:::ayush-test-b3245-4676/*"]

标签: amazon-web-services amazon-s3 aws-lambda amazon-iam


【解决方案1】:

评论里已经有答案了,不过我会提供更多的解释。

在资源部分,您需要有一个资源,该资源与您放入 Action 数组中的每个操作相对应。在这种情况下,PutBucketAcl 需要一个存储桶资源,而在您的示例中,您只有一个与存储桶内的对象对应的资源。

另外,请仔细检查s3:getobject 的拼写,应该是s3:GetObject

【讨论】:

    猜你喜欢
    • 2016-03-17
    • 2021-10-18
    • 2019-04-23
    • 2021-06-28
    • 2021-12-02
    • 2023-03-17
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多