我有EC2实例的IAMangular色(所谓实例configuration文件),附带两个策略,可以完全访问SQS和S3。 有一个与此angular色相关的EC2实例正在运行。 它运行几个应用程序,使用临时凭据,一切工作正常。
现在,我的一个应用程序也需要访问SNS。 我修改了IAMangular色,在策略生成器中添加了内联策略,允许特定的SNS主题的API调用。 然而,在修改IAMangular色后,当试图使用aws sns list-topics我得到以下错误(相应的arn被三重X代替):
User: XXX is not authorized to perform: SNS:ListTopics on resource: XXX:*
添加策略是否需要重新启动实例? 还是必须等待临时凭证( /latest/meta-data/iam/security-credentials/iam-role-name )过期? 我可以以某种方式强制这些凭据到期吗?
编辑 :最后一个问题似乎是通过IAM常见问题回答。 临时凭证无法重新激活或扩展。
经过许多不同的方法,结果certificate,限制我的单一队列的政策造成了所有的问题。 我认为,当策略应用于单个队列,并且您使用ListTopics时,您将只获得您有权访问的主题。 但是,我的SNS还有其他几个主题,而且很可能它们在ListTopics中的存在被认为是违反政策。 当我用'*'replace特定的主题名称并保存策略,然后immidiatelly(不需要到期的凭据或EC2实例重新启动)它开始工作。