允许 S3 事件通知从组织中的任何帐户发布到 SQS 队列

问题描述 投票:0回答:1

我尝试了这个SQS队列策略:

{
      "Version" : "2012-10-17",
      "Statement" : [
        {
          "Effect" : "Allow",
          "Principal" : {
            "Service" : "s3.amazonaws.com"
          },
          "Action" : "sqs:SendMessage",
          "Resource" : {sqs_queue_arn},
          "Condition" : {
            "StringEquals" : {
              "aws:PrincipalOrgID" : {our_org_id}
            },
            "ArnLike" : {
              "aws:SourceArn" : "arn:aws:s3:::*"
            }
          }
        }

测试时,它确实允许您将策略应用到队列而不会出现错误,但它实际上并不让 S3 存储桶向其发送数据。

目前我必须单独添加每个帐户 ID,这对我们来说无法扩展。

除了手动跟踪所有帐户 ID 之外,是否还有其他方法可以做到这一点?

amazon-web-services amazon-s3 amazon-sqs
1个回答
0
投票

好的找到了方法:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "sqs:SendMessage",
      "Resource": {sqs_queue_arn},
      "Condition": {
        "StringEquals": {
          "aws:ResourceOrgID": {our_org_id}
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:::*"
        }
      }
    }
  ]
}

就像 @luk2302 在评论中所说,aws 是发送此消息的主体,他们没有组织 ID。因此,我们只查看资源(s3 对象)所有者组织 ID。这有效。

© www.soinside.com 2019 - 2024. All rights reserved.