#はじめに
re:invent2021にて「意図しないネットワークアクセスを簡単に特定できる Network Access Analyzer」が発表されたのでさわりだけ触れてみる。
#目次
- Network Access Analyzerとは
- 事前準備したリソースの構成図
- 実際に使用してみる
- 意図通りの構成の場合
- 意図通りではないの構成の場合
- 除外設定を入れてみる
- まとめ
#Network Access Analyzerとは
AWS上のリソースへの意図しないネットワークアクセスを識別する機能です。Network Access Analyzerを使用して、ネットワークアクセス要件を指定し、指定した要件を満たさない可能性のあるネットワークパスを特定できます。
IGWやエンドポイント、NatGatewayなどのインバウンドやアウトバウンドを対象にし分析できます。
つまり意図したネットワーク構成ができているかを確認できるサービスになります。
##事前準備したリソースの構成図
今回分析するリソース群として以下構成図の内容を準備しました。
分析結果を出すため、意図しないネットワークがあるリソースとないリソースを作成しました。(一つはWeb用のサブネットをパブリックサブネットにしています。)
※緑のサブネットがパブリック、青のサブネットがプライベート
##実際に使用してみる
今回はIGWへのアウトバウンドのみを検証してみます。
###意図通りの構成の場合
デフォルトでAWSから用意されているスコープがありますが、
今回Network Access Scopes作成からしていきます。
・Network Access Scopesの作成
Network Access Scope を作成をクリック
5つのテンプレートと独自で作成できます。
今回検証するのはIGWからのアウトバウンド通信なので「インターネットゲートウェイへのアクセスを識別」を選択
対象がEC2インスタンスのみなので、
一致条件を送信元EC2インスタンス、送信先IGWで設定します。
すべてのインスタンス調べたいので除外設定は入れません。
数分経つと分析結果が表示されます。
このようにパブリックサブネットにあるインスタンスのENIのみ通信できていることを確認できます。
この結果から意図しないネットワークがないことが確認できました。
###意図通りではないの構成の場合
では次に意図通りではないを試したいと思います。
ルートテーブルを編集しappサブネットをパブリックにし、
先ほど作成したNetwork Access Scopesを使い分析します。
結果、ルートテーブルを編集したサブネットにあるインスタンスが分析結果に表示されました。
本来パブリックと想定しないインスタンスが表示されているので特定できました。
###除外設定を入れてみる
アウトバウンドできるパブリックサブネットにあるインスタンスは分析結果に表示されなくていいので除外設定を入れてみます。
先ほど作成したもの選択し、「アクション」→「複製と変更」を押します。
除外設定を追加します。
パブリックサブネットからのアウトバウンドは分析結果に含めたくないので、送信元に「リソースID」から「サブネット」、「パブリックサブネットのID」を選択し送信先はIGWを設定します。
その結果、パブリックインスタンスは排除され意図しないインスタンスのENIのみ分析結果に表示されました。
###おまけ
意図通りの構成で除外設定を入れて分析してみたところ何も表示されませんでした。
##まとめ
もう少しネットワークが複雑な構成の場合有効だなと感じました。
##参考
https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-vaa.html
https://aws.amazon.com/jp/blogs/news/new-amazon-vpc-network-access-analyzer/