如何确定在AWS CloudFormation中需要哪些IAM权限?

15
我想使用CloudFormation的packagedeploy功能,但如何确定运行它们所需的IAM权限? 一般来说,我如何确定需要哪些权限?

1
阅读介绍或教程,然后使用此参考文档:http://docs.aws.amazon.com/IAM/latest/UserGuide/reference.html - Vorsprung
你的CloudFormation模板是做什么的? 你是否将堆栈作为CloudFormation服务角色执行? - Jamie Starke
@JamieStarke,它正在创建Lambda资源等。目前我正在使用普通用户上传模板。我打算在未来使用CI来完成这个任务,那么我需要一个服务角色吗? - Jiew Meng
你解决了吗?我有一个包含VPC、Internet Gateways、ECS、ECR和许多其他内容的大型模板。手动确定授予权限可能非常困难。 - Faizuddin Mohammed
1
@FaizuddinMohammed 不,我认为根据答案和谷歌的理解,这是不可能的。最终我只使用了相对宽泛的权限。主要是通过项目前缀来限制我的资源。 - Jiew Meng
显示剩余2条评论
1个回答

2
基于您使用Lambda的事实,我猜测这与您的另一个问题相关:CloudFormation设置CodePipeline/CodeBuild以部署SAM应用程序
在那个问题的答案中,我提到了一个示例CloudFormation模板。如果您查看该示例中的CloudFormationServicePolicy,您可能会发现您需要的一切内容。
但是对于这个特定问题的答案,有两个部分:
要进行打包,您需要:
  • 部署工件桶(ArtifactBucket
  • 用户对ArtifactBuckets3:PutObject权限
部署则更难回答。在上面提到的CloudFormationServicePolicy中,您可以找到我们在CloudFormation中使用的完整权限集来部署函数。至少,您需要:
  • iam:PassRole(假设您传递了现有角色)
  • lambda:CreateFunction
  • lambda:UpdateFunctionCode
  • lambda:UpdateFunctionConfiguration
  • lambda:AddPermission
  • lambda:GetEventSourceMapping
  • lambda:CreateEventSourceMapping
  • lambda:DeleteEventSourceMapping
如果您通过控制台进行部署,您可能还需要:
  • iam:GetRole
  • iam:ListRole
  • lambda:GetFunction
  • lambda:GetFunctionConfiguration

9
有自动化的方法可以完成这个任务吗? - Matteo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接