对于小型CloudFormation和CodePipeline模板,我们可以“尝试 - 测试”以获得所需角色的最低权限IAM策略 .
这通常涉及:
-
从最小的政策开始
-
创建堆栈
-
它失败了 - stack没有someService的权限:someAction
-
将服务操作添加到策略
-
更新堆栈,然后重试
对于较大的CloudFormation模板,此方法过于耗时 .
你是如何发展 Least Privilege IAM Policies 的?
思路:
-
允许“*”然后刮取cloudtrail以查找事件并将列出的事件的 Map 构建为其等效角色 - 然后将角色减少到仅仅列在cloudtrail日志中的角色 .
-
如果您可以将操作隔离到用户名,这会有所帮助
-
Access Advisor
1 回答
Grant least privilege是一个有据可查的IAM Best Practice . 文档建议逐步添加特定权限,使用Access Advisor选项卡确定应用程序实际使用哪些服务(可能在测试阶段使用更广泛的权限集):
此方法类似于为特定IAM角色/应用程序生成的API事件抓取CloudTrail,尽管后者可能更难以过滤整个事件流以查找相关事件,而Access Advisor列表已经过滤您 .