9

对于小型 CloudFormation 和 CodePipeline 模板,我们可以“尝试 - 测试”以获得所需角色的最低权限 IAM 策略。

这通常涉及:

  • 从最低限度的政策开始
  • 创建堆栈
  • 它失败了 - 堆栈没有权限访问 someService:someAction
  • 将服务操作添加到策略
  • 更新堆栈并重试

这种方法对于较大的 CloudFormation 模板来说太耗时了。
您如何制定最低权限 IAM 策略

想法:

  • 允许“*”,然后为事件抓取 cloudtrail 并将列出的事件映射到其等效角色 - 然后将角色减少到仅在 cloudtrail 日志中列出的角色。

  • 访问顾问

4

1 回答 1

6

授予最小权限是一个有据可查的IAM 最佳实践。文档建议逐步添加特定权限,使用Access Advisor选项卡来确定应用程序实际使用了哪些服务(可能在测试阶段使用更广泛的权限集):

从最小的权限集开始并根据需要授予额外的权限会更安全,而不是从过于宽松的权限开始,然后再尝试收紧它们。

定义正确的权限集需要进行一些研究,以确定特定任务所需的内容、特定服务支持的操作以及执行这些操作所需的权限。

Access Advisor选项卡可以对此有所帮助,只要您检查用户、组、角色或策略,该选项卡就会在 IAM 控制台摘要页面上可用。此选项卡包含有关用户、组、角色或使用策略的任何人实际使用哪些服务的信息。您可以使用此信息来识别不必要的权限,以便您可以优化您的 IAM 策略以更好地遵守最小权限原则。有关详细信息,请参阅服务上次访问的数据

这种方法类似于为特定 IAM 角色/应用程序生成的 API 事件抓取 CloudTrail,尽管后者可能更难以过滤整个事件流以查找相关事件,而 Access Advisor 列表已被过滤为你。

于 2017-01-24T16:52:58.770 回答