模板验证 - AMS 高级应用程序开发者指南

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

模板验证

您可以先对 CloudFormation 模板进行自我验证,然后再将其提交给 AMS。

提交给 AMS CloudFormation ingest 的模板经过验证,以确保可以安全地部署在 AMS 账户中。验证过程会检查以下内容:

  • 支持的资源-仅使用 AMS CloudFormation 摄取支持的资源。有关更多信息,请参阅 支持的资源

  • 支持 AMIs — 模板中的 AMI 是 AMS 支持的 AMI。有关 AMS 的信息 AMIs,请参阅AMS Amazon 机器映像 (AMIs)

  • AMS 共享服务子网 — 模板不尝试将资源启动到 AMS 共享服务子网。

  • 资源策略 — 没有过于宽松的资源策略,例如公开可读或可写的 S3 存储桶策略。AMS 不允许公开读取或可写入的 S3 存储桶。 AWS 账户

在将 CloudFormation 模板提交给 AMS 之前,您可以使用 CloudFormation Linter 工具对其进行自我验证。

CloudFormation Linter 工具是验证 CloudFormation 模板的最佳方式,因为它可以验证 resource/property 名称、数据类型和函数。有关更多信息,请参阅 aws-cfn-python-lint cloudformation/。

前面显示的模板的 CloudFormation Linter 输出如下所示:

$ cfn-lint -t ./testtmpl.json E3002 Invalid Property Resources/SNSTopic/Properties/Name ./testtmpl.json:6:9

为了协助 CloudFormation 模板的离线验证,AMS 为 CloudFormation Linter 工具开发了一套可插拔的自定义验证规则。它们位于 AMS 控制台的开发者资源页面上。

请按照以下步骤使用 CloudFormation 摄取前验证脚本:

  1. 安装 CloudFormation Linter 工具。有关安装说明,请参阅 aws-cloudformation/cfn-lint。

  2. 下载包含验证脚本的.zip 文件:

    CFN Lint 自定义规则

  3. 将附加的规则解压缩到您选择的目录中。

  4. 通过运行以下命令来验证您的 CloudFormation 模板:

    cfn-lint --template {TEMPLATE_FILE} --append-rules {DIRECTORY_WITH_CUSTOM_RULES}