概要
インターネットゲートウェイ(IGW)でインターネットにつながっている VPC で、「外へ出ていく通信は残したまま、インターネットから入ってくる通信だけを止めたい」という場面があります。セキュリティグループやネットワーク ACL をリソースやサブネットごとに書き換える方法もありますが、VPC やサブネットが増えるほど漏れが出やすく、運用の手間も増えます。
VPC ブロックパブリックアクセス(VPC BPA) は、リージョン内のアカウントの VPC へのインターネットからのアクセスを、ほかの設定より優先して一括で止める機能です。モードを イングレスのみ にすると、インターネットからの受信をすべて止めつつ、NAT ゲートウェイや Egress-Only インターネットゲートウェイを通る送信は許可します。止めたくない VPC やサブネットは 除外 として個別に外せます。
この記事では、VPC BPA の 2 つのモードと除外の仕組み、ほかの方法(セキュリティグループ・ネットワーク ACL・Egress-Only インターネットゲートウェイ)との違いを整理します。実践では、パブリックサブネットの Web サーバーにブラウザからアクセスできることを確かめてから BPA をイングレスのみでオンにし、受信が止まること、Egress-Only インターネットゲートウェイ経由の送信は通ること、除外でパブリックサブネットだけを元に戻せることを確認します。

クラウドおさる猿山の門を一つずつ見張るのではなく、山の入口ごと「外からは入れぬ」と札を掛けるのが BPA でござるな。中の猿が外へ買い出しに行けるかどうかも、あわせて確かめるでござるよ。
この記事のメリット
- VPC BPA の双方向モードとイングレスのみモードで、何が止まり何が通るかを説明できるようになる
- 除外(双方向 / エグレスのみ)の使いどころが分かる
- セキュリティグループ・ネットワーク ACL・Egress-Only インターネットゲートウェイとの違いを整理し、インバウンドを一括で止める手段を選べるようになる
- BPA をオンにしたときの影響を、実際の通信で確かめられるようになる
執筆者とキャラクター紹介
執筆者:土肥(とひ)
株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。


クラウドおさる



はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。



基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。



猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。
技術解説
VPC ブロックパブリックアクセスとは
VPC BPA は、AWS アカウントの VPC リソースへのパブリックなインターネットアクセスを一元的に止めるための機能です。設定は リージョン単位でアカウント全体 に効き、そのリージョンのすべての VPC とサブネットが対象になります(除外したものを除く)。ルートテーブルやセキュリティグループに何が書いてあっても、BPA のブロックが優先されます。
BPA には 2 つのモードがあります。
| モード | 止まるもの | 通るもの |
|---|---|---|
| 双方向 | IGW と Egress-Only インターネットゲートウェイを通るすべての通信(受信も送信も) | 除外した VPC・サブネットの通信 |
| イングレスのみ | VPC へのインターネットからの通信(IGW 経由の受信) | NAT ゲートウェイと Egress-Only インターネットゲートウェイを通る通信(どちらも送信の確立しか許さないため) |
イングレスのみモードで通るのは「NAT ゲートウェイと Egress-Only インターネットゲートウェイを通る通信」です。パブリック IP を持ったインスタンスが IGW から直接インターネットへ出ていく通信は、イングレスのみモードでも止まります。外へ出る通信を残したいリソースは、NAT ゲートウェイ(IPv4)か Egress-Only インターネットゲートウェイ(IPv6)を経由させる必要があります。



「イングレスのみ」は「パブリックサブネットの猿は外へ出放題」という意味ではないのでござる。IGW から直接出る道は閉じられ、外出は NAT や Egress-Only の通用口を通る者だけでござるぞ。
BPA の影響を受けるのは、IGW を使うインターネット向けの経路です。インターネット向けの ALB・NLB、NAT ゲートウェイ(インターネット接続に IGW を使うため)なども対象になります。一方で、Site-to-Site VPN、Client VPN、トランジットゲートウェイなどのプライベート接続の通信は BPA の影響を受けません。
除外
止めたくない VPC やサブネットは、除外 を作って BPA の対象から外せます。除外は 1 つの VPC または 1 つのサブネットに対して作り、VPC を除外するとその中のすべてのサブネットに効きます。
| 除外のモード | 動き |
|---|---|
| 双方向 | 除外した VPC・サブネットとインターネットの間の通信をすべて許可する |
| エグレスのみ | 除外した VPC・サブネットからの送信を許可し、受信は止める。アカウントの BPA が双方向モードのときにだけ意味を持つ |
除外はアカウントで BPA をオンにする前から作っておけます。オンにした瞬間に止まっては困るワークロードは、先に除外しておくと中断を避けられます。除外はアカウントあたり 50 個まで作成できます(引き上げの申請が可能)。


