扫描安全漏洞和格式错误 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

扫描安全漏洞和格式错误

基础设施即代码(IaC)和自动化已成为企业所必不可少的。鉴于 IaC 如此强大,您在管理安全风险方面责任重大。常见的 IaC 安全风险可能包括:

  • 过度宽松 AWS Identity and Access Management (IAM) 权限

  • 开放安全组

  • 未加密资源

  • 未打开访问日志

安全方法和工具

我们建议您采用以下安全方法:

  • 开发中的漏洞检测 - 由于开发和分发软件修补程序的复杂性,修复生产中的漏洞既昂贵又耗时。此外,生产中的漏洞也有被利用的风险。我们建议您对 IaC 资源使用代码扫描,以便在发布到生产环境之前可以检测和修复漏洞。

  • 合规性和自动修复- AWS Config 提供 AWS 托管规则。这些规则可帮助您强制合规,并允许您尝试使用AWS Systems Manager 自动化进行自动修复。您还可以使用 AWS Config 规则创建和关联自定义自动化文档。

常见开发工具

本节介绍的工具可帮助您使用自定义规则扩展内置功能。我们建议您将自定义规则与组织的标准保持一致。以下是一些值得考虑的常见开发工具:

  • 使用 cfn-nag 识别模板中的基础设施安全问题,例如宽松的 IAM 规则或密码文字。 CloudFormation 有关更多信息,请参阅 Stelligent 的 GitHub cfn-nag 存储库。

  • 使用受 cfn-nag 启发的 cdk-nag 来验证给定范围内的构造是否符合定义的规则集。您还可以将 cdk-nag 用于规则抑制和合规性报告。cdk-nag 工具通过扩展中的各个方面来验证构造。 AWS CDK有关更多信息,请参阅博客中的使用和 cdk-nag 管理应用程序的安全性和合规性。 AWS Cloud Development Kit (AWS CDK) AWS DevOps

  • 使用开源工具 Checkov 对您的 IaC 环境执行静态分析。Checkov 通过在 Kubernetes、Terraform 或中扫描你的基础设施代码来帮助识别云端配置错误。 CloudFormation你可以使用 Checkov 来获取不同格式的输出,包括 JSON、 JUnit XML 或 CLI。Checkov 可通过构建显示动态代码依赖关系的图形来有效地处理变量。欲了解更多信息,请参阅 Bridg GitHub ecrew 的 Checkov 存储库。

  • TFLint 用于检查错误和已弃用的语法,并帮助您实施最佳实践。请注意,这 TFLint 可能无法验证特定于提供商的问题。有关更多信息 TFLint,请参阅 Terraform Linters 中的 GitHub TFLint存储库。

  • 使用 Amazon Q 开发人员执行安全扫描。在集成开发环境 (IDE) 中使用时,Amazon Q Developer 可提供人工智能驱动的软件开发帮助。它可以聊聊代码,提供内联代码补全,生成全新的代码,扫描代码中是否存在安全漏洞,以及进行代码升级和改进。