はじめに
去年末に追加されたVPCブロックパブリックアクセス (BPA) について、少し調べてみた記事です。
私の調べた範囲では初期状態で無効化されている機能ですが、何かしらの理由で有効化されていることを知らずにいると、苦労するかもなので共有です!
VPCブロックパブリックアクセス (BPA)とは?
公式の説明を引用すると以下のとおりです。
VPC ブロックパブリックアクセス (BPA) は、AWS アカウント全体で VPC リソースに対するパブリックインターネットアクセスを厳然と防止できるようにする一元的なセキュリティ機能です。これにより、特定の例外や監査機能については柔軟に対応しながら、セキュリティ要件を確実に遵守できます。
この機能はネットワークACLや、セキュリティグループ・ルートテーブル等、ネットワークを構成する各種設定よりも優先されます。
例えば、セキュリティグループで443ポートを許可していても、BPAが有効だとブロックされてしまいます。
この挙動は一元的なセキュリティ機能として正しいと思うのですが、厄介なのはマネージメントコンソール上で、BPAが有効になっている事に気付きにくい事です。
以下のように、VPC、サブネットの一覧画面等で確認はできるのですが、ネットワークACLの設定画面等、実際に設定を行う画面には特に表記がありません。
IaCツールを使って構築していると尚更気づけません。
動作確認してみる!
機能の存在に気付けば対処は簡単なのですが、少し挙動を調べてみます。
ブロックされていることに気づくのはVPCフローログを使うのが分かりやすいのですが、
今回はログフォーマットを少し変更し、reject-reasonを付与した状態で確認してみます。
双方向ブロック
BPAにおけるブロック方法は双方向、Ingress-onlyの2種類あるのですが、まずは双方向側を試してみます。
設定方法がまた分かりづらく、VPCの一番下にある設定から設定可能です。
パブリックアクセス設定を編集から編集します。
ここで、双方向を選択すれば完了です。(反映に数分かかります)
反映できたら、適当なEC2を起動するなどして動作確認します。
その後ログを見てみると、全ての通信がREJECTされ、行の末尾にBPAと記載されていました。
この例だと、123Portを使った時刻調整がブロックされています。
8 853835738220 eni-0ce367e61a257a99c 10.0.7.252 15.152.226.72 58453 123 17 1 - 1760901424 1760901452 REJECT OK BPA
インバウンドのみ(Ingress-only)遮断
次にIngress-onlyに設定を変更してみます。
EC2(10.0.7.252)からのアウトバンド通信が一部許可されるようになりました。
なお、HTTPSポートのアウトバンド通信なので、SSM関連かな?と思ったのですが、セッションマネージャーを確認しても接続できません。
インバウンド通信を利用しない、セッションマネージャーは利用できるはずですが、
少し調べみると、以下の記載があり、NATゲートウェイを経由しないアウトバンド通信はブロックされるみたいですね。
インバウンド専用ブロックでは、インバウンドのインターネットトラフィックは確実にブロックされ、VPCからのアウトバウンドトラフィックはNATゲートウェイおよびEIGWからのみ許可されます。
では、なぜ先ほどのキャプチャでは一部成功しているのでしょうか?
直接の記載はないものの、一部のサービスはブロックの除外になるみたいな記載もあるので、それに該当しているのかもです。
AWS Client VPN and AWS Site-to-Site VPN are considered secure communication. They are excluded from Amazon VPC Block Public Access.
なお、NAT Gatewayを経由すると、セッションマネージャーも利用できました。
まとめると、Ingress-onlyは以下のような挙動です。
- インバウンド:全てブロック
- アウトバウンド:NAT Gateway/EIGW経由のみ許可
- アウトバウンド:IGW直接は不可
- 例外:VPN、一部AWSサービスエンドポイント?
例外設定
なお、BPAには除外設定が可能です。
除外設定はVPC、サブネット単位で指定可能ですが、特定のサブネットのみ許可する場合は、VPC・サブネット共に必要です。
まとめ
今回はVPCブロックパブリックアクセスを使ってみました。
`Ingress-only'と言いつつ、アウトバンド通信がブロックされたり、一部ブロックの例外があったりするので、つまづきポイントがいくつかありそうでした!
誰かのお役に立つと幸いですー