ほかの方法との違い
「インターネットからの受信だけを止めたい」ときに思いつく方法を並べると、次のようになります。
| 方法 | インバウンドを一括で止められるか |
|---|---|
| VPC BPA(イングレスのみ) | 止められる。リージョン内のすべての VPC に、ほかの設定より優先して効く。送信は NAT ゲートウェイ / Egress-Only インターネットゲートウェイ経由で残る |
| デフォルトのセキュリティグループのルールを消す | 止まらない。効くのはそのセキュリティグループを関連付けたリソースだけで、別のセキュリティグループを使うリソースには関係しない |
| セキュリティグループに拒否ルールを書く | 書けない。セキュリティグループに指定できるのは許可ルールだけ |
| ネットワーク ACL で受信を拒否する | サブネットごとに設定が要る。ステートレスなので、送信の戻りの通信まで考えてルールを書く必要がある |
| Egress-Only インターネットゲートウェイに切り替える | IPv6 専用。IPv4 の通信には使えず、ルートテーブルの変更も要る |
BPA はアカウント全体に効く強い設定です。本番のアカウントでオンにする前に、Network Access Analyzer の「Assess impact of VPC Block Public Access」のスコープで、IGW を通る経路を持つリソースを洗い出しておくことが推奨されています。オンにした後は、VPC フローログのカスタム形式に reject-reason フィールドを入れると、BPA で拒否された通信に BPA と記録されます。Reachability Analyzer でも、BPA が原因で到達できない経路を確認できます。



セキュリティグループは「誰を通すか」を書く許可の札、BPA は山全体の門番でござる。一つずつ札を書き換えるより、門番に「外からは入れるな」と伝えるほうが、漏れなく早いのでござるな。
実践
パブリックサブネットに Web サーバー soa-bpa-web、プライベートサブネットにアプリサーバー soa-bpa-app がある VPC で、BPA をイングレスのみモードでオンにします。soa-bpa-web への受信が止まり、soa-bpa-web から IGW 経由で外へ出る通信も止まる一方、soa-bpa-app から Egress-Only インターネットゲートウェイ経由で外へ出る IPv6 の通信は通ることを確かめます。最後に、パブリックサブネットだけを除外して、Web サーバーへのアクセスを元に戻します。
前提条件
- リージョン:
ap-northeast-3(大阪) - VPC BPA はリージョン内のアカウント全体に効きます。オンにすると、そのリージョンのほかの VPC の通信も止まります。この実践は、ほかのワークロードが動いていないリージョンで行ってください(本記事では大阪を使います)
- 以下のリソースが作成済みであること
まだ用意していない場合は、「作り方の参考」の記事の手順で作れます。リソース名は、この記事の名前に読み替えてください。
| リソース種別 | リソース名 | 内容 | 作り方の参考 |
|---|---|---|---|
| VPC | soa-bpa-vpc | 10.0.0.0/16。IPv6 CIDR ブロック(Amazon 提供)を関連付け済み | Amazon VPC で仮想ネットワークを構築しサブネットを設定する |
| サブネット | soa-bpa-public | 10.0.1.0/24。ルートテーブルで 0.0.0.0/0 を soa-bpa-igw に向ける | 同上 |
| サブネット | soa-bpa-private | 10.0.2.0/24 と IPv6 の /64。ルートテーブルで ::/0 を soa-bpa-eigw に向ける | 同上 |
| インターネットゲートウェイ | soa-bpa-igw | soa-bpa-vpc にアタッチ | 同上 |
| Egress-Only インターネットゲートウェイ | soa-bpa-eigw | soa-bpa-vpc 用 | ─ |
| EC2 インスタンス | soa-bpa-web | soa-bpa-public に配置。パブリック IPv4 アドレスあり。ポート 80 で簡単な Web ページを返す。セキュリティグループで HTTP(80)をインターネットから許可 | Amazon EC2 でインスタンスを起動しSSH接続する |
| EC2 インスタンス | soa-bpa-app | soa-bpa-private に配置。パブリック IPv4 アドレスなし、IPv6 アドレスあり | 同上 |
| EC2 Instance Connect エンドポイント | soa-bpa-eice | soa-bpa-private に配置。2 台のインスタンスにプライベート IP で SSH 接続するため | ─ |
※ soa-bpa-private には NAT ゲートウェイを置かず、IPv6 の送信だけを Egress-Only インターネットゲートウェイで外へ出します。
作成・変更するリソース一覧
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| VPC BPA の設定(大阪リージョン) | ─ | イングレスのみモードでオンにする |
| VPC BPA の除外 | (soa-bpa-public を対象) | パブリックサブネットだけを双方向で除外する |
手順 1: BPA をオンにする前の状態を確かめる
AWS マネジメントコンソールにログインし、右上のリージョンを アジアパシフィック (大阪) ap-northeast-3 に切り替えます。上部の検索バーに EC2 と入力し、「EC2」を選択します。
左側ナビゲーションの「インスタンス」→「インスタンス」を選択し、soa-bpa-web の「パブリック IPv4 アドレス」を控えます。
ブラウザの新しいタブで http://<soa-bpa-web のパブリック IPv4 アドレス> を開きます。soa-bpa-web と書かれたページが表示され、インターネットから Web サーバーに届いていることが分かります。


