我为IAM用户创建了一个策略,用于从特定的SQS队列发送和接收消息。使用AWS CLI并发出list-queues
命令时,我收到以下错误:
An error occurred (AccessDenied) when calling the ListQueues operation: Access to the resource https://queue.amazonaws.com/ is denied.
我在IAM用户上有一个自定义策略来指定权限,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1485992560000",
"Effect": "Allow",
"Action": [
"sqs:ReceiveMessage",
"sqs:SendMessage",
"sqs:ListQueues"
],
"Resource": [
"arn:aws:sqs:us-east-1:XXXX:TestQueue"
]
}
]
}
有了这个策略,我已经验证了我可以使用AWS CLI从这个队列发送和接收消息。如果我修改了用户的权限,并添加了一条语句,其中操作为sqs:ListQueues
,资源为"*"
,则使用AWS CLI的list-queues
命令将在响应中返回TestQueue的url。
我认为list-queue
应该只返回IAM用户已被授予该操作的队列,这是错误的吗?
欢迎任何指导/建议!谢谢!
发布于 2017-02-07 01:57:39
不能限制sqs:ListQueues
等命令的资源。它们必须具有*
的资源规范。这也意味着您不能限制返回值:它们将始终返回所有队列,即使用户无法对它们执行操作。
这类似于其他“列表”类型的方法,如ec2:DescribeInstances
等。
https://stackoverflow.com/questions/42073927
复制相似问题