

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

# AFT AWS アカウント を使用して新しい の Amazon VPC IPAM IPv4 CIDR 割り当てを自動化する
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft"></a>

*Amazon Web Services、Kien Pham、Alex Pazik*

## 概要
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-summary"></a>

このパターンは、Account Factory for Terraform (AFT) AWS アカウント を使用して、新しい の Amazon VPC IP Address Manager (IPAM) IPv4 CIDR 割り当てを自動化する方法を示しています。 [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html)この作業は、`aft-account-customizations` モジュールを使用して IPAM から新しい仮想プライベートクラウド (VPC) に IPv4 CIDR ブロックを割り当てる、アカウントレベルのカスタマイズを使用して行われます。

IPAM を使用すると、IP アドレスを大規模に整理、割り当て、モニタリング、監査できるため、 AWS ワークロードの IP アドレスを簡単に計画、追跡、モニタリングできます。アカウントベンディングの処理中に IPv4 CIDR ブロックを新しい VPC に割り当てる際に使用する、[IPAM を作成](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html)し IPAM プールを作成することができます。

## 前提条件と制限
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-prereqs"></a>

**前提条件**
+ サポートされている で AWS Control Tower 有効 AWS アカウント になっているアクティブな [AWS リージョン](https://docs.aws.amazon.com/controltower/latest/userguide/region-how.html)と、デプロイされた AFT
+ サポートされている[バージョン管理システム (VCS) プロバイダー](https://github.com/aws-ia/terraform-aws-control_tower_account_factory?tab=readme-ov-file#input_vcs_provider) (BitBucket、GitHub、GitHub Enterprise など)。
+ Terraform コマンドラインインターフェイス (CLI) を[インストール済み](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)。
+ AFT をインストールする Terraform モジュールを実行できるランタイム環境。
+ AWS Command Line Interface (AWS CLI) [のインストール](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)と[設定](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)

**制限事項**
+ 一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「[AWS サービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについては、[「サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」を参照して、サービスのリンクを選択してください。

**製品バージョン**
+ ラン[AWS Control Tower ディングゾーン](https://docs.aws.amazon.com/controltower/latest/userguide/2022-all.html#version-3.0)バージョン 3.0 以降、バージョン 4.0 より前
+ [AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory) バージョン 1.13.0 以降、2.0.0 より前
+ Terraform OSS バージョン 1.2.0 以降、2.0.0 より前
+ [Terraform AWS プロバイダー](https://registry.terraform.io/providers/hashicorp/aws/latest/docs) (`terraform-provider-aws`) バージョン 5.11.0 以降、バージョン 6.0.0 より前
+ [Terraform module for IPAM](https://github.com/aws-ia/terraform-aws-ipam) (`aws-ia/ipam/aws`) バージョン 2.1.0 以降

## アーキテクチャ
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-architecture"></a>

次の図は、このパターンのワークフローとコンポーネントを示しています。

![\[Amazon VPC IPAM IPv4 CIDR 割り当てを作成するためのワークフロー。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/986cfc7d-058b-4490-9029-6cd1eadd1dd2/images/f90b84dd-0420-460e-ac0f-9f22b4a9fdc4.png)


ワークフローは、主に次のタスクから構成されています。

1. **トリガーの変更** – Terraform と IPAM のカスタマイズへの変更は GitHub リポジトリにコミットされてプッシュされます。このタスクは AWS CodeBuild パイプラインを自動的にトリガーします。

1. **ビルドの自動化** – CodeBuild 内では、複数のビルドプロジェクトがトリガーされます AWS Step Functions。

1. **カスタマイズの適用** – Step Functions は CodeBuild と連携して、Terraform の変更を計画して適用します。このタスクでは、AFT Terraform モジュールを使用して、提供されたアカウントへの IPAM プールの IP AWS 割り当てを調整します。

## ツール
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-tools"></a>

**AWS のサービス**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) は完全マネージド型の構築サービスです。ソースコードのコンパイル、ユニットテストの実行、すぐにデプロイできるアーティファクトの生成を行います。
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) は、ソフトウェアリリースのさまざまな段階を迅速にモデル化および設定し、ソフトウェアの変更を継続的にリリースするために必要なステップを自動化するのに役立ちます。
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html) は、 AWS Organizations AWS Service Catalogや など[AWS のサービス](https://docs.aws.amazon.com/controltower/latest/userguide/integrated-services.html)、他のいくつかの の機能を調整します AWS IAM アイデンティティセンター。これは、規範的なベストプラクティスに従って、 AWS マルチアカウント環境のセットアップと管理に役立ちます。
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) は、フルマネージド NoSQL データベースサービスです。高速かつ予測可能でスケーラブルなパフォーマンスを提供します。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ [AWS SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) は、Python アプリケーション、ライブラリ、またはスクリプトを と統合するのに役立つソフトウェア開発キットです AWS のサービス。
+ [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) では、承認された IT サービスのカタログを一元管理できます AWS。エンドユーザーは、組織によって設定された制約に従って、必要な承認済みの IT サービスのみをすばやくデプロイできます。
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) は、 AWS Lambda 関数やその他の を組み合わせてビジネスクリティカルなアプリケーション AWS のサービス を構築するのに役立つサーバーレスオーケストレーションサービスです。
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) は、定義した仮想ネットワークに AWS リソースを起動するのに役立ちます。この仮想ネットワークは、ユーザー自身のデータセンターで運用されていた従来のネットワークと似ていますが、 AWSのスケーラブルなインフラストラクチャを使用できるという利点があります。Amazon VPC IP Address Manager (IPAM) は、 AWS ワークロードの IP アドレスの計画、追跡、モニタリングを容易にする VPC 機能です。

**その他のツール**
+ [GitHub](https://docs.github.com/) は、開発者がコードの作成、保存、管理、共有に使用できる開発者用プラットフォームです。
+ [HashiCorp Terraform](https://www.terraform.io/)は、Infrastructure as Code (IaC) ツールで、クラウドとオンプレミスのリソースの作成と管理を支援します。これには、コンピューティングインスタンス、ストレージ、ネットワークなどの低レベルコンポーネント、DNS エントリや Software a Service (SaaS) 機能などの高レベルコンポーネントが含まれます。
+ 「[Python](https://www.python.org/)」は汎用のコンピュータプログラミング言語です。こちらを使用すると、[AWS クラウド](https://aws.amazon.com/developer/language/python/) でのアプリケーションの構築、タスクの自動化、サービスの開発を行うことができます。

**コードリポジトリ**
+ このパターンのコードは、GitHub の [AWS Control Tower Account Factory for Terraform](https://github.com/aws-ia/terraform-aws-control_tower_account_factory) リポジトリから入手できます。

## ベストプラクティス
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-best-practices"></a>

AFT をデプロイするときは、安全かつ効率的に実装を完了するために、ベストプラクティスに従うことが推奨されます。AFT の実装と運用に関する主要なガイドラインおよび推奨事項は次のとおりです。
+ **入力の徹底した確認**– [入力](https://github.com/aws-ia/terraform-aws-control_tower_account_factory)を毎回注意深く確認し理解します。AFT を設定し正しく機能させるには正確な入力設定が不可欠です。
+ テンプレートの**定期的な更新 **— テンプレートを最新の AWS 機能と Terraform バージョンで更新します。定期的に更新することで新機能を活用しセキュリティを維持することができます。
+ **バージョニング** – AFT モジュールのバージョンを固定し、可能であれば別の AFT デプロイを使用してテストします。
+ **スコープ** – AFT は、インフラストラクチャのガードレールとカスタマイズをデプロイするためにのみ使用します。アプリケーションのデプロイには使用しないでください。
+ **リンティングと検証** – AFT パイプラインには、リンティングおよび検証済みの Terraform 設定が必要です。この設定を AFT リポジトリにプッシュする前に、リンティング、検証、テストを実行します。
+ **Terraform モジュール** – 再利用可能な Terraform コードをモジュールとして構築し、常に組織の要件に合わせて Terraform と AWS プロバイダーのバージョンを指定します。

## エピック
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-epics"></a>

### AWS 環境のセットアップと設定
<a name="set-up-and-configure-your-aws-environment"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| デプロイします AWS Control Tower。 |  AWS 環境 AWS Control Tower 内で をセットアップして設定し、 の一元管理とガバナンスを確保します AWS アカウント。詳細については、 AWS Control Tower ドキュメント[の「 の開始方法 AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)」を参照してください。 | クラウド管理者 | 
| Account AWS Control Tower Factory for Terraform (AFT) をデプロイします。 | 新しい、専用の AFT 管理アカウントで AFT をセットアップします。詳細については、 AWS Control Tower ドキュメントの「[Configure and launch your AWS Control Tower Account Factory for Terraform](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html#aft-configure-and-launch)」を参照してください。 | クラウド管理者 | 
| AFT のデプロイ後のステップを完了します。 | AFT インフラストラクチャのデプロイが完了したら、 AWS Control Tower ドキュメントの[デプロイ後のステップ](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html)を完了します。 | クラウド管理者 | 

### IPAM を作成する
<a name="create-ipam"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| IPAM の管理者として委任する |  AWS 組織内の IPAM 管理者アカウントを委任するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html)または、 を使用して次のコマンド AWS CLI を実行できます。<pre>aws ec2 enable-ipam-organization-admin-account \<br />    --delegated-admin-account-id 012345678901</pre>詳細については、「Amazon VPC ドキュメント」の[「IPAM を AWS 組織内のアカウントと統合](https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html)する」および AWS CLI 「 コマンドリファレンス」の[enable-ipam-organization-admin-account](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-ipam-organization-admin-account.html)」を参照してください。 引き続き IPAM を使用するには、委任管理者用アカウントにサインインする必要があります。次のステップで指定する SSO プロファイルまたは AWS 環境変数では、そのアカウントにサインインし、IPAM トップレベルおよびリージョンプールを作成するアクセス許可を付与する必要があります。 | AWS 管理者 | 
| IPAM の最上位プールとリージョンプールを作成します。 | 本パターンの GitHub リポジトリには、IPAM 最上位プールとリージョンプールの作成に使用できる Terraform テンプレートが含まれています。その後、 AWS Resource Access Manager () を使用して、プールを組織、組織単位 (OU) AWS アカウント、またはその他のリソースと共有できますAWS RAM。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html)作成後に出力されるリソースプール ID を書き留めます。アカウントリクエストを送信するときはこの ID が必要になります。リソースプール ID を忘れた場合は、後で AWS マネジメントコンソールから取得できます。 作成したプールの CIDR が、使用中のリージョンの他のプールと重複していないことを確認します。CIDR なしでプールを作成することもできますが、CIDR をプロビジョニングするまで、そのプールを割り当てに使用することはできません。プールを編集することで、いつでも CIDR をプールに追加できます。 | AWS 管理者 | 

### IPAM と AFT の統合
<a name="integrate-ipam-with-aft"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| アカウントのカスタマイズの作成を開始します。 | 新しいアカウントのカスタマイズを開始するには、ターミナルから次のコマンドを実行します。<pre># Default name for customization repo<br />cd aft-account-customizations # Replace with your actual repo name if different than the default<br />mkdir -p APG-AFT-IPAM/terraform # Replace APG-AFT-IPAM with your desired customization name<br />cd APG-AFT-IPAM/terraform</pre> | DevOps エンジニア | 
| `aft-providers.jinja` ファイルを作成します。 | 動的コードを、使用する Terraform バックエンドとプロバイダーを指定する `aft-providers.jinja` ファイルに追加します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps エンジニア | 
| `backend.jinja` ファイルを作成します。 | 動的コードを、使用する Terraform バックエンドとプロバイダーを指定する `backend.jinja` ファイルに追加します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps エンジニア | 
| `main.tf` ファイルを作成します。 | 新しい`main.tf`ファイルを作成し、 AWS Systems Manager (`aws_ssm`) から 2 つの値を取得して VPC を作成する 2 つのデータソースを定義するコードを追加します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps エンジニア | 
| `variables.tf` ファイルを作成します。 | Terraform モジュールで使用される変数を宣言する `variables.tf` ファイルを作成します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps エンジニア | 
| `terraform.tfvars` ファイルを作成します。 | `main.tf` ファイルに渡される変数の値を定義する `terraform.tfvars` ファイルを作成します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps エンジニア | 
| `outputs.tf` ファイルを作成します。 | CodeBuild でいくつかの値を公開する新しい `outputs.tf` ファイルを作成します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps エンジニア | 
| カスタマイズをコミットします。 | 新しいカスタマイズをアカウントカスタマイズリポジトリにコミットするには、次のコマンドを実行します。<pre># Assumes you are still in the /terraform directory<br />cd .. # Skip if you are in the account customization root directory (APG-AFT-IPAM)<br />git add .<br />git commit -m "APG customization"<br />git push origin</pre> | DevOps エンジニア | 
| カスタマイズを適用します。 | 新しく作成されたアカウントのカスタマイズを使用して、新しいアカウントをリクエストするコードを `account-requests.tf` ファイルに追加します。カスタムフィールドは、適切な IPAM 割り当て IPv4 CIDR を持つ VPC を作成するために必要なベンディングアカウントに、Systems Manager パラメータを作成します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | AWS DevOps | 
| カスタマイズを検証します。 | 新しいベンディングアカウントにサインインし、カスタマイズが正常に適用されたことを確認します。以下のステップを使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.html) | DevOps エンジニア | 

## トラブルシューティング
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
|  アクセス権限が不十分であるためリソースの作成または管理に障害が発生した。 |  Step Functions、CodeBuild、およびデプロイに関連するその他のサービスにアタッチされている AWS Identity and Access Management (IAM) ロールとポリシーを確認します。必要なアクセス権限があることを確認します。アクセス権限に問題がある場合は、IAM ポリシーを調整して必要なアクセス許可を付与します。 | 
|  デプロイ中に AWS のサービス クォータに達します。 |  パイプラインをデプロイする前に、Amazon Simple Storage Service (Amazon S3) AWS のサービス バケット、IAM ロール、 AWS Lambda 関数などのリソースのクォータを確認します。必要に応じて、クォータの増加をリクエストします。詳細については、「*AWS 全般リファレンス*」の「[AWS のサービス Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)」を参照してください。 | 

## 関連リソース
<a name="automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft-resources"></a>

**AWS のサービス ドキュメント**
+ [AWS Control Tower ユーザーガイド](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ [IPAM の仕組み](https://docs.aws.amazon.com/vpc/latest/ipam/how-it-works-ipam.html)
+ [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
+ [AWS のサービス クォータ](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)

**その他のリソース**
+ [Terraform AWS プロバイダーのドキュメント](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)