手順 2: BPA をイングレスのみモードでオンにする
上部の検索バーに VPC と入力し、「VPC」を選択します。左側ナビゲーションの「設定」を選択します。「VPC 暗号化コントロール」「パブリックアクセスをブロック」などのタブが並ぶので、「パブリックアクセスをブロック」タブを開きます。
「パブリックアクセス設定を編集」をクリックし、以下を設定します。
- 「[パブリックアクセスをブロック]をオンにする」にチェック
- ブロックの方向: 「Ingress-only」(コンソールでは英語のまま表示されます。イングレスのみモードのことです)
![パブリックアクセス設定の編集画面([パブリックアクセスをブロック]をオン・Ingress-only を選択)](https://cloud-shikaku-lab.com/wp-content/uploads/2026/10/shot_vpc-block-public-access-ingress-only_02.png)
![パブリックアクセス設定の編集画面([パブリックアクセスをブロック]をオン・Ingress-only を選択)](https://cloud-shikaku-lab.com/wp-content/uploads/2026/10/shot_vpc-block-public-access-ingress-only_02.png)
「変更を保存」をクリックします。設定の反映には 2 分ほどかかります。画面を更新して、ステータスが「オン」、方向が「Ingress-only」になったことを確認します。


手順 3: インターネットからの受信が止まったことを確かめる
手順 1 で開いたブラウザのタブを再読み込みします。今度はページが表示されず、しばらく待つとタイムアウトします。soa-bpa-web のセキュリティグループもルートテーブルも変えていませんが、BPA がそれより優先してインターネットからの受信を止めています。
手順 4: Egress-Only インターネットゲートウェイ経由の送信が通ることを確かめる
EC2 コンソールの「インスタンス」で soa-bpa-app を選択し、「接続」をクリックします。接続方法のタイルから「EC2 Instance Connect エンドポイント」(プライベートサブネットアクセス)を選び、エンドポイントに soa-bpa-eice が選ばれていることを確認して「接続」をクリックします。
同じタブがブラウザのターミナルに切り替わったら、次のコマンドで IPv6 のインターネット上のサイトへ ping を送ります。
ping -6 -c 3 www.amazon.com応答が 3 回返ってきます。soa-bpa-app からの送信は Egress-Only インターネットゲートウェイを通るため、イングレスのみモードでは止まりません。


手順 5: IGW 経由の送信は止まることを確かめる
同じ手順で soa-bpa-web に EC2 Instance Connect エンドポイント経由で接続し、次のコマンドを実行します。
ping -c 3 -W 2 www.amazon.com-W 2 は応答を待つ秒数です。付けなくても結果は同じですが、終わるまでに時間がかかります。
応答は返らず、3 packets transmitted, 0 received のように表示されます。soa-bpa-web はパブリックサブネットにあり、送信は IGW を直接通ります。イングレスのみモードで許可されるのは NAT ゲートウェイと Egress-Only インターネットゲートウェイを通る通信だけなので、IGW から直接出る送信も止まります。





手順 4 と 5 の違いは、通用口(Egress-Only)を通るか、正門(IGW)を直接通るかだけでござる。同じ VPC でも、経路しだいで外へ出られるかどうかが変わるのでござるな。
手順 6: パブリックサブネットだけを除外する
VPC コンソールの「設定」→「パブリックアクセスをブロック」タブに戻ります。「除外」の「除外を作成」をクリックし、以下を設定します。
- 許可の方向: 「双方向」(既定で選ばれています)
- 「利用可能なリソース」の表: VPC とサブネットが並ぶので、
soa-bpa-publicのチェックボックスを選択
「名前(オプション)」は空欄のままで構いません。


「除外を作成」をクリックします。除外の一覧で、作成した除外の「除外の状態」が「アクティブ」になるまで待ちます。「関連付けられたリソース」列には soa-bpa-public のサブネット ID が表示されます。


ブラウザで http://<soa-bpa-web のパブリック IPv4 アドレス> をもう一度開くと、ページが表示されるようになります。アカウントの BPA はオンのまま、除外したサブネットだけがインターネットとやり取りできる状態です。
まとめ
| やりたいこと | 使う設定 |
|---|---|
| リージョンのすべての VPC で、インターネットからの受信を一括で止め、送信は残す | BPA をイングレスのみモードでオン(送信は NAT ゲートウェイ / Egress-Only インターネットゲートウェイ経由) |
| 受信も送信も、インターネットとの通信をすべて止める | BPA を双方向モードでオン |
| 一部の VPC・サブネットだけはインターネットとやり取りさせる | 除外(双方向) |
| 双方向モードのまま、一部の VPC・サブネットだけ送信を許す | 除外(エグレスのみ) |
- VPC BPA はリージョン単位でアカウント全体に効き、ルートテーブルやセキュリティグループより優先される
- イングレスのみモードで通る送信は NAT ゲートウェイと Egress-Only インターネットゲートウェイ経由だけ。IGW から直接出る送信は止まる
- セキュリティグループには拒否ルールが書けず、デフォルトのセキュリティグループを変えても効くのは関連付けたリソースだけ
- Egress-Only インターネットゲートウェイは IPv6 専用で、IPv4 の受信を止める手段にはならない
- オンにする前は Network Access Analyzer で影響を確認し、オンにした後は VPC フローログの
reject-reasonや Reachability Analyzer で確かめる



「運用の手間を増やさずに、インターネットからの受信だけをまとめて止める」と聞いたら、門番の BPA のイングレスのみでござる。セキュリティグループや Egress-Only の通用口と取り違えぬよう、何が一括で効くのかを押さえておくでござるよ。
参照先
- VPC とサブネットへのパブリックアクセスをブロックする – Amazon Virtual Private Cloud
- VPC BPA の基本 – Amazon Virtual Private Cloud
- VPC BPA の影響を評価し、VPC BPA をモニタリングする – Amazon Virtual Private Cloud
- 高度な例 – Amazon Virtual Private Cloud
- Egress-Only インターネットゲートウェイを使用してアウトバウンド IPv6 トラフィックを有効にする – Amazon Virtual Private Cloud
- セキュリティグループを使用して AWS リソースへのトラフィックを制御する – Amazon Virtual Private Cloud
- VPC のデフォルトセキュリティグループ – Amazon Virtual Private Cloud
- ネットワークアクセスコントロールリストを使用して、サブネットのトラフィックを制御する – Amazon Virtual Private Cloud
- プライベート IP アドレスと EC2 Instance Connect Endpoint を使用した、インスタンスへの接続 – Amazon Elastic Compute Cloud















