本記事は
ネットワークウィーク
2日目の記事です。
💻
1日目
▶▶ 本記事 ▶▶
3日目
🌐

はじめに
こんにちは。大林です。
2024年11月19日に発表されたVPC Block Public Access(VPC BPA)はAmazon VPC(VPC)に関連したネットワーク制御を簡単に実装できる便利なサービスです。
ただ、設定方法を間違えると、VPCからインターネット通信ができずシステムが正常に動かなくなる可能性があります。
本ブログでは、VPC BPAの活用方法と実装するうえで気をつけたいポイントを紹介します。
VPC BPAとは
VPC BPAはVPCレベルでの誤った公開設定を未然に防ぐためのガードレールです。
この機能は、リージョン単位で有効化でき、インターネットゲートウェイ経由の通信について、「双方向(Bidirectional)」または「受信のみ(Ingress-only)」をブロックすることができます。
GovCloud、中国リージョンを含めた全ての商用リージョンで利用できます。
| ブロック方向 | 概要説明 |
|---|---|
| 双方向(Bidirectional) | インターネットゲートウェイ(IGW)経由での送信(Egress)および受信(Ingress)通信の両方をブロックする。 VPC内のリソースが外部インターネットへ通信できなくなるだけでなく、外部からVPC内への接続も拒否される。 最も厳格な制御モードであり、完全にプライベートなVPCを構築したい場合に適している。 |
| 受信のみ(Ingress-only) | 外部からVPCへの受信のみ(Ingress-only)をブロックする。 VPC内のリソースがインターネットに対してリクエストを送信することは可能だが、インターネット側からのアクセスは拒否される。 NAT Gateway経由でのアウトバウンド通信を許可しつつ、外部からの侵入を防ぎたいケースに適している。 |
また、特定のVPCやサブネットを除外対象として設定することも可能です。これにより、内部システムの通信要件に応じて柔軟に適用範囲を調整できます。

VPC BPAの実装方法
マネジメントコンソールから有効化する

VPCのマネジメントコンソールにアクセスし、VPCの設定ページからVPC BPAの設定変更ができます。
設定の際には、双方向(Bidirectional)または受信のみ(Ingress-only)のどちらかを選択する必要があります。
宣言型ポリシーを使って有効化する

次に宣言型ポリシーを使って有効化する方法を紹介します。
宣言型ポリシーは、AWS Organizationsを利用して組織全体に統一されたセキュリティ設定や構成ルールを適用できる仕組みです。宣言型ポリシーを使うことで必要なアカウントにVPC BPAを一括で設定することができます。
以下のポリシーは、受信のみ(Ingress-only)のみブロックし、除外設定を有効化する設定です。
{
"ec2_attributes": {
"vpc_block_public_access": {
"internet_gateway_block": {
"mode": {
"@@assign": "block_ingress"
},
"exclusions_allowed": {
"@@assign": "enabled"
}
}
}
}
}
宣言型ポリシー、SCP、RCPの違いは以下のブログで執筆しました。
VPC BPAの運用について思うこと
VPC BPAは、意図しないインターネット公開を防ぐことができる非常に有用な機能だと感じました。特に、設定自体がシンプルで導入しやすい点がかなり魅力的です。
たとえば、厳格な通信要件が求められるシステムや、社内ハンズオンなどで「誤ってインターネット接続させたくない環境」を構築したい場合に効果的だと思います。
一方で、実際に試してみると、宣言型ポリシーでVPC BPAを有効化する運用は慎重に検討すべきだと感じました。宣言型ポリシーは確かに強力ですが、アカウント単位で適用・管理する必要があるため、組織の規模が大きくなるほど運用負荷が増していきます。
特に、通信要件が異なる多様なシステムを運用している場合には、「一律でブロックする」設定が業務影響を及ぼす可能性があります。
そのため、私としては、VPC BPAはマネジメントアカウントから一括設定するよりも、メンバーアカウントごとに必要な通信要件を踏まえて個別に設定する運用が現実的だと考えています。
各システムの性質に合わせてVPC BPAのブロック方向や除外設定を柔軟に選択することで、安全性と可用性のバランスを取ることができます。