首页 > 解决方案 > Cloudformation 堆栈创建策略

问题描述

我正在为运行 cloudformation/sam 制定一个角色/策略,以尽可能地限制访问。是否应该使用一组通用的策略操作来运行 create-stack?

这是针对我在应用程序运行时使用 cloudformation 模板创建基础架构的代码构建。

目前我有一个允许完全访问的策略,因为它需要在堆栈中创建基础设施。

但是,cloudformation 只有一部分操作可以实际执行,并且不需要完全访问权限。例如,CF 不能将项目放入 dynamodb 表中。

所以这让我想到,也许有一个基本角色/政策仅限于 cloudformation 能够执行的操作。

标签: amazon-cloudformationamazon-iam

解决方案


如果您必须为服务(例如 CodePipeline 或 CodeBuild)分配角色以部署堆栈,您不仅需要分配必要的 CloudFormation 权限(例如cloudformation:CreateStackcloudformation:ExecuteChangeSet),还需要分配部署 CloudFormation 所需的权限堆栈本身。

当您手动部署堆栈时,CloudFormation 将使用您的用户权限来验证对您正在部署/更新的服务的访问权限。当您从另一个 AWS 服务启动操作时,会发生同样的事情,但使用来自服务角色的服务。(除非您专门为 CloudFormation 堆栈分配角色,否则请参阅文档)。

请记住,如果您正在构建这样的角色,CloudFormation 可能需要比您想象的更多的权限,例如额外的读取权限、向资源添加标签的权限、删除和/或更新这些资源时的权限/更新资源等


推荐阅读