AWS cloudformation:如何 运行 cfn-nag 在本地 Windows

AWS cloudformation: How to run cfn-nag locally in Windows

我有一个云形成模板,其中包含项目的所有资源和详细信息。

我在本地设置了 cfn-lint,它 运行 非常好。但是,当我推送代码更改时,由于 cfn-nag 说明了一些可以修复的简单更改,因此在部署阶段构建失败。

我正在使用 windows 机器,我需要一种在本地 运行 这个 cfn-nag 的方法,这样我就可以像 cfn-lint 一样检查它并在本地修复它们而不是等待 40构建到部署阶段的分钟数。

我在网上参考了几个帖子,发现下面两个有用

https://stelligent.com/2018/03/23/validating-aws-cloudformation-templates-with-cfn_nag-and-mu/ https://github.com/stelligent/cfn_nag

cfn-nag 和 cfn-lint 之间的区别是什么?为什么 lint 没有在 cfn-nag 抱怨的问题上失败?

上面的链接有一些关于 Ruby 和 Brew 的说明,但我使用的是 Nodejs,感觉很迷茫。请帮忙。

CFN-Nag 在 AWS CloudFormation 模板中查找可能表明基础设施不安全的模式,

例如:

过于宽松的 IAM 规则(通配符), 过于宽松的安全组规则(通配符), 访问未启用的日志, 未启用的加密,

CFN-Lint 通过处理一组规则来扫描 AWS CloudFormation 模板,其中每条规则处理模板的特定功能检查或验证。它根据 AWS CloudFormation 资源规范进行验证。

可以使用 --append-rules 参数使用自定义规则扩展此规则集合。

例如:空格、对齐方式 (YAML)、类型检查、资源属性的有效值和其他最佳实践。

您在上面提供的这两个链接包含所有需要的信息,只是不直接针对使用 Windows 机器的 Nodejs 开发人员。

Step1:拉取docket镜像stelligent/cfn-nag

第 2 步:将脚本添加到您的 package.json for cfn-nag

例如:

"scripts" : {
       "cfn:nag": "cfn-nag"
  }

如果您正在使用 docker-compose.yml

将 cfn-nag 图像详细信息添加到您的 docker-compose.yml 中,如下所示

cfn-nag:
   image: "stelligent/cfn-nag"
   volumes:
      -./path_of_cfn_file_to_copy: /path_to_copy_to
   command: ${COMMAND: -/path_to_copy_tp/cfn_file}

只需通过 docker-compose

将 package.json 中的脚本设置为 运行
"cfn:nag": "docker-compose run --rm cfn-nag"