无法为 S3 中的日志跨账户写入创建存储桶策略

Unable to create bucket policy for cross account write of logs in S3

我正在尝试将 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

评论里已经有答案了,我再解释一下。

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

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