本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CloudFormation 摄取指南、最佳实践和限制
AMS 需要处理您的 CloudFormation 模板,需要遵守一些准则和限制。
指南
要减少执行载 AWS CloudFormation 入时 AWS CloudFormation 出现的错误,请遵循以下准则:
不要在模板中嵌入凭据或其他敏感信息- CloudFormation 模板在 AWS CloudFormation 控制台中可见,因此您不想在模板中嵌入凭据或敏感数据。模板不能包含敏感信息。只有当您使用 AWS Secrets Manager 作为值时,才允许使用以下资源:
AWS::RDS::DBInstance- [MasterUserPassword,TdeCredentialPassword]AWS::RDS::DBCluster- [MasterUserPassword]AWS::ElastiCache::ReplicationGroup- [AuthToken]
注意
有关在资源属性中使用 S AWS ecrets Manager 密钥的信息,请参阅如何使用 AWS CloudFormation 模板创建和检索在 Secrets Manager 中管理的 AWS 密钥
和使用动态引用指定模板值。 使用 Amazon RDS 快照创建 RDS 数据库实例 — 这样您就不必提供 MasterUserPassword。
如果您提交的模板包含 IAM 实例配置文件,则必须以 “客户” 为前缀。例如,使用名为 “example-instance-profile” 的实例配置文件会导致失败。相反,请使用名为 “customer-example-instance-profile” 的实例配置文件。
请勿在
AWS::EC2::Instance-[UserData] 中包含任何敏感数据。 UserData 不应包含密码、API 密钥或任何其他敏感数据。此类数据可以加密并存储在 S3 存储桶中,然后使用下载到实例上 UserData。支持使用 CloudFormation 模板创建 IAM 策略有一些限制 — IAM 策略必须经过 AMS 的审核和批准 SecOps。目前,我们仅支持使用包含预先批准权限的内联策略部署 IAM 角色。在其他情况下,无法使用 CloudFormation 模板创建 IAM 策略,因为这会覆盖 AMS SecOps 流程。
KeyPairs 不支持 SSH — Amazon EC2 实例必须通过 AMS 访问管理系统进行访问。AMS RFC 流程会对您进行身份验证。您不能在 CloudFormation 模板中包含 SSH 密钥对,因为您无权创建 SSH 密钥对和覆盖 AMS 访问管理模型。
安全组的入口规则受到限制 — 您不能将源 CIDR 范围设置为 0.0.0.0/0,也不能将可公开路由的地址空间设置为 80 或 443,TCP 端口不是 80 或 443。
编写 CloudFormation 资源模板时请遵循 AWS CloudFormation 指导方针 — 参阅资源的《AWS CloudFormation 用户指南》,确保为该资源使用正确的数据 type/property 名称。例如, AWS::EC2::Instance 资源中 SecurityGroupIds 属性的数据类型是 “字符串值列表”,因此 ["sg-aaaaaaaa"] 没问题(带方括号),但是 “sg-aaaaaaaa” 不是(不带方括号)。
有关更多信息,请参阅 AWS 资源和属性类型参考。
将@@ 您的自定义 CloudFormation 模板配置为使用 AMS CloudFormation 收录 CT 中定义的参数 — 当您将 CloudFormation 模板配置为使用 AMS 收录 C CloudFormation T 中定义的参数时,您可以使用 “管理 | 自定义堆栈 | 来自模板的堆栈 | 来自 CloudFormation 模板的堆栈 | 更新 CT” (ct-361tlo1k7339x) 在 CT 输入中使用更改的参数值来重复使用 CloudFormation 模板来创建类似的堆栈。有关示例,请参阅AWS CloudFormation 摄取示例:定义资源。
带有预签名 URL 的 Amazon S3 存储桶终端节点不能过期 — 如果您使用带有预签名 URL 的 Amazon S3 存储桶终端节点,请确认预签名的 Amazon S3 URL 未过期。使用已过期的预签名 Amazon S3 存储桶 URL 提交的提 CloudFormation 取 RFC 被拒绝。
等待条件需要信号逻辑-等待条件用于协调堆栈资源的创建与堆栈创建外部的配置操作。如果您在模板中使用 AWS CloudFormation Wait Condition 资源,则等待成功信号,如果未发出成功信号的数量,则会将堆栈创建标记为失败。如果您使用等待条件资源,则需要有信号的逻辑。有关更多信息,请参阅在模板中创建等待条件。