0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SAS対策】VPCまとめ

0
Last updated at Posted at 2025-08-30

VPCとは?

  • AWS上に構築する仮想ネットワーク
  • データセンターのネットワークをクラウドに再現できる
  • サブネット、ルーティング、セキュリティグループなどを設計可能
  • 1アカウントにつき複数VPCを作成可能

VPCとサブネット

  • VPC = CIDRブロック(例: 10.0.0.0/16)で定義するネットワーク空間
  • サブネット = VPC内の小さなネットワーク単位(例: 10.0.1.0/24)
  • パブリックサブネット = インターネットゲートウェイ経由で外部アクセス可能
  • プライベートサブネット = インターネットから直接アクセス不可
  • AZごとにサブネットを分けるのがベストプラクティス

AWSにおけるサブネットの注意点

  • CIDRで表されている範囲のIPアドレスの中に使えない(すでに予約されいる)ものがある
  • 以下5つのIPアドレスはインスタンスに割り当て不可
    • 例:10.0.0.0/24の場合
      • 10.0.0.0:ネットワークアドレス
      • 10.0.0.1:VPCルータ用
      • 10.0.0.2:AWSが提供するDNSマッピング用
      • 10.0.0.3:AWSが将来使う用
      • 10.0.0.255:ネットワークのブロードキャストアドレス
        • 32-24=8, 2^8=256, 256-5=251個使える
  • CIDRについて

プライベートIPとパブリックIPアドレスの範囲

  • IANA (Internet Assigned Numbers Authority)がIPアドレスを管理している
    • この国のIP範囲はここまで、あの国はここまで
  • プライベートIPでは、特定の値のみ使うことが可能
    • 10.0.0.0/8(10.0.0.0~10.255.255.255):大規模ネットワーク向け
    • 172.16.0.0/12(172.16.0.0~172.31.255.255):中規模向け、AWS VPCのデフォルト
    • 192.168.0.0/16(192.168.0.0~192.168.255.255):社内ネットワークなど
  • 上記以外の全てがパブリックIPアドレス

Bastion Host(踏み台サーバ)

  • パブリックサブネットにあり、プライベートサブネット内のインスタンスにアクセスするためのもの
  • セキュリティ強化のため接続可能なIPは制限しておく

ルーティング

インターネットゲートウェイ (IGW)

  • VPCをインターネットに接続、1つのVPCに1つのIGW

ルートテーブル

  • サブネットの通信経路を制御
  • パブリックサブネット用、プライベートサブネット用それぞれで1つずつ作成
    • ※パブリックサブネット2, プライベートサブネット2でもルートテーブルはパブリックサブネット用1, プライベートサブネット用1
  • ルートとして、通信をIGWに送信するよう設定するとパブリックサブネットとなる
    • 10.0.0.0/16 local ※指定範囲プライベートIPの場合、パブリックサブネット内へ
    • 0.0.0.0/0 IGW ※上記以外の全ての通信をIGWへ
  • プライベートサブネット内のインスタンスがインターネットと通信したい場合、ルートとして、通信をNATゲートウェイに送信するよう設定する
    • 10.0.0.0/16 local ※指定範囲プライベートIPの場合、プライベートサブネット内へ
    • 0.0.0.0/0 NATGW ※上記以外の全ての通信をNATゲートウェイへ
  • ルートテーブル + IGWでインターネットに接続できる

NATゲートウェイ / NATインスタンス

  • プライベートサブネットからのアウトバウンド通信を可能にする
  • 外部からの通信は受け付けない(非対称)
  • 1つのAZに1つ
  • パブリックサブネットに設置

セキュリティ制御

セキュリティグループ (SG)

  • インスタンス単位のファイアウォール
  • ステートフル(戻り通信は自動で許可)
  • デフォルトで全拒否(ルールを追加して許可)

ネットワークアクセスコントロールリスト (NACL)

  • サブネット単位のファイアウォール
  • ステートレス(戻り通信も明示的に許可が必要)
  • デフォルトで全許可(ルールを追加して制御)

例:EC2に対してリクエストがあった場合
nacl_security_group.jpg

エフェメラルポート

  • クライアントがサーバーと通信するとき、一時的に自動割り当てられる送信元ポート番号
  • 例えば:
    • クライアント → サーバー(HTTP: 80)にアクセスするとき
    • クライアントは 1024〜65535の範囲 からランダムにポートを選んで使う
  • NACLがステートレスなので「戻り(インバウンド)のエフェメラルポートも許可」しないと通信が成立しない

well-knownポート

  • 22:SSH(Secure Shell)-Linuxマシンに遠隔で安全にログイン
  • 21:FTP-ファイル共有のためにファイルをアップロード
  • 22:SFTP-SSHでファイルをアップロード
  • 80:HTTP-安全でないWebサイトへのアクセス
  • 443:HTTPS-安全なWebサイトへのアクセス
  • 3389:RDP(Remote Desktop Protocol)-windowsインスタンスにログイン

VPC接続

VPCエンドポイント

  • S3やDynamoDBなどのAWSサービスに プライベートネットワーク経由 でアクセス可(インターネットに出ずにアクセスできる)
  • 2種類ある:
    • Gateway型
      • S3, DynamoDB専用
      • ルートテーブルの作成必要
      • 無料
    • Interface型
      • ENIを使って接続
      • 有料

site to site VPN

  • オンプレ ↔ VPC をVPNで接続
  • インターネット経由なので簡単・安価だが遅延/帯域制限あり
  • Virtual Private Gateway (VGW)
    • オンプレミス環境とインターネットVPNを接続する際にVPC側で使用
  • Customer Gateway (CGW)
    • オンプレミス環境とインターネットVPNを接続する際にオンプレミス側で使用

Direct Connect(DX)

  • オンプレ ↔ AWS を 専用線 で接続
  • 導入に数週間〜数か月かかる(回線工事必要)
  • コストが高い(回線費用+DX利用料)
  • Virtual Private Gateway (VGW)の設定必要
  • 複数のVPCに接続したい場合は、Direct Connect Gatewayを使用する必要あり

AWS PrivateLink

  • VPC間やオンプレ環境から、AWSサービスや他VPC内のサービスへプライベートIPアドレスで安全に接続できる仕組み
  • 基盤となるのは VPCエンドポイント (Interface型)
  • 「サービス公開側はNLB、利用側はENI」 で繋がる
    • 例: 「VPC Aで動く自社の決済APIを、VPC Bのアプリから呼び出したい」

VPC Peering

  • 2つのVPCを直接接続(プライベート接続)
  • トランジティブ接続不可(A-B, B-C接続してもA-Cには行けない)
  • 各VPCのサブネットのルートテーブルに対象VPCのCIDR登録する必要あり
  • 異なるリージョン、アカウント間で動作

Transit Gateway

  • 複数VPCやオンプレを一元接続するハブ的存在
  • ルートテーブル必要
  • Direct Connect Gatewayにも対応

AWS CloudHub

  • 複数のオンプレ拠点を Site-to-Site VPN経由でAWS上で中継
項目 VPC Peering Transit Gateway PrivateLink
通信範囲 VPC全体の双方向 複数VPC/オンプレ集約 特定サービス(NLB配下)のみ
経路制御 ルートテーブル必要 ルートテーブル必要 ルート不要、ENIに直接
利用ケース VPC間をフルメッシュ接続 大規模ハブ&スポーク サービス単位でセキュア公開

VPCのDNS設定

enableDnsSupport

  • デフォルト:true
  • 意味:
    • DNS解決を有効/無効にする
    • 無効にすると、VPC内から 「名前解決 → IP」 ができなくなる(例: ec2-xx-xx-xx.compute.amazonaws.com を解決できない)

enableDnsHostnames

  • デフォルト:
    • デフォルトVPC → true
    • カスタムVPC → false
  • 意味:
    • VPC内で起動するEC2インスタンスに パブリックDNSホスト名を割り当てるか を制御する
    • true → インスタンスに ec2-xx-xx-xx.compute.amazonaws.com 形式の名前がつく
    • false → DNS名は割り当てられず、IPアドレスでしかアクセスできない

VPCフローログ

  • VPC内で流れるIPトラフィックをキャプチャしてログ化するサービス
  • ログには「どのトラフィックを許可したか / 拒否したか」が記録される
  • パケットの中身(ペイロード)は記録されない、あくまで「メタ情報のログ」だけ
  • ログの出力先は以下から選択できる
    • Amazon CloudWatch Logs
    • Amazon S3
  • Athenaで分析可、攻撃の特定などに
  • ログフォーマット
    • srcaddr(送信元IP)
    • dstaddr(宛先IP)
    • srcport / dstport(送受信ポート)
    • protocol(TCP/UDPなど)
    • action(accept / reject) ← 超重要!
    • bytes / packets(通信量)

ユースケース

  • S3にプライベートサブネットから安全にアクセスしたい
    • VPCエンドポイント(Gateway型)を利用
  • 複数VPCを接続したいが、フルメッシュは避けたい
    • Transit Gateway
  • EC2をパブリックサブネットに配置して外部公開
    • IGWが必要、かつパブリックIPまたはElastic IPを付与
  • プライベートサブネットのEC2が外部に出たい
    • NAT Gateway
  • セキュリティ制御をサブネット単位で厳格にしたい
    • NACL(ステートレス)を利用
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?