Terraform および AFTバージョン - AWS Control Tower

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Terraform および AFTバージョン

Account Factory for Terraform (AFT) は Terraform バージョン 1.6.0 以降をサポートしています。次の例に示すように、AFTデプロイプロセスの入力パラメータとして Terraform バージョンを指定する必要があります。

terraform_version = "1.6.0"

Terraform ディストリビューション

AFT は 3 つの Terraform ディストリビューションをサポートしています。

  • Terraform Community Edition

  • Terraform Cloud

  • Terraform Enterprise

これらのディストリビューションについては、以降のセクションで説明します。AFT ブートストラッププロセス中に、選択した Terraform ディストリビューションを入力パラメータとして指定します。AFT デプロイと入力パラメータの詳細については、Terraform 用の AWS Control Tower Account Factory をデプロイする (AFT)「」を参照してください。

Terraform Cloud または Terraform Enterprise ディストリビューションを選択した場合、 に指定するAPIトークンはユーザートークンまたはチームAPIトークンterraform_token である必要があります。組織トークンは、必要なすべての でサポートされているわけではありませんAPIs。セキュリティ上の理由から、次の例に示すように、Terraform 変数を割り当てることで、このトークンの値をバージョン管理システム (VCS) にチェックインしないようにする必要があります。

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

Terraform Community Edition

ディストリビューションとして Terraform Community Edition を選択すると、 はAFT管理アカウントで Terraform バックエンドAFTを管理します。 はterraform-cli、指定された Terraform バージョンの AFTをダウンロードして、AFTデプロイフェーズとAFTパイプラインフェーズで実行します。結果の Terraform 状態設定は、次の形式の名前で Simple Storage Service (Amazon S3) バケットに格納されます。

aft-backend-[account_id]-primary-region

AFT は、災害対策 AWS リージョンの目的で、別の に Terraform 状態設定をレプリケートする Amazon S3 バケットも作成します。名前は次の形式で指定します。

aft-backend-[account_id]-secondary-region

これらの Terraform 状態の Amazon S3 バケットの削除関数には、多要素認証 (MFA) を有効にすることをお勧めします。 Amazon S3 Terraform Community Edition の詳細については、Terraform のドキュメントを参照してください。

ディストリビューションOSSとして Terraform を選択するには、次の入力パラメータを指定します。

terraform_distribution = "oss"

Terraform Cloud

ディストリビューションとして Terraform Cloud を選択すると、 は Terraform Cloud 組織に以下のコンポーネントのワークスペースAFTを作成し、 主導APIのワークフローを開始します。

  • アカウントリクエスト

  • AFT がAFTプロビジョニングするアカウントのカスタマイズ

  • がAFTプロビジョニングするアカウントのアカウントカスタマイズ

  • がAFTプロビジョニングするアカウントのグローバルカスタマイズ

Terraform Cloud が、結果の Terraform の状態設定を管理します。

ディストリビューションとして Terraform Cloud を選択するときは、次の入力パラメータを指定します。

  • terraform_distribution = "tfc"

  • terraform_token – このパラメータには Terraform Cloud トークンの値が含まれています。 は を機密としてAFTマークし、その値をAFT管理アカウントのSSMパラメータストアに安全な文字列として保存します。会社のセキュリティポリシーとコンプライアンスガイドラインに従って、Terraform トークンの値を定期的にローテーションすることをお勧めします。Terraform トークンは、ユーザーまたはチームレベルのAPIトークンである必要があります。組織トークンはサポートされていません。

  • terraform_org_name — このパラメータには、Terraform Cloud 組織の名前が含まれます。

注記

単一の Terraform Cloud 組織での複数のAFTデプロイはサポートされていません。

Terraform Cloud の設定方法の詳細については、Terraform のドキュメントを参照してください。

Terraform Enterprise

ディストリビューションとして Terraform Enterprise を選択すると、 は Terraform Enterprise 組織に次のコンポーネントのワークスペースAFTを作成し、結果として生じる Terraform 実行の 駆動API型ワークフローをトリガーします。

  • アカウントリクエスト

  • AFT によってプロビジョニングされたアカウントのアカウントプロビジョニングのカスタマイズ AFT

  • によってプロビジョニングされたアカウントのアカウントカスタマイズ AFT

  • によってプロビジョニングされたアカウントのグローバルカスタマイズ AFT

結果の Terraform の状態設定は Terraform Enterprise セットアップによって管理されます。

ディストリビューションとして Terraform Enterprise を選択するには、次の入力パラメータを指定します。

  • terraform_distribution = "tfe"

  • terraform_token – このパラメータには、Terraform Enterprise トークンの値が含まれています。 はその値を機密としてAFTマークし、AFT管理アカウントのSSMパラメータストアに安全な文字列として保存します。会社のセキュリティポリシーとコンプライアンスガイドラインに従って、Terraform トークンの値を定期的にローテーションすることをお勧めします。

  • terraform_org_name — このパラメータには、Terraform Enterprise 組織の名前が含まれます。

  • terraform_api_endpoint – このパラメータには、Terraform Enterprise 環境URLの が含まれます。このパラメータの値は、次の形式であることが必要です。

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

Terraform Enterprise の設定方法の詳細については、Terraform のドキュメントを参照してください。