Amazon Virtual Private Cloud (VPC) が、意図しないネットワークアクセスを簡単に特定できる Network Access Analyzer を発表

## はじめに

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/b95e05f1-fda8-f448-0a9e-e76f9ab116b8.png)

https://aws.amazon.com/jp/about-aws/whats-new/2021/12/amazon-vpc-network-access-analyzer/

> Amazon VPC Network Access Analyzerは、AWS上のリソースへの意図しないネットワークアクセスの特定に有効な新しい特徴があります。Network Access Analyzer を使用すると、 Virtual Private Cloud (VPC) リソースのネットワークアクセスが、セキュリティやコンプライアンスのガイドラインを満たしているかどうかを検証することができます。Network Access Analyzer を使用すると、クラウドのセキュリティ体制を評価し、改善点を特定することができます。さらに、Network Access Analyzer を使用することで、ネットワークが特定の規制要件を満たしていることを簡単に実証することができます。
> 
> AWS の責任共有モデルの一環として、ユーザーは、AWS 上のネットワークが、意図しないネットワークアクセスをブロックするための適切なコントロールで構築されていることを確認する必要があります。例えば、「データベースはインターネットからアクセスしてはならない」、「アプリケーションサーバは信頼できるオンプレミスのIPレンジにのみポート443でTCPトラフィックを送信できる」、「本番用VPCは開発用VPCからアクセスしてはならない 」などです。 Network Access Analyzerでは、そのような要件をシンプルかつ正確な仕様でキャプチャすることを許可しています。自動推論により、Network Access Analyzer は、定義した要件を満たしていない AWS 環境のネットワークパスを特定します。IPアドレス範囲、ポート範囲、トラフィックプロトコル、AWSリソースID、AWSリソースグループ、およびインターネットゲートウェイや NAT ゲートウェイなどのリソースタイプの条件から、ネットワークアクセス要件の送信元と宛先を特定できます。このようにして、ネットワークの構成方法に関係なく、AWS 環境全体のネットワークアクセスを簡単に管理することができます。
開始するには、AWS マネジメントコンソールにアクセスし、Network Access Analyzer で Amazon が作成したネットワークアクセススコープの1つを使用してネットワークを評価します。AWS CLI、AWS SDK、または AWS マネジメントコンソールを使用して、独自の Network Access Scopes を定義し、ネットワークを分析することもできます。
> 
> Amazon VPC Network Access Analyzer は、通常、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、アフリカ (ケープタウン)、アジアパシフィック (香港)、アジアパシフィック (ムンバイ)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、カナダ (中部)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、欧州 (ミラノ)、欧州 (パリ)、欧州 (ストックホルム)、南米 (サンパウロ)、および 中東 (バーレーン) の各 AWS リージョンでご利用いただけます。
> 
> 詳細はこちら、Network Access Analyzer の Amazon VPC ドキュメント とブログ記事をご覧ください。Network Access Analyzer の料金を表示するには、Amazon VPC 料金をご覧ください。

の記事確認です。

## 要するに

Network Access Analyzer を使用することで、意図しないネットワーク経路を抽出できるそうです。

例)
- 「データベースはインターネットからアクセスしてはならない」
- 「アプリケーションサーバは信頼できるオンプレミスのIPレンジにのみポート443でTCPトラフィックを送信できる」
- 「本番用VPCは開発用VPCからアクセスしてはならない 」など

## 料金は

https://aws.amazon.com/jp/vpc/pricing/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/4e0484a4-5d55-5d56-9e55-6694e69ee6ee.png)

評価1回 ENI 1つあたり `0.002 USD` とのことです。

## やってみる

VPCのところにあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/d75d5b88-5095-33c4-5f92-0555ca770c16.png)

開始すると......
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/b92eb0b2-e122-5806-6913-57da4d64c4d9.png)
AWS が事前に用意してくれた経路抽出設定が4つ確認できます。

1. インターネットゲートウェイ、ピアリング接続、VPCサービスエンドポイント、VPN、トランジットゲートウェイからVPCへの入力パスを特定
1. インターネットゲートウェイからすべてのネットワークインターフェイスへの入力パスを特定
1. すべてのVPCからインターネットゲートウェイ、ピアリング接続、VPCエンドポイント、VPN、トランジットゲートウェイへの出力パスを特定
1. すべてのネットワークインターフェイスからインターネットゲートウェイへの出力パスを特定

`インターネットゲートウェイからすべてのネットワークインターフェイスへの入力パスを特定` をやってみましょう。

分析を押すと......
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/de5ba8c1-3bd2-22d8-800a-cd71356b21c2.png)

分析が開始し...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/09efee30-b7ce-9093-c6ee-1994bdeb033f.png)

リージョン内に存在するインターネットゲートウェイからネットワークインターフェイスへの経路がリストされます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/eff03f74-30a7-fe10-a76f-14c2e3c305d1.png)

結果の経路を選択すると...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/eab9572b-4f02-eb96-ebc6-869b628c3a0f.png)

経由されているリソース含めて確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/30766d71-17ec-b97e-ccfd-7b4ffbe1e798.png)

************************************************************

自分で経路抽出設定[^1]を作成することもできます。

作成を押して......
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/9590e627-7d23-6aaa-53fb-f867154e07b7.png)

空のテンプレートを選択して......
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/27edecb6-26dd-f3ec-138e-0cd1af51f538.png)

抽出条件と除外条件を設定します。
仮に、インターネットゲートウェイからでEC2インスタンスまで**80ポート以外**の経路を条件として抽出してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/f0bf8201-1b04-1025-7f91-ca06ac527990.png)

確認して、作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/20c60ea3-443b-7a60-c960-335ca514c941.png)

分析すると......リストされました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/49557bf7-f53e-53d8-3f4b-540621c2fe0e.png)

経路確認します。セキュリティグループのIDからリンク飛ぶと......
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/85f6a470-c0a3-961b-67ba-15776b8226c2.png)

確かに80ポート以外が抽出されていそうです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/0cccb7e5-f5eb-cbbb-d872-19efa5257869.png)

意図しない経路を抽出することが出来ました。

## まとめ

Network Access Analyzer は意図しない経路抽出に役立ちそう。

(ただし、最初に違反していると考えられるパスを洗い出すのが結構手間かも。)


## 参考

https://docs.aws.amazon.com/ja_jp/vpc/latest/network-access-analyzer/what-is-vaa.html

[^1]: Network Access Scopeと呼びます