将 Terraform 模板转换为 Cloudformation 模板
Posted
技术标签:
【中文标题】将 Terraform 模板转换为 Cloudformation 模板【英文标题】:Convert Terraform Templates to Cloudformation Templates 【发布时间】:2018-04-14 09:15:31 【问题描述】:我想将现有的 terraform 模板 (hcl) 转换为 aws cloudformation 模板 (json/yaml)。
我基本上是想通过CFN_NAG来查找这些模板的安全问题。
我已经尝试过的一种方法是将 HCL 转换为 JSON,然后将模板传递给 CFN_NAG,但由于两个模板的结构不同,我收到了失败。
有人可以在这里提供任何建议吗?
【问题讨论】:
您应该在此处提供一个示例来帮助说明您遇到的问题。 【参考方案1】:实现这一点的一种相当复杂的方法是使用 Terraform 建立实际的 AWS 环境,然后使用 AWS 的 CloudFormer 从 Terraform 构建的内容中提取 CloudFormation 模板(JSON 或 YAML)。此时您可以使用cfn-nag。
CloudFormer 有一些限制,目前并非所有 AWS 资源都受支持(例如 RDS 安全组),但它会为您提供所有基本 AWS 资源。
不要忘记删除所有环境,包括 CloudFormer 的环境,以最大限度地降低成本。
【讨论】:
【参考方案2】:您想使用静态代码分析来查找 Terraform 设置中的安全问题。
尝试将 Terraform 转换为 CloudFormation 以便以后使用 cfn-nag 是一种方法。但是,现在有一些工具可以直接对 Terraform 设置进行操作。
我建议看看terrascan。它基于terraform_validate。
【讨论】:
【参考方案3】:https://github.com/bridgecrewio/checkov/ 对 terraform 和 cloudformation 运行安全扫描
【讨论】:
以上是关于将 Terraform 模板转换为 Cloudformation 模板的主要内容,如果未能解决你的问题,请参考以下文章
Terraform - 如何将列表转换为地图(如何使用 terraform 获取 AMI 标签)
无法使用“terraform init -reconfigure”将 S3 后端中的 Terraform 远程状态转换为本地状态