【问题标题】:AWS cloudformation: How to run cfn-nag locally in WindowsAWS cloudformation:如何在 Windows 本地运行 cfn-nag
【发布时间】:2021-07-15 18:53:38
【问题描述】:

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

我在本地安装了 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,感觉迷路了。请帮忙。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation lint


    【解决方案1】:

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

    例如:

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

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

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

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

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

    Step1:拉取案卷图片stelligent/cfn-nag

    Step2:将脚本添加到您的 package.json 以用于 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}
    

    只需将 package.json 中的脚本设置为通过 docker-compose 运行

    "cfn:nag": "docker-compose run --rm cfn-nag"
    

    【讨论】:

      猜你喜欢
      • 2019-06-13
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多