我正在向拥有自己的 AWS 账户的客户提供跨账户服务。我希望他们能够配置他们拥有的任何 S3 存储桶,以便将任何ObjectCreated
事件记录到我的 SQS 队列中。我还想阻止任何其他方写入我的队列,或配置他们的存储桶以将对象通知写入我的队列。
到目前为止,我有这个许可文件。(我的 accountId: 222222222222
,我客户的 accountId: 111111111111
)
{
"Sid": "CrossAccountWrite",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "SQS:SendMessage",
"Resource": "arn:aws:sqs:us-west-2:222222222222:customer-s3-notifications",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:*:*:customer-s3-bucket"
}
}
}
这允许他们的一个桶写入我的队列;但是,我想允许他们的任何存储桶写入我的队列。通常,我只会在以客户 accountId 开头的 ARN 上使用通配符;但是,无论出于何种原因,S3 存储桶都没有区域,也没有 accountId。我有什么办法可以在权限级别进行此过滤吗?