本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
模板验证
您可以先对 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 Linter 输出如下所示:
$ cfn-lint -t ./testtmpl.json E3002 Invalid Property Resources/SNSTopic/Properties/Name ./testtmpl.json:6:9
为了协助 CloudFormation 模板的离线验证,AMS 为 CloudFormation Linter 工具开发了一套可插拔的自定义验证规则。它们位于 AMS 控制台的开发者资源页面上。
请按照以下步骤使用 CloudFormation 摄取前验证脚本:
安装 CloudFormation Linter 工具。有关安装说明,请参阅 aws-cloudformation/cfn-lint。
下载包含验证脚本的.zip 文件:
将附加的规则解压缩到您选择的目录中。
通过运行以下命令来验证您的 CloudFormation 模板:
cfn-lint --template {TEMPLATE_FILE} --append-rules {DIRECTORY_WITH_CUSTOM_RULES}