【问题标题】:Is there a tool that will tell me what permissions will be required to create a Cloudformation template?是否有工具可以告诉我创建 Cloudformation 模板需要哪些权限?
【发布时间】:2019-09-24 01:01:54
【问题描述】:
我的团队正在尝试将我们的服务及其基础架构模板化。
我们发现确定执行或更新给定 Cloudformation 模板所需的权限集非常耗时。我们的流程是:
- 创建具有
cloudformation:CreateStack 和/或cloudformation:UpdateStack 权限的用户
- 让该用户尝试创建/更新指定的堆栈
- 观察哪个权限缺失导致堆栈操作失败
- 将该权限添加给用户
- 转到 2。
对此的替代方法是创建一个具有无限权限的“上帝用户”并让该用户执行创建/更新 - 这似乎违反了Principle Of Least Privilege
或者,是否有一个工具可以列出“给定用户在过去 N 分钟内行使了哪些权限?”。如果存在这样的工具,我们可以创建“上帝用户”,让他们执行模板,然后创建一个范围更有限的用户,该用户恰好具有上帝用户使用的权限。
【问题讨论】:
标签:
permissions
amazon-cloudformation
【解决方案1】:
没有简单的方法/工具可以做到这一点。
您可以尝试以下几种方法-
使用具有管理员权限的用户创建堆栈。完成后,等待 15-20 分钟让 CloudTrail 填充。现在在 CloudTrail 中列出由“事件源”-“cloudformation.amazonaws.com”进行的 API 调用。这应该是所需的所有 API 调用。当您继续向资源添加功能时,可能需要更多调用以进行其他操作。同样,您需要以这种方式解决这个问题。
创建一个CFN service role,并为这个角色添加管理员权限。使用此角色创建/更新/删除堆栈。仅允许 IAM 用户 iam:PassRole 和 cloudformation:* 。但是,用户将能够使用 CFN 创建不同的资源。
使用服务目录并创建产品。服务目录产品是可由特定用户/角色/组启动的 CFN 模板。用户不需要权限来创建/修改堆栈/产品中的资源。此外,最终用户无法更改产品以添加更多资源。这是一个解释这些东西的精彩视频:https://www.youtube.com/watch?v=A9kKy6WhqVA
希望这会有所帮助...