我必须一次从单个cloudformation堆栈中创建多个IAM用户。
因为,Cloudformation不支持Loop。我创建了一个代码管道,该代码管道部署了存储在AWS CodeCommit中的cloudformation模板。
我可以使用代码管道的参数替代功能来创建多个用户,例如在列表中提供以下参数:
{
"Username":["Bob","Alice","John"]
}
答案 0 :(得分:1)
您应该这样做,但是如果您不保留先前存在的内容,我相信它将删除之前的内容。您可以做一个与Lambda函数绑定的自定义资源,然后您的Lambda函数就不能“删除”以前的资源。
答案 1 :(得分:1)
您将需要在CodeCommit和CloudFormation操作之间执行一个操作,以生成包含每个IAM用户资源的模板(除非您计划提交扩展的CloudFormation模板)。 CodeBuild可能是运行某些生成CoudFormation模板的命令的最佳选择。
对于这样的用例,您可能会发现CDK(https://github.com/awslabs/aws-cdk/)很有趣。它可以让您循环描述IAM用户,然后合成CoudFormation模板。在撰写此答案时,它处于预览状态,因此不要依赖它进行生产。