VPC IP Address Manager の Organizations 連携を利用した IPAM の一元管理を試してみた

2023.01.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、大前です。

AWS 上で利用できる IPAM 機能として、VPC IP Address Manager というものが提供されています。

また、VPC IP Address Manager は Organizations 連携を行うことで、IPAM の管理を一元化することができます。今回 Organizations 環境下で VPC IP Address Manager を検証する機会がありましたので、備忘録を残していきます。

全体像

今回検証した構成の全体像は下記の通りとなっています。 登場する AWS アカウントとしては、Organizations の管理アカウント / VPC IP Address Manager の管理アカウント / その他アカウント の 3つです。

大まかな流れは以下の通りです。

  1. 管理アカウント上から VPC IP Address Manager を管理させたい AWS アカウントに対して管理委託の設定
  2. 管理を委託されたアカウント上で IPAM や IPAM Pool を作成
  3. Resource Access Manager(RAM)を利用し、作成した IPAM Pool を他アカウントでも利用できる様に共有
  4. 他アカウント上で共有された IPAM Pool を利用して VPC を作成

やってみた

1.VPC IP Address Manager の管理委託設定(管理アカウント作業)

まず、管理アカウント上で VPC IP Address Manager の管理を他アカウントに委託します。

「VPC IP Address Manager」→「設定」→「編集」の順に進みます。


IPAM の管理者として利用したい Organizations 組織内の AWS アカウント ID を記載し、変更を保存すれば OK です。


2.管理を委託されたアカウント上で IPAM/IPAM Pool の作成(IPAM 管理アカウント作業)

続いて、IPAM の管理者として指定した AWS アカウントにて、まずは IPAM を作成します。

「VPC IP Address Manager」→「IPAM」→「IPAM を作成」の順に進みます。


まず初めに、メンバーアカウントからのデータレプリケーションを許可するためのチェックボックスがあるので、こちらはチェックを入れます。


続いて、IPAM の設定を行います。今回は「運用リージョン」に東京リージョン(ap-northeast-1)のみ指定していますが、必要に応じて他のリージョンも追加可能です。


他の項目はデフォルトのままで、作成を実行し、下記のように IPAM が作成されました。


続いて、作成した IPAM 配下に IPAM Pool を作成していきます。IPAM Pool は階層化することができ、適切に IPAM Pool を設計することで IP アドレスを良い感じに管理することができます。

今回はわかりやすく、トッププールと東京リージョン用のプールの 2つのみ作成を行います。


「VPC IP Address Manager」→「プール」→「プールを作成」の順に進みます。「スコープ」としてパブリックとプライベートが用意されていますが、今回はプライベートで作業をします。スコープについての違いは以下ドキュメントを参照ください。

IPAM Pool の作成画面にて各種項目を設定します。まずトッププールを作成するため、「ソースプール」も「ロケール」も指定なしとしています。


割り当てる CIDR は、10.0.0.0/8 とし、他項目は特に設定せず作成を実行します。


問題なく IPAM Pool が作成されました。


続いて、作成したトッププールの下に東京リージョン用の IPAM Pool を作成します。名前はわかりやすいものにしておきます。


トッププール作成時とは異なり、「ソースプール」には先ほど作成した IPAM Pool を、「ロケール」には東京リージョンを選択します。


CIDR の割り当ては 10.0.0.0/16 としました。


これにて IPAM Pool の作成は完了です。コンソール上では、作成した IPAM Pool の階層構造も確認できます。


3.作成した IPAM Pool の共有(IPAM 管理アカウント作業)

続いて、作成した IPAM Pool を他の AWS アカウントでも利用できるように、RAM を利用した共有を行います。

先ほど作成した東京リージョン用の IPAM Pool の詳細画面を開き、「リソース共有」→「リソース共有を作成」をクリックすると RAM の画面が開きます。


RAM の画面から新規共有設定の作成に進み、「リソースタイプ」にて "IPAM プール" を選択すると先ほど作成した IPAM プールが出てくるため、東京リージョン用の IPAM Pool を選択します。


次の画面では権限の設定になりますが、AWSRAMDefaultPermissionsIpamPool が選択されていれば OK です。


次の画面で共有先の設定を行います。アカウント ID を指定した共有もできますが、今回は Organizations 組織 ID を指定し、組織全体へ共有しました。


以上で共有設定が完了です。これで他の AWS アカウント上でも作成した IPAM Pool を利用できる様になったはずなので確認していきましょう。

4.他アカウント上で IPAM Pool を利用して VPC を作成(その他アカウント作業)

最後に、その他の AWS アカウント上で、共有された IPAM Pool を利用して VPC を作成してみます。

VPC の作成画面にて "IPAM 割り当ての IPv4 CIDR ブロック" を選択すると、IPAM 管理アカウントにて作成した IPAM Pool が選択できることが確認でき、割り当てたいネットマスクを指定することで VPC の作成ができました。


また、IPAM 管理アカウント側で IPAM Pool の詳細画面を確認すると、IPAM Pool からアドレスを割り当てられた VPC を認識していることも確認できます。


おわりに

AWS が提供する IPAM 機能である VPC Address Manager の Organizations 連携機能を試してみました。 Organizations 環境で IP アドレスの利用範囲を管理したい場合には候補に上がるサービスかと思いますので、参考になれば幸いです。

以上、AWS 事業本部の大前でした。

参考