我正在为拥有自己的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。我有什么办法可以在权限级别进行过滤?