amazon-web-services - 调用 ListQueues 操作时 AccessDenied

标签 amazon-web-services amazon-sqs aws-cli

当调用列表队列命令使用带有附加策略的 AWS-CLI 时,这很奇怪,除非我为 设置了值。资源arn:aws:sqs:*:*:* .

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sqs:*",
            "Resource": "arn:aws:sqs:*:45*****65:local-*"
        }
    ]
}

我希望下面的命令应该返回所有以 local-* 开头的队列,但我得到了 AccessDenied。
aws sqs list-queues --queue-name-prefix local-*

但是对于同一个队列,我能够获得它的属性。
aws sqs get-queue-attributes --queue-url https://us-west-2.queue.amazonaws.com/0****5/local-myqueue --attribute-names All

我需要更改策略中的某些内容还是列表队列的行为不同?

提前致谢。

最佳答案

根据 Actions, Resources, and Condition Keys for Amazon SQS - AWS Identity and Access Management ,SQS 命令不接受条件。因此,ListQueues()命令要么完全工作(显示所有匹配的队列),要么不返回任何内容(由于访问被拒绝)。限制返回哪些队列的唯一方法是使用 queue-name-prefix .
Resource策略中的属性将决定各种命令可以运行在哪个队列上,这就是为什么您能够获取匹配队列的属性 local-* .如果您尝试获取名为 public-xxx 的队列的详细信息,会被拒绝。 (但 ListQueues 操作的是服务,而不是特定的队列。)

关于amazon-web-services - 调用 ListQueues 操作时 AccessDenied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56630756/

相关文章:

amazon-web-services - 使用 localstack 运行 lambda 函数

python - 当 EB 环境为 python 3.6 时,使用 python 2.7 安装要求时出现 AWS 错误

amazon-web-services - AWS Cloudformation SSM 自动化文档 |与 aws cloudformation 包一起使用

amazon-web-services - AWS CLI S3 仅在选定文件上同步?

amazon-web-services - 必须定义至少一个资源成员...云形成 ec2 中的错误

amazon-web-services - S3 被 CORS 策略阻止

java - 可以在 AWS Lambda 上设置 JVM 内存设置吗?

ruby-on-rails - 如何在 Rails 应用程序后台监听 AWS SQS 消息?

amazon-web-services - 为什么我应该使用 Amazon Kinesis 而不是 SNS-SQS?

amazon-ec2 - 在 Amazon Web Services 上开发可扩展视频转码服务器的最佳实践?