我有 CloudFormation 堆栈,它经常通过脚本更新(更改启动配置的源 AMI)。我希望通过相同的脚本部署它,由非特权用户/实例角色执行。目前所有更新都是由管理员用户进行的,他们拥有的权限远远超过所需的权限。
我最初的方法是尝试失败,在日志中查看缺少哪些权限,然后逐一添加。这花费了大量时间,而且效率很低。
我认为应该有一种方法可以根据 CloudFormation 模板生成权限列表,以及更新堆栈本身的权限。
我的第二个想法是处理成功部署的 CloudTrail 日志以从那里提取操作和资源。
也许已经有办法做到这一点而我正在重新设计轮子?
答案1
最好参考 IAM 文档,了解更新资源所需的 IAM 操作。例如,更新 LaunchConfiguration 资源的图片编号属性需要替换 LaunchConfiguration 资源,然后必须通过以下方式使用新的 LaunchConfiguration 更新 AutoScalingGroup:更新AutoScalingGroup行动。
我建议直接参考文档,因为用于为 CloudFormation 模板生成权限的脚本可以为每个资源生成一个可能的 IAM 操作列表,但此时您仍然必须查看该列表并说“对于此资源(例如 AutoScalingGroup)我想要对其采取什么操作?”
我的观点是直接参考文档比反复试验更快,并且与所提出的工具一样快。
不过,这个想法确实很有趣,比直接引用文档更快的是一个编辑器扩展,它可以在您查看 CF 模板时显示资源类型的可能操作。我最近一直在研究这样的扩展,如果我完成了,我会在这里粘贴链接。
答案2
好的,经过与 AWS 的反复沟通后,他们最终为 IAM 发布了此解决方案:访问分析器,这有助于政策和权限生成。我认为这是目前最好的。