VPC ピアリング経路の宛先範囲の確認

VPC ピアリング経路の宛先を、接続先 VPC で通信が必要なアドレス範囲に制限してください。

説明

VPC ピアリング経路に 0.0.0.0/0 または ::/0 を指定すると、より具体的な経路がないトラフィックもピアリング接続に向けて送られる可能性があります。宛先には、接続先 VPC の実際の CIDR またはその中で必要な範囲を明示してください。

ピアリングは、インターネット公開や別の VPC を経由する中継機能ではありません。接続先のインターネットゲートウェイや NAT も共有できません。実際の通信には、有効なピアリング、両側の経路、セキュリティグループなどのアクセス制御が必要です。

想定される影響

  • 不要な宛先のトラフィックが適切でない経路に送られ、接続失敗やルーティングの混乱につながる可能性があります。
  • 宛先と経路が不明確になると、ネットワークのアクセス範囲の確認や障害調査が難しくなります。

対処方法

  • ピアリング経路の宛先を、接続先 VPC の必要な CIDR、サブネット、個別アドレスに制限してください。
  • 両側のルートテーブル、サブネットの関連付け、戻り経路を確認し、必要なセキュリティグループの通信だけを許可してください。
  • 変更後、意図した双方向通信が機能し、ほかの宛先への経路に影響がないことを確認してください。

例

以下は参照先の VPC とピアリング接続を別途設定する部分的な例です。ルートテーブルの名前が異なるため、変更後のリソースを追加するだけでは既存の経路は変わりません。

変更前

hcl
resource "aws_route_table" "public_route_table" {
  vpc_id = aws_vpc.vpc1.id

  route {
    cidr_block                = "0.0.0.0/0"
    vpc_peering_connection_id = aws_vpc_peering_connection.my_peering.id
  }
}

デフォルトの IPv4 経路がピアリング接続を指しています。これによって接続先 VPC がインターネットゲートウェイになるわけではありません。

変更後

hcl
resource "aws_route_table" "private_route_table" {
  vpc_id = aws_vpc.vpc1.id

  route {
    cidr_block                = aws_vpc.vpc2.cidr_block
    vpc_peering_connection_id = aws_vpc_peering_connection.my_peering.id
  }
}

宛先を接続先 VPC vpc2 の CIDR に制限しています。必要な範囲がさらに小さい場合は絞り込み、テーブルとサブネットの関連付け、および接続先の戻り経路も確認してください。

参考資料