2017-02-06 108 views
0

我有一個IAM用戶的策略,用於發送和接收來自特定SQS隊列的消息。當使用AWS CLI併發出list-queues命令我得到的錯誤:AWS-CLI - SQS列表隊列

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用戶已被授予該行動?

歡迎任何指導/建議!謝謝!

回答

3

諸如sqs:ListQueues之類的命令不能限制其資源。他們必須有一個資源規範*。這也意味着您無法限制返回值:即使用戶無法對其執行操作,它們也會始終返回所有隊列。

這與其他「列表」類型的方法類似,如ec2:DescribeInstances等。