ウェブエンジニア問題集
第4章

VPCネットワークセキュリティ — Subnet・Security Group・NACL・NAT Gateway

4
この章の目次開く
ネットワーク構成を計画する人のイラスト
学習者学習者

Public SubnetとPrivate Subnetの違いは名前では分かります。でも、実際に何をどこへ置けばいいんでしょう?

AWS上の多くのシステムは VPC(Virtual Private Cloud) の中に構築します。VPC設計では、インターネットに公開するもの、内部に閉じるもの、外向き通信だけ許可するものを分けることが重要です。

SAA-C03では、VPC、サブネット、ルートテーブル、Internet Gateway、NAT Gateway、Security Group、Network ACLの組み合わせが頻出です。


Public SubnetとPrivate Subnet

サブネット特徴置くもの
Public SubnetInternet Gatewayへのルートを持つALB、NAT Gateway、踏み台が必要な場合のBastion
Private Subnet直接インターネットから到達できないEC2、ECS Task、RDS、ElastiCache

Webアプリケーションでは、ALBだけをPublic Subnetに置き、アプリケーションサーバーやDBはPrivate Subnetに置く構成が基本です。


Security GroupとNACL

Security GroupNetwork ACL
適用対象ENI、EC2、ALB、RDSなどサブネット
状態ステートフルステートレス
ルールAllowのみAllowとDeny
よく使う用途通常のアクセス制御サブネット境界の追加制御

実務では、まずSecurity Groupで設計します。NACLは追加の境界防御や明示的な拒否が必要な場合に使います。


NAT GatewayとVPC Endpoint

Private SubnetのEC2やECS Taskが外部APIやパッケージレジストリへアクセスするには、NAT Gatewayを使います。ただしNAT Gatewayはコストが高くなりやすいです。

AWSサービスへ閉域でアクセスしたい場合は VPC Endpoint を検討します。

要件選択肢
Private Subnetからインターネットへ出たいNAT Gateway
Private SubnetからS3へ閉域アクセスしたいGateway Endpoint for S3
Private SubnetからSecrets ManagerやCloudWatchへ閉域アクセスしたいInterface Endpoint

まとめ

VPCセキュリティは、公開範囲を小さくする設計です。

  • Public SubnetにはALBやNAT Gatewayなど最小限だけ置く
  • アプリケーションとDBはPrivate Subnetに置く
  • 通常のアクセス制御はSecurity Groupで行う
  • NACLはサブネット単位の追加制御に使う
  • AWSサービスへの閉域アクセスにはVPC Endpointを検討する

次の章では、WAF、Shield、Cognito、Secrets Managerなどを使ったアプリケーション保護を扱います。

AWSクイズに挑戦するこの章で学んだAWSの知識を、4択クイズでアウトプットして定着させよう