Terraform 和 AFT 版本 - AWS Control Tower

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

Terraform 和 AFT 版本

Account Factory for Terraform(AFT)支持 Terraform 版本 1.6.0 或更高版本。您必须提供 Terraform 版本作为 AFT 部署过程的输入参数,如以下示例所示。

terraform_version = "1.6.0"

Terraform 发行版

AFT 支持以下三种 Terraform 发行版:

  • Terraform Community Edition

  • Terraform Cloud

  • Terraform Enterprise

这些发行版将在以下部分详细介绍。在 AFT 引导过程中,提供您选择的 Terraform 发行版作为输入参数。有关 AFT 部署和输入参数的更多信息,请参阅 部署 AWS Control Tower Account Factory for Terraform(AFT)

如果您选择 Terraform Cloud 或 Terraform Enterprise 发行版,则为 terraform_token 指定的 API 令牌必须是 User 或 Team API 令牌。并非所有必需的都支持组织令牌 APIs。出于安全考虑,您必须避免通过分配 terraform 变量来将此令牌的值签入版本控制系统(VCS),如以下示例所示。

# Sensitive variable managed in Terraform Cloud: terraform_token = var.terraform_cloud_token

Terraform Community Edition

如果选择 Terraform Community Edition 作为发行版,AFT 会在 AFT 管理账户中为您管理 Terraform 后端。AFT 会下载您指定的 Terraform 版本的 terraform-cli,以便在 AFT 部署和 AFT 管道阶段运行。生成的 Terraform 状态配置存储在 Amazon S3 存储桶中,其命名形式如下:

aft-backend-[account_id]-primary-region

AFT 还会创建一个 Amazon S3 存储桶,用于将您的 Terraform 状态配置复制到另一个存储桶 AWS 区域,用于灾难恢复,其命名形式如下:

aft-backend-[account_id]-secondary-region

我们建议您在这些 Terraform 状态 Amazon S3 存储桶上针对删除功能启用多重身份验证(MFA)。要了解有关 Terraform Community Edition 的更多信息,请参阅 Terraform 文档

要选择 Terraform OSS 作为发行版,请提供以下输入参数:

terraform_distribution = "oss"

Terraform Cloud

如果选择 Terraform Cloud 作为发行版,AFT 会为您的 Terraform Cloud 组织中的以下组件创建工作区,从而启动 API 驱动型工作流。

  • 账户申请

  • AFT 预置的账户的 AFT 自定义

  • AFT 预置的账户的账户自定义

  • AFT 预置的账户的全局自定义

Terraform Cloud 管理生成的 Terraform 状态配置。

如果选择 Terraform Cloud 作为发行版,请提供以下输入参数:

  • terraform_distribution = "tfc"

  • terraform_token - 此参数包含 Terraform Cloud 令牌的值。AFT 将该值标记为敏感值,并将其作为安全字符串存储在 AFT 管理账户的 SSM Parameter Store 中。我们建议您根据公司的安全策略和合规性准则定期轮换 Terraform 令牌的值。Terraform 令牌应是 User 或 Team 级别的 API 令牌。不支持 Organization 令牌。

  • terraform_org_name - 此参数包含您的 Terraform Cloud 组织的名称。

注意

不支持在单个 Terraform Cloud 组织中部署多个 AFT。

有关如何设置 Terraform Cloud 的信息,请参阅 Terraform 文档

Terraform Enterprise

如果选择 Terraform Enterprise 作为发行版,AFT 会为您的 Terraform Enterprise 组织中的以下组件创建工作区,并为由此生成的 Terraform 运行触发 API 驱动型工作流。

  • 账户申请

  • AFT 预置的账户的 AFT 账户预置自定义

  • AFT 预置的账户的账户自定义

  • AFT 预置的账户的全局自定义

生成的 Terraform 状态配置由您的 Terraform Enterprise 设置管理。

要选择 Terraform Enterprise 作为发行版,请提供以下输入参数:

  • terraform_distribution = "tfe"

  • terraform_token - 此参数包含您的 Terraform Enterprise 令牌的值。AFT 将其值标记为敏感值,并将其作为安全字符串存储在 AFT 管理账户的 SSM Parameter Store 中。我们建议您根据公司的安全策略和合规性准则定期轮换 Terraform 令牌的值。

  • terraform_org_name - 此参数包含您的 Terraform Enterprise 组织的名称。

  • terraform_api_endpoint - 此参数包含您的 Terraform Enterprise 环境的 URL。此参数的值必须采用以下格式:

    https://{fqdn}/api/v2/

有关如何设置 Terraform Enterprise 的更多信息,请参阅 Terraform 文档