「プライベートネットワークだから安全」を考え直す ─ 3つのネットワークとAWS APIの守られ方

 公開 2026-07-13

オンプレミスでは「内側は安全、外側は危険」という境界の直感が成り立っていた。AWSではこの直感がそのまま通用しない。一般インターネット・AWSグローバルネットワーク・VPCプライベートネットワークの3つを区別し、「API認証」と「ネットワーク制限」が別のレイヤーであることを整理する。

オンプレミスのネットワーク設計には、長く機能してきた直感がある。 「ファイアウォールの内側は安全で、外側は危険」——境界の内外がそのままセキュリティの内外だった。

この直感を持ったままAWSに入ると、2つの症状が出る。 「とにかく全部プライベートサブネットに入れたい」という過剰な閉域志向と、 「プライベートに置いたのだから安全だ」という誤った安心感である。 本稿では、AWSに存在する3つのネットワークを区別するところから、この直感を組み立て直す。

1. AWSには3つのネットワークがある

利用者のオフィスや自宅がある一般インターネット、各サービスのAPIエンドポイントとリージョン間を結ぶ専用バックボーンがあるAWSグローバルネットワーク、EC2やRDSなど利用者が住所を決めるリソースがあるVPCプライベートネットワークの3つを示し、インターネットからはTLSとAPI署名でAPIエンドポイントに届くがVPC内のリソースには直接届かず、VPCからはエンドポイントやNATを経由してAPIに届くことを示す図
#
ネットワーク
誰が管理するか
性質
1
一般インターネット
誰でもない(公共)
経路上に不特定の第三者がいる前提。TLSで内容を守る
2
AWSグローバルネットワーク
AWS
AWSサービスのAPIエンドポイント群が生きている場所。リージョン間通信もAWSの専用網を通る
3
VPCプライベートネットワーク
利用者
利用者が自分で作る仮想ネットワーク。EC2やRDSなど「住所を持つリソース」だけがここに住む

オンプレの直感では1と3の二分法しかない。しかしAWSの実像は、 多くのサービスが2(AWSのグローバルネットワーク)に住んでいて、そもそも3の中にいないという構造をしている。

2. AWSのサービスはどこに住んでいるか

サービス例
住んでいる場所
あなたのVPCに「入れられる」か
S3 / DynamoDB / Lambda(関数実行の管理面) / CloudWatch / IAM
AWSグローバルネットワーク上のAPIエンドポイント
入れられない(そういう場所にいない)
EC2 / RDS / ElastiCache / ECSタスク
VPC内(利用者が決めたサブネット)
もともとVPCの住人

「S3をプライベートサブネットに置きたい」という要望は、オンプレ直感からは自然に聞こえるが、 構造的に成立しない。S3はVPCの外側、AWSのネットワークに住むサービスであり、 できるのは「S3への経路をどう通すか」を選ぶことだけである(後述のVPCエンドポイント)。

3. 核心: AWS APIは「場所」ではなく「署名」で守られている

ここが本稿でいちばん伝えたい一点である。

AWSのAPIは、リクエストが「どこから来たか」ではなく「誰が署名したか」で守られている。

すべてのAWS API呼び出しには、IAMの認証情報による署名(SigV4)が付く。 APIエンドポイントは署名を検証し、IAMポリシーで認可を判定する。この仕組みに、呼び出し元の場所は関係がない。

呼び出しの状況
結果
インターネットの自宅回線から、正しい認証情報でS3を操作
成功する
VPCのプライベートサブネット内のEC2から、IAM権限なしでS3を操作
拒否される

つまり——

  • プライベートネットワークの内側にいることは、AWS APIに対して何の権限も与えない
  • インターネット側にいることは、AWS APIに対して何の減点にもならない

オンプレの「境界の内側=信頼」という等式は、AWS APIのレイヤーには存在しない。 APIの安全性を決めているのは、IAMポリシーの設計品質(誰に・どの操作を・どのリソースへ許すか)であり、 ネットワーク構成ではない。プライベートサブネットに置いたことを理由にIAMを緩めるのは、 守られていない場所を守られていると誤認する、最も危険なパターンである。

4. ではプライベートネットワークは何のためにあるのか

プライベートネットワークが無意味だという話ではない。守る対象が違うという話である。

S3操作やインスタンス起動などのAWS APIはIAMポリシーで守るAPIレイヤーにあり、EC2のポートやRDSの接続口、アプリ同士の内部通信はSecurity Groupとプライベート配置で守るネットワークレイヤーにあることを示す図
守りたいもの
有効な手段
プライベート配置の意味
AWS APIの操作(S3読み書き、リソース作成…)
IAMポリシー、(必要なら)エンドポイントポリシー
本質的な防御ではない
VPC内リソースへのネットワーク到達(DBの接続口、管理ポート…)
Security Group、プライベートサブネット配置
有効。これが本来の役割
通信経路の要件(閉域要件、監査要件…)
VPCエンドポイント、専用線・VPN
経路の統制として有効
  • データベースやアプリの内部通信のように、ポートへのネットワーク到達そのものを制限したいものには、プライベート配置とSecurity Groupが効く。ここはオンプレの直感がそのまま活きる領域である
  • VPCエンドポイントは「S3への通信をインターネットに出さず、AWS網内で完結させる」という経路の選択であり、それ自体がAPIの認可を強化するわけではない。「閉域経路でなければならない」という要件があるときに選ぶ手段で、全構成に必須の安全装置ではない
  • 閉域化にはNATやエンドポイントの構築・運用コストが伴う。要件のない閉域はコストだけを生む

5. 判断の整理: 守りたいものからレイヤーを選ぶ

設計の順序を「まずプライベートに閉じる」から始めるのではなく、「何を守るか」から始める。

問い
Yesなら
守りたいのはAWS APIの操作か?
IAMポリシーを設計する。ネットワークをどれだけ閉じてもここの代わりにはならない
守りたいのは特定ポートへの到達か?
Security Groupで接続元を絞る。必要ならプライベートサブネットへ
「経路をAWS網内に閉じよ」という明文の要件があるか?
VPCエンドポイント等を追加する。要件がないなら、その運用コストは他に回す

この順序で考えると、「全部プライベートに置く」という一律の方針は、 第一の問い(API操作の防御)に対して何も答えていないことが分かる。

6. まとめ

オンプレの直感
AWSでの実像
ネットワークは内と外の2つ
一般インターネット / AWSグローバルネットワーク / VPCの3つ
主要なシステムは内側に置く
多くのAWSサービスはそもそもVPCの外(AWS網)に住んでいる
境界の内側=信頼できる
AWS APIは場所を見ない。署名とIAMポリシーだけを見る
閉じるほど安全
閉域は「経路の要件」に応える手段。APIの防御はIAMの設計品質で決まる

プライベートネットワークは、選択肢の1つであって既定の正解ではない。 API認証とネットワーク制限は別のレイヤーである——この一点を押さえるだけで、 過剰な閉域構成と誤った安心感の両方から距離を取り、守るべきものに設計の力を集中できるようになる。