是否可以为IAM用户应用SQS限制?

时间:2013-02-03 04:42:59

标签: amazon-sqs amazon-iam

我目前正在开发一个拥有大量IAM用户的项目,每个用户都需要对特定SQS队列的有限访问权限。

例如,假设我有一个名为'Bob'的IAM用户和一个名为'BobsQueue'的SQS队列。我想做的是授予Bob完全管理他的队列(BobsQueue)的权限,但是我想限制他的用法:

  • Bob每秒只能向BobsQueue发出10个SQS请求。
  • Bob每月不能发出超过1,000,000个SQS请求。

我基本上想对这个SQS队列应用任意使用限制。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

从我的头脑中,没有任何可用的AWS服务提供资源使用限制,除非内置于服务的基本操作方法(例如Amazon DynamoDB中的预配吞吐量)并且Amazon SQS也不例外,因为采用访问控制的访问策略语言的所有AWS服务都支持Available Keys 目前缺少此类资源限制。

虽然我可以看到您的用例,但我认为实际上更有可能看到这样的内容将灯视为会计/计费功能,只要通过设置(可能是细粒度的)限制来允许成本控制是有意义的。 AWS资源使用情况 - 但目前尚无法使用。

解决方法

您可以通过Shared Queues促进Example AWS IAM Policies for Amazon SQS获得Amazon CloudWatch中所述的授予用户Bob访问权限并依次使用Creating Amazon CloudWatch Alarms监控此队列的方式来实现您的规范的近似值通过Amazon SQS Dimensions and Metrics获取您想要限制的{{3}}中的一个或多个,例如 NumberOfMessagesSent 。达到限制后,您可以撤消此共享队列的用户Bob的IAM授权,直到他再次符合规定。

  • 显然,单独根据此指标实施“每秒”/“每月”规范并不一定是微不足道的,如果没有一些彻底的簿记,也不能在达到限制时精确地“拔掉插头”而是需要考虑处理时间和API延迟。
祝你好运!