Transit Gateway (ピアリング) を利用して、東京リージョンの EC2 インスタンスからバージニア北部リージョンの IAM VPC エンドポイントへ AWS CLI コマンド実行してみた
はじめに
テクニカルサポートの 片方 です。
東京リージョンの EC2 インスタンスからバージニア北部リージョンの IAM インターフェイス VPC エンドポイントへ AWS CLI コマンドを実行してみました。
クロスリージョンでの接続を実現するにあたり、Transit Gateway (ピアリング) を利用します。
やってみた
検証では、東京リージョンとバージニア北部リージョンを利用します。
なお、IAM サービスのコントロールプレーンは米国東部(バージニア北部/us-east-1)リージョンにのみ存在します。
そのため、どのリージョンから IAM リソースを操作する場合でも、実際のリクエストは最終的に us-east-1 リージョンに到達する必要があります。
東京リージョン側の設定 1
インターネットへのアウトバウンド経路が存在しない VPC と 2 つのサブネットを作成します。
IPv4 CIDR (10.10.0.0/26)
- private1
- private2 (EC2 インスタンス起動)
東京リージョン側で Transit Gateway を作成します。
ここでは、Amazon 側の自律システム番号 (ASN)のみ、64512-65534 または 4200000000-4294967294 の範囲でプライベート ASN を指定します。
その他の設定はデフォルトで作成します。
作成された Transit Gateway の ID はピアリング接続に必要なため、メモします。
続いて、Transit Gateway アタッチメントを作成します。
先ほど作成した Transit Gateway ID を選択し、アタッチメントタイプを "VPC" にします。
対象の VPC ID を選択後、Transit Gateway VPC アタッチメントを作成するサブネットを選択します。
EC2 インスタンスが起動しないサブネット (private1) を選択します。
その他設定はデフォルトで作成します。
バージニア北部側の設定 1
バージニア北部リージョンでは、東京リージョンに存在する VPC の CIDR が重複しないように、
プライベートサブネットを 1 つのみ作成します。
IPv4 CIDR (10.30.0.0/26)
- private1
Transit Gateway を作成します。
ここでは、Amazon 側の自律システム番号 (ASN)のみ、64512-65534 または 4200000000-4294967294 の範囲でプライベート ASN を指定しますが、東京リージョンで異なる番号を付与します。
その他の設定はデフォルトで作成します。
Transit Gateway アタッチメントを作成します。
先ほど作成した Transit Gateway ID を選択し、アタッチメントタイプを "VPC" にします。
対象の VPC ID を選択後、Transit Gateway VPC アタッチメントを作成するサブネット (private1) を選択します。
その他設定はデフォルトで作成します。
続いて、ピアリング接続用のアタッチメントを作成します。
先ほど作成した Transit Gateway ID を選択し、アタッチメントタイプを "Peering Connection" にします。
マイアカウントを選択し、東京リージョンにある Transit Gateway の ID を記載してから作成します。
作成が完了したら、続いては各リージョンでルートテーブルを設定します。
東京リージョン側の設定 2
EC2 インスタンスが起動中の private2 サブネットのルートテーブルのみ、以下のように編集します。
送信先を、バージニア北部リージョンの IPv4 CIDR (10.30.0.0/26) に、ターゲットとには Transit Gateway を選択します。
送信先 | ターゲット |
---|---|
10.30.0.0/26 | tgw-xxxxxxxxxxxxxxx |
10.10.0.0/26 | local |
続いて Transit Gateway ルートテーブルで、静的ルートを作成します。
CIDR は 10.30.0.0/26 にして、タイプはアクティブを選択します。
アタッチメント選択では、Peering (ピアリングアタッチメント)を選択し、静的ルートを作成します。
最終的に以下が想定されます。
CIDR | リソースタイプ | ルートタイプ |
---|---|---|
10.10.0.0/26 | VPC | 伝達済み |
10.30.0.0/26 | Peering | 静的 |
バージニア北部側の設定 2
private1 サブネットを以下のように編集します。
送信先 | ターゲット |
---|---|
10.10.0.0/26 | tgw-xxxxxxxxxxxxx |
10.30.0.0/26 | local |
続いて Transit Gateway ルートテーブルで、静的ルートを作成します。
東京リージョン側での設定と同様になります。
CIDR | リソースタイプ | ルートタイプ |
---|---|---|
10.30.0.0/26 | VPC | 伝達済み |
10.10.0.0/26 | Peering | 静的 |
IAM インターフェイス VPC エンドポイントをバージニア北部リージョンの private1 サブネットに作成します。
作成のポイントとしては以下です。
- プライベート DNS 名は 無効 に設定 (チェックボックス外す)
- アタッチするセキュリティグループのインバウンドルールで東京リージョン側の IP アドレスを明示的に許可
例) 東京リージョン側の IP アドレス (10.10.0.0/26) からの HTTPS 443 通信を許可してください。
セキュリティグループの参照は、トランジットゲートウェイピアリング接続全体ではサポートされていません。両方の VPCsを同じトランジットゲートウェイにアタッチする必要があります。
Route53 で PrivateHostedZone ~ レコード作成
以下を設定することで、プライベートホストゾーンによる名前解決が実施可能です。
ホストゾーン作成
- ドメイン名: iam.us-east-1.amazonaws.com
- タイプ: プライベートホストゾーン
- ホストゾーンに関連する VPC: 東京リージョンの対象 VPC ID (例:10.10.0.0/26)
レコード作成
プライベートホストゾーンが作成されたら、そのホストゾーンでレコードを作成します。
- レコード名: 空白
- レコードタイプ: A — IPv4 アドレス
- エイリアス: チェックを入れる
- トラフィックのルーティング先: VPC エンドポイントへのエイリアス, バージニア北部, IAM インターフェイス VPC エンドポイント
検証してみた
AWS CLI は、リージョンの各サービスに対してデフォルトのエンドポイントを自動的に使用するため、今回のように別のエンドポイントに対して API リクエストを発行する場合には、明示的に < --endpoint-url > オプションを使用し値を指定する必要があります。
※ EC2 シリアルコンソールより AWS CLI コマンド実行例
[root@ip-10-10-0-54 ~]# aws iam create-user --user-name u1 --endpoint-url https://iam.us-east-1.amazonaws.com/ --no-verify-ssl --region us-east-1
/usr/lib/python3.9/site-packages/urllib3/connectionpool.py:981: InsecureRequestWarning: Unverified HTTPS request is being made to host 'iam.us-east-1.amazonaws.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
warnings.warn(
{
"User": {
"Path": "/",
"UserName": "u1",
"UserId": "AIDATA47xxxxxxxxxxxx",
"Arn": "arn:aws:iam::123456789012:user/u1",
"CreateDate": "2025-06-30T08:35:26+00:00"
}
}
[root@ip-10-10-0-54 ~]#
成功しました!
まとめ
管理や構築が煩雑になるものの、本ブログが誰かの参考になれば幸いです。
参考資料
- Amazon VPC Transit Gateway の Transit Gateway ピアリングアタッチメント - Amazon VPC
- Amazon VPC Transit Gateway を使用して Transit Gateway ルートテーブルにルートを追加する - Amazon VPC
- AWS Identity and Access Management での耐障害性 - AWS Identity and Access Management
- Amazon VPC Transit Gateway の Amazon VPC アタッチメント - Amazon VPC
- Using endpoints in the AWS CLI - AWS Command Line Interface
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。