AWS SQS 文档指出支持匿名访问:https://aws.amazon.com/sqs/faqs/#:~:text=Q%3A%20Does%20Amazon%20SQS%20support%20anonymous%20access%3F
它还提供了向所有用户授予权限的示例策略:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-basic-examples-of-sqs-policies.html#:~ :text=示例%205%3A%20授予%20a%20权限%20至%20all%20用户
我尝试使用以下访问策略创建 SQS 队列:
{
"Version": "2012-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__owner_statement",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SQS:*",
"Resource": "*"
}
]
}
但是,匿名客户端(使用 cURL 请求)在尝试执行 SendMessage 时会收到以下错误:
Access to the resource The specified queue does not exist or you do not have access to it. is denied.
以前的解决方案(如何启用对 SQS 队列的匿名写访问?)似乎不再起作用。
AWS 不再支持匿名访问 SQS 吗?
允许匿名访问您的 SQS 并不是一件好事。在您的策略中,您不允许匿名访问,但允许访问任何经过 AWS 身份验证的用户。要允许匿名,您应该将策略的
Principal
部分更改为:
"Principal": "*",