Transit Gateway と一元化されたエグレス VPC を経由する仮想プライベートクラウド (VPC) リソースからインターネットにアクセスできません。
簡単な説明
一元化されたエグレス VPC を介したインターネット接続には、特定のルーティングとセキュリティ設定が必要です。アーキテクチャの詳細については、「Using the NAT gateway with AWS Network Firewall for centralized IPv4 egress」(一元化された IPv4 エグレス用の AWS Network Firewall で NAT ゲートウェイを使用する) を参照してください。
解決策
注: この記事では、ソースリソースとして Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを想定しています。リソースの設定を確認する前に、インターネットに接続しているリソースを特定してください。別のリソースを使用する場合は、AWS サービスの AWS マネジメントコンソールを開いて、サブネットとセキュリティグループの設定を確認してください。
ソース VPC リソースと設定を確認する
次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインで [インスタンス] をクリックします。
- インターネットにアクセスできない EC2 インスタンスを特定して選択します。
- [セキュリティ] タブをクリックします。
- ソースインスタンスのアウトバウンドルールがインターネットトラフィックを許可していることを確認します。
- 詳細ペインで、[ネットワーク] タブをクリックします。
- インスタンスをホストする VPC、サブネット、アベイラビリティゾーンを書き留めておきます。
- インスタンスに関連付けられているサブネットのハイパーリンクを選択し、そのリンクを新しいタブで開きます。
- Amazon Virtual Private Cloud (Amazon VPC) コンソールを開きます。
- サブネットを選択し、[詳細] ペインで次の設定を確認します。
[ネットワーク ACL] で、[インバウンドルール] と [アウトバウンドルール] でインターネットトラフィックが許可されていることを確認します。
[ルートテーブル] で、デフォルトルート 0.0.0.0/0 が存在し、ネクストホップとして Transit Gateway を指していることを確認します。このルートが存在しない場合は、Transit Gateway をネクストホップとするデフォルトルート 0.0.0.0/0 をルートテーブルに追加します。
VPC Transit Gateway アタッチメントを確認する
次の手順を実行します。
- Amazon VPC コンソールを開きます。
- ナビゲーションペインの [Transit Gateway] で、[Transit Gateway アタッチメント] をクリックします。
- 前に特定した VPC ID を入力して、正しい VPC アタッチメントをフィルタリングして表示します。
- [詳細] ペインで、[サブネット ID] フィールドを確認します。次に、リストされているサブネットの少なくとも 1 つがインスタンスと同じアベイラビリティゾーンにあることを確認します。
ネットワーク ACL の関連付けと設定を確認する
次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [ネットワークとセキュリティ] で [ネットワークインターフェイス] をクリックします。
- 検索フィールドで、インターフェイスタイプ = transit_gateway フィルターを使用します。
- 結果から、ソース VPC Transit Gateway アタッチメントに関連付けられているサブネット ID を選択し、新しいタブで詳細を開きます。
- 新しいタブから、サブネットをもう一度クリックします。
- 詳細ペインで、[ネットワーク ACL] をクリックします。
- ネットワーク ACL ルールで次の要件を確認します。
[アウトバウンドルール] タブで、アウトバウンドルールに送信先のパブリック IP アドレスが含まれていることを確認します。
[インバウンドルール] タブで、インバウンドルールに NAT ゲートウェイのプライベート IP アドレスが含まれていることを確認します。
注: Transit Gateway サブネットのオープンインバウンドルールとアウトバウンドルールを使用してネットワーク ACL を設定するのがベストプラクティスです。
Transit Gateway の関連付けとルートテーブルの伝播を確認する
次の手順を実行します。
- Amazon VPC コンソールを開きます。
- ナビゲーションペインの [Transit Gateway] で、[Transit Gateway アタッチメント] をクリックします。
- 検索フィールドに、ソース EC2 インスタンスの VPC ID を入力します。次に、関連するルートテーブルの ID を選択します。
- [詳細] ペインで、[ルート] をクリックします。
- ルートテーブルに、送信先のパブリック IP アドレスまたはエグレス VPC アタッチメントを指すデフォルトルートが含まれていることを確認します。
アウトバウンドインターネットトラフィックとリターンルーティングのエグレス VPC ルーティング設定を確認する
Transit Gateway インターフェイスとサブネット構成を特定する
次の手順を実行します。
- エグレス VPC をホストする AWS アカウントから Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [ネットワークとセキュリティ] で [ネットワークインターフェイス] をクリックします。
- 検索フィールドで、インターフェイスタイプ = transit_gateway フィルターを入力します。
- 検索結果から、エグレス VPC Transit Gateway アタッチメントをホストする各サブネットを書き留めます。
アウトバウンドインターネットトラフィックのルーティングを確認する
次の手順を実行します。
- Amazon VPC コンソールを開きます。
- ナビゲーションペインの [仮想プライベートクラウド] で、[ルートテーブル] をクリックします。
- 検索フィールドに、先ほど書き留めたサブネット ID を入力して、サブネットに関連付けられているルートテーブルを検索します。
- ルートテーブルを選択し、[詳細] ペインで [ルート] をクリックします。
- ルートテーブルにデフォルトルートまたは送信先パブリックプレフィックスが含まれており、NAT ゲートウェイを指していることを確認します。
- サブネット ID ごとにステップ 3 ~ 5 を繰り返します。
ネットワーク ACL と NAT ゲートウェイの設定を確認する
次の手順を実行します。
- Amazon VPC コンソールのナビゲーションペインの [セキュリティ] で、[ネットワーク ACL] をクリックします。
- 検索フィールドにサブネット ID を入力して、各サブネットに関連付けられているネットワーク ACL を検索します。
- ネットワーク ACL に、送信先のパブリック IP アドレスへのトラフィックを許可するアウトバウンドルールと、NAT ゲートウェイのプライベート IP アドレスからのインバウンドルールのトラフィックがあることを確認します。
- ナビゲーションペインの [仮想プライベートクラウド] で、[NAT ゲートウェイ] をクリックします。
- 各 NAT ゲートウェイのインターネットバウンドトラフィックのルートテーブルとアベイラビリティゾーンを書き留めておきます。
リターントラフィックルーティングを確認する
次の手順を実行します。
- Amazon VPC コンソールのナビゲーションペインの [仮想プライベートクラウド] で、[ルートテーブル] をクリックします。
- 特定された NAT ゲートウェイのルートテーブルごとに、デフォルトルート 0.0.0.0/0、またはインターネットゲートウェイをネクストホップとする送信先パブリックプレフィックスが含まれていることを確認します。
- 特定されたルートテーブルごとに、インターネットからのリターントラフィックをソースインスタンスに戻すルートが含まれていることを確認します。
Transit Gateway からのリターンルーティングを確認する
次の手順を実行します。
- Amazon VPC コンソールのナビゲーションペインの [Transit Gateway] で、[Transit Gateway アタッチメント] をクリックします。
- 検索フィールドに、エグレス VPC ID を入力します。
- エグレス VPC のルートテーブル ID を選択します。
- ルートテーブルに元のソースの CIDR ブロックが含まれていることを確認します。
関連情報
Using the NAT gateway for centralized IPv4 egress (一元化された IPv4 エグレスに NAT ゲートウェイを使用する)
Introducing VPC Flow Logs for AWS Transit Gateway (AWS Transit Gateway の VPC フローログの紹介)