gpt4 book ai didi

amazon-web-services - 将 S3 事件订阅到 SQS 队列而不向世界公开 SQS?

转载 作者:行者123 更新时间:2023-12-04 00:12:49 24 4
gpt4 key购买 nike

我正在为我认为是一项简单的任务而苦苦挣扎。

我想将我的 SQS 队列配置为允许我账户中的 S3 存储桶发送消息,但不允许外部人员发送消息。 (外部人员是指不是我的 AWS 账户成员的任何委托(delegate)人)

我可以开始工作的唯一 SQS 权限配置是 Effect=Allow, Principals=*, Actions=SQS:SendMessage, Conditions=None
任何其他权限都会导致我在创建 [S3 事件 -> SQS] 时看到此错误:Unable to validate the following destination configurations. Permissions on the destination queue do not allow S3 to publish notifications from this bucket.Principals=*我很担心。 从我能找到的文档中,这意味着世界上任何人都可以访问 SQS 队列。这是真的?这显然是非常糟糕的。

如何允许我的 S3 存储桶将消息发送到我的 SQS 队列,而不是匿名用户推送消息?

我可以允许我的 AWS 账户中的任何资源向 SQS 发送消息。我只需要阻止匿名 AWS 用户的访问。这是一个非常基本的要求,我很惊讶我找不到一个简单的方法来做到这一点。

最佳答案

您可以在文档中找到安全配置

   "Condition": {
"ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }
}

请注意,对于 Amazon SNS 和 Amazon SQS IAM 策略,您可以在策略中指定 StringLike 条件,而不是 ArnLike 条件。
"Condition": {         
"StringLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }
}

完整示例来自 the doc
{
"Sid": "example-statement-ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SQS:SendMessage"
],
"Resource": "SQS-ARN",
"Condition": {
"ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }
}
}

关于amazon-web-services - 将 S3 事件订阅到 SQS 队列而不向世界公开 SQS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55962237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com