COLUMN

Amazon VPC ブロックパブリックアクセス機能のつまずきどころを実践交えて理解する

こんにちは、白鳥です。

2024年11月に開始した、Amazon VPC ブロックパブリックアクセス機能を使う機会があり、その際にいろいろと試してみましたので、つまずきどころも踏まえて少し解説したいと思います。

想定する読者

  • VPCのネットワークレイヤーにおける情報セキュリティをより強固にしたい方
  • 複数アカウントのネットワークにおける通信制御を行いたい方。

クラウドに関するお役立ち情報をメールマガジンにて発信していますので、ぜひこちらからご登録ください!

VPC ブロックパブリックアクセス機能とは?

VPC ブロックパブリックアクセス機能とは、VPCのインターネットアクセスを一元的に防止できる機能となります。2024年11月にリリースされ、これまでVPCごとにインターネットからのアクセスや、インターネットへのアクセスの許可・不許可を行っていたものが本機能を使うことにより、デフォルトでの動作を規定できるようになります。

VPC ブロックパブリックアクセス機能のユースケース

VPC ブロックパブリックアクセス機能のユースケースとしては、以下のようなものがあります。

  • ネットワークセキュリティの観点で、意図しないインターネットへのアクセスの防止
  • ガバナンスの観点で、インターネットへのアクセスまたはインターネットからのアクセスを許可するVPCを集約したい

クラウドに関するお役立ち情報をメールマガジンにて発信していますので、ぜひこちらからご登録ください!

VPC ブロックパブリックアクセス機能の基本的な仕様

次に、VPC ブロックパブリックアクセス機能の基本的な仕様を解説します。

  • VPC ブロックパブリックアクセス機能の単位
    リージョンごとに設定します。有効化すると、そのリージョンのすべてのVPCに対してVPC ブロックパブリックアクセス機能が有効化されます。
  • VPC ブロックパブリックアクセス機能のモード

    • [双方向] 当該のリージョンのインターネットゲートウェイとEgress OnlyインターネットゲートウェイとVPCの間のトラフィックがすべて拒否されます。
    • [Ingress-Only] 当該のリージョンのインターネットからVPCへの通信が拒否されます。NAT ゲートウェイとEgress Onlyインターネットゲートウェイを経由したVPCからインターネットへの通信(と、戻りの通信)は許可されます。
  • 除外機能

    指定したVPCまたは、サブネットに対してVPC ブロックパブリックアクセス機能を除外することもできます。

    除外は、次の二つがあります。

    • [双方向] 除外されたVPCまたはサブネットと、インターネットへの通信が許可されます。
    • [Egress-Only] VPC ブロックパブリックアクセス機能が[双方向]モードのみ使用可能です。除外されたVPCまたはサブネットからインターネットへの通信が許可されます。インターネットから除外されたVPCまたはサブネットへの通信は拒否されます。
  • 大規模な適用について

    AWS Organizationsを使いマルチアカウント環境で利用している場合は、宣言型ポリシーで一括設定が可能です。デフォルトで有効化し、特定のアカウントでのみ除外を行えるようにすることで、一貫した設定ができるようになります。この場合は、除外したい特定のアカウント以外の利用者に対しては、IAMポリシーを利用してVPC ブロックパブリックアクセスの設定を変更できないようにする工夫も必要です。

    宣言型ポリシーの記載例は本記事では触れませんが、下記のドキュメントが参考となります。

    宣言ポリシーの構文と例 - AWS Organizations

  • 料金面
    VPC ブロックパブリックアクセス機能を利用するための追加料金はかかりません。通常のVPC利用に関わる料金で利用することができます。

機能説明の文章だけではイメージが湧きづらいので、実際にVPC ブロックパブリックアクセス機能を入れてみて、理解したいと思います。

クラウドに関するお役立ち情報をメールマガジンにて発信していますので、ぜひこちらからご登録ください!

VPC ブロックパブリックアクセス機能の実践

では、実際にVPC ブロックパブリックアクセス機能を使ってみたいと思います。

基本構成

今回は下記のような構成で実施しました。

リージョン:ソウルリージョン(ap-northeast-2)

※執筆日時点で東京リージョンでも利用できますが、当社の検証環境で東京リージョンを大量に利用しているため他の検証に影響を及ぼさないよう、ソウルリージョンを利用しました。

VPC(10.0.0.0/16)

パブリックサブネットを2つ(ap-northeast-2a/2b)、ap-northeast-2aのパブリックサブネットにはNATゲートウェイを設置

プライベートサブネットを1つ(ap-norheast-2a)

各サブネットにEC2インスタンスを設置し、パブリックサブネットはNGINXを有効化したWebサーバーとして機能するようにします(Test Server 1/Test Server 2)。セキュリティグループにはWebアクセスのためHTTPを許可するほか、設定のためEC2 Instance connect のプレフィックスリストを許可します。VPC ブロックパブリックアクセス機能が無効な状態であれば、Webサーバーとして外部から閲覧できるように、パブリックIPv4アドレスを付与します。プライベートサブネットのEC2(Test Server 3)は疎通のみ行えるようにします。

構成図にすると、このような形になります。

確認方法:AWSの公式のネットワーク診断ツールである、Network Access Analyzerと、Reachability Analyzerを使用して、アクセス可能なインターフェースとVPCからの到達可能性を確認します。Network Access Analyzerではインターネットへ接続可能なインターフェースの有無を調査、Reachability Analyzerは、各インスタンスからインターネットゲートウェイへの到達可能性を調査します。

各ツールの使い方は本記事では説明しませんので、公式ドキュメントを参考にしてください。

参考:

What is Network Access Analyzer? - Amazon Virtual Private Cloud

What is Reachability Analyzer? - Amazon Virtual Private Cloud

Step 0. VPC ブロックパブリックアクセス機能が無効な状態

それでは、ここからVPC ブロックパブリックアクセス機能の状態に応じて、期待する動作と動作結果を書いていきます。

期待する動作
  • Test Server 1, Test Server 2に外部からアクセスできること
  • Network Analyzerが3ルートを検出できること
  • Reachability Analyzerで3つとも到達可能になること

実行手順

VPC ブロックパブリックアクセスのページに行き、VPC ブロックパブリックアクセス機能のステータスがオフであることを確かめます。

実行結果

Network Access Analyzerはインターフェースを検出して、インターネットへの接続性があることを確認します。

Reachability Analyzerはすべてのインスタンスが到達可能であることを確認します。

Step 1. VPC ブロックパブリックアクセス機能で双方向のブロックを有効化

期待する動作
  • Test Server 1, Test Server 2に外部からはアクセスできないこと
  • Network Analyzerはインターフェースを検出しないこと
  • Reachability Analyzerはすべて到達不可能になること

実行手順

「VPC ブロックパブリックアクセスの編集」を選択し[双方向]を選択します。数分~5分程度たつと、ステータスが「オン」になり、インターネットゲートウェイのブロック方向が「双方向」になれば完了です。

実行結果

Network Access Analyzerは「検出されませんでした」となれば想定通りの動作となります。インターネットへの接続性がなく、この状態でWebサーバーと接続すると5xxエラーを返す状態となります。

Reachability Analyzerはすべて「到達不可能」となります。

この状態で、Reachability Analyzerはどのリソースが原因で到達不可能になっているか確認できます。すると、VPC ブロックパブリックアクセス機能によって正しくブロックされていることがわかります。

Step 2. VPC ブロックパブリックアクセス機能でイングレス方向のブロックを有効化

期待する動作
  • Test Server 1, Test Server 2に外部からはアクセスできないこと
  • Network AnalyzerがTest Server 3のインターフェースのみ検出されること
  • Reachability AnalyzerがTest Server 3のみ到達可能となり、残りは到達不可能となること

実行手順

「VPC ブロックパブリックアクセスの編集」を選択し[Ingress-Only]を選択します。数分~5分程度たつと、ステータスが「オン」になり、インターネットゲートウェイのブロック方向が「Ingress-Only」になれば完了です。

実行結果

Network Access Analyzerは「検出した結果」となれば想定通りの動作です。

Test Server 3のみ検出しているかを確認するため、Network Access Analyzerのページの下部のほうに進みます。

プライベートサブネットにあるTest Server 3のみを検出しています。

次に、Reachability Analyzerの調査結果を確認します。Test Server 3のみ到達可能になっていれば意図通りの動作となっています。

Test Server 1が到達不可能になった要因も確認します。先ほどと同様、VPC ブロックパブリックアクセス機能によって正しくブロックされていることがわかります。

Step 3. VPC ブロックパブリックアクセス機能でイングレス方向のブロックを有効化した状態で、パブリックサブネットのうち一つを双方向除外設定

期待する動作
  • Test Server 1へは外部から接続可能、 Test Server 2は外部から接続不可となること
  • Network AnalyzerがTest Server 1およびTest Server 3を検出すること
  • Reachability AnalyzerはTest Server 1, Test Server 3のみ到達可能になること

実行手順

VPC ブロックパブリックアクセスのページに行き、右下の「除外を作成」を選択します。次のページで除外する方向を「双方向」、除外するサブネットを選択し「除外を作成」をクリックします。数分~5分程度たつと、ステータスが「オン」になり、インターネットゲートウェイのブロック方向が「Ingress-Only」は変わらず、下の除外にある、除外の状態が「アクティブ」になれば完了です。

実行結果

Network Access Analyzerで「検出した結果」となれば想定通りの動作です。

先ほどと同様、詳細を確認するため、Network Access Analyzerのページの下部のほうに進みます。

すると、Test Server 1とTest Server 3のみ検出している状態となります。Test Server 1については、Webのほか、EC2 Instance ConnectによるSSH接続を有効化していたため、SSHによる経路を検出しています。

Reachability AnalyzerはTest Server 1およびTest Server 3が到達可能になっていれば想定通りの動作となります。

クラウドに関するお役立ち情報をメールマガジンにて発信していますので、ぜひこちらからご登録ください!

VPC ブロックパブリックアクセス機能の利用に向けて注意すべき箇所

VPC ブロックパブリックアクセスを有効化すると5分程度でリージョン全体に反映されるため、万が一本番環境でインターネットへの接続があるVPCがある場合、ワークロードの障害を起こす可能性があります。したがって、VPC ブロックパブリックアクセスの適用にあたっては、下記の順序で行うことをおすすめします。

① インターネットへの接続があるVPCやサブネットの調査

先ほどのNetwork Access AnalyzerやVPC Flow logsを利用して、インターネットへの接続があるVPCやサブネットを調査し、インターネット接続の用途を確認します。

② NATゲートウェイおよびEgress Onlyインターネットゲートウェイの集約検討

NATゲートウェイまたはEgress Onlyインターネットゲートウェイを使ってインターネットへの接続を行っているVPCについては、中央VPCへの集約を行い、Transit Gatewayなどを使用して中央VPCへの接続を行います。

③ VPC ブロックパブリックアクセス機能の除外設定

どうしてもそのVPCからのインターネットアクセスが必要なVPC(Webサーバーなどがある)および、ゲートウェイVPCについては、先に除外設定を行います。

④ VPC ブロックパブリックアクセス機能の有効化

このほか、ネットワーク管理者の選定やVPC ブロックパブリックアクセス機能の設定変更や除外設定を行った(行おうとした)記録のCloudTrailへの保存や、Security Hubのルール有効化、アラート通知など一般的な情報セキュリティ・ガバナンス対応を行う必要があります。

まとめ

VPCのネットワーク要件が適切に設定されていればVPCパブリックアクセス機能自体はなくても要件を満たすことができますが、万が一の設定不備や漏れといった要素、基本的なネットワーク要件のガバナンスを保つこと、追加料金なしで利用できることから新規の場合は是非とも有効化を検討されることをおすすめいたします。今回利用してみて、簡単な設定で非常に強力なガバナンスを発揮できるように感じました。

NTT東日本では、AWSの構築保守だけではなく、ネットワーク設計なども含めたエンドツーエンドでのソリューション提供をおこなっております。

経験値豊かなメンバーがご担当させていただきますので、是非お気軽にお問い合わせください!

ページ上部へ戻る

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。