【AWSサービス 基礎編】Network Access Analyzer で意図しないネットワークアクセスを検出する

目次

概要

AWS 環境が拡大するにつれて、セキュリティグループやネットワーク ACL、ルートテーブルなどのネットワーク設定が複雑化し、意図しないアクセス経路が生まれるリスクが高まります。手動ですべてのネットワーク設定を確認するのは現実的ではなく、見落としがセキュリティインシデントにつながる可能性があります。

Network Access Analyzer は、VPC 内のネットワークアクセスを自動的に分析し、意図しないアクセス経路を検出するサービスです。ネットワークアクセススコープと呼ばれる分析条件を定義し、その条件に合致するアクセス経路を特定できます。

本記事では、Network Access Analyzer の基本概念を理解し、ネットワークアクセススコープの作成と分析の実行を通じて、ネットワーク設定の検証方法を体験します。

Network Access Analyzer の全体像: VPC のネットワーク設定をまとめて評価し、到達できる経路を検出する
Network Access Analyzer の全体像: VPC のネットワーク設定をまとめて評価し、到達できる経路を検出する
クラウドおさる

バナナ倉庫に外から入れる道がいくつあるか、地図で一度に洗い出せたら楽でござるな。この記事では、インターネットから EC2 に届く経路を Network Access Analyzer で見つけるところを確かめるでござる。

この記事のメリット

  • Network Access Analyzer を使ってネットワークアクセスの分析を実行する方法を習得できる
  • ネットワークアクセススコープの概念と作成方法を理解できる
  • インターネットからの意図しないアクセス経路を検出する手法を体験できる
  • セキュリティグループやネットワーク ACL の設定を効率的に検証する方法を把握できる
  • ネットワークセキュリティの定期的な監査に活用できる知識を得られる

執筆者とキャラクター紹介

執筆者:土肥(とひ)

株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。

土肥

クラウドおさる

クラウドおさる

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

クラウドおさる

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

クラウドおさる

猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。

技術解説

クラウドおさる

とひさん、Network Access Analyzer というサービスを見つけたでござる。これはどういうものでござるか?

土肥

Network Access Analyzer は、Amazon VPC の機能の一つで、AWS ネットワーク内のネットワークアクセスを分析するサービスだよ。セキュリティグループ、ネットワーク ACL、ルートテーブル、VPC ピアリング、Transit Gateway なんかのネットワーク設定を総合的に評価して、指定した条件に合致するアクセス経路を検出してくれるんだ。

クラウドおさる

総合的に評価してくれるのでござるな。具体的には、どんな場面で使うのでござる?

土肥

主なユースケースはこんな感じだね。

  • インターネットからの意図しないインバウンドアクセスの検出
  • 信頼されたネットワーク境界外からのアクセス経路の特定
  • コンプライアンス要件に基づくネットワークアクセスの検証
  • ネットワーク設定変更後の影響分析
クラウドおさる

セキュリティグループなどを一つ一つ確認しなくても、まとめてチェックできるということでござるな! 猿山で言えば、門番・柵・抜け道を一か所ずつ見て回らずに、「外からバナナ倉庫まで入れる道はあるか」を一度に調べてもらえるようなものでござる。

土肥

そのとおり。次に、分析の条件を定義する「ネットワークアクセススコープ」について説明するね。これは「どこから」「どこへ」のアクセスを分析するかを指定するものなんだ。

クラウドおさる

スコープには、どんな設定項目があるのでござるか?

土肥

主な構成要素はこの表のとおりだよ。

構成要素説明
ソースアクセスの送信元(例: インターネットゲートウェイ、特定の VPC、CIDR 範囲)
デスティネーションアクセスの送信先(例: EC2 インスタンス、特定のサブネット)
プロトコル / ポート分析対象のプロトコルとポート番号
除外条件分析結果から除外するアクセス経路
クラウドおさる

全部自分で定義しないといけないのでござるか? 弊猿には少々大変そうでござる…

土肥

安心して。Amazon が作ったスコープが最初から 4 つ入っていて、そのまま分析したり、コピーして手直ししたりできるよ。たとえば AWS-VPC-Ingress は、インターネットゲートウェイだけじゃなくて、こういう入口から VPC に入ってくる経路をまとめて洗い出すんだ。

  • インターネットゲートウェイ
  • VPC ピアリング接続
  • VPC エンドポイントサービス
  • VPN
  • Transit Gateway
土肥

自分でスコープを作るときも、作成画面のテンプレートから始められるよ。今回の実践では「インターネットゲートウェイからのアクセスを識別」のテンプレートを使って、インターネットからの経路だけに絞るんだ。

クラウドおさる

テンプレートがあるなら、すぐに始められそうでござるな。

ネットワークアクセススコープの分析イメージ: ソースからデスティネーションまでの経路上の設定を順に評価する
ネットワークアクセススコープの分析イメージ: ソースからデスティネーションまでの経路上の設定を順に評価する
クラウドおさる

分析を実行すると、結果はどんなふうに表示されるのでござる?

土肥

分析結果は「Findings(検出結果)」として表示されるよ。各 Finding には以下の情報が含まれるんだ。

  • アクセスの送信元と送信先
  • 経路上のネットワークコンポーネント(セキュリティグループ、ネットワーク ACL など)
  • 許可されているプロトコルとポート範囲
クラウドおさる

検出されたものは、全部問題のあるアクセスということでござるか?

土肥

いや、そうとは限らないよ。検出結果には、意図したアクセスと意図しないアクセスの両方が含まれる場合があるんだ。だから、運用者が各 Finding を確認して、意図しないアクセスに対して是正措置を講じることが重要なんだよ。

クラウドおさる

なるほど、結果を見て判断するのは人間の役割なのでござるな。猿山でも、見回りの報告に「裏門が開いている」とあれば、それが荷運びのためか戸締まり忘れかを決めるのは当番の猿でござる。

新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方も募集しています。異業種や文系からインフラエンジニアになり活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

実践

ハンズオンガイド7 ステップ画面 7 枚

コンソールの横に開いて、チェックしながら進めましょう。

ガイドを開く

別タブで開きます。チェックはこのブラウザに保存されます。

前提条件

  • リージョン: ap-northeast-1(東京)
  • 以下のリソースが作成済みであること
リソース種別リソース名用途
VPCnaa-lab-vpc検証用 VPC(CIDR: 10.0.0.0/16)
パブリックサブネットnaa-lab-public-subnetパブリックサブネット(CIDR: 10.0.1.0/24)
プライベートサブネットnaa-lab-private-subnetプライベートサブネット(CIDR: 10.0.2.0/24)
インターネットゲートウェイnaa-lab-igwインターネット接続用
EC2 インスタンスnaa-lab-webパブリックサブネット上の Web サーバー
EC2 インスタンスnaa-lab-dbプライベートサブネット上の DB サーバー
セキュリティグループnaa-lab-web-sgWeb サーバー用 SG(ポート 80、22 を 0.0.0.0/0 から許可)
セキュリティグループnaa-lab-db-sgDB サーバー用 SG(ポート 3306 を naa-lab-web-sg から許可)

この実践で作成するリソース

リソース種別リソース名用途
ネットワークアクセススコープnaa-lab-ingress-scopeインターネットからのインバウンドアクセス分析用

Network Access Analyzer へのアクセス

AWS マネジメントコンソールにログインし、リージョンが ap-northeast-1(東京)であることを確認します。

Network Access Analyzer は、Network Manager のコンソールにあります。上部の検索バーに Network Access Analyzer と入力し、表示された「Network Access Analyzer」を選択します(Network Manager の左側ナビゲーションの「セキュリティとガバナンス」→「Network Access Analyzer」からも開けます)。

初めて開いたときは、紹介の画面が表示されます。「使用を開始する」をクリックすると、Network Access Scopes の一覧が表示されます。一覧には、Amazon が用意した既定のスコープ(AWS-IGW-Egress、All-IGW-Ingress など)が 4 つ入っています。

Network Manager の左側ナビゲーションの Network Access Analyzer
Network Manager の左側ナビゲーションの Network Access Analyzer

ネットワークアクセススコープの作成

「Network Access Scope を作成」をクリックします。作成は「テンプレートを選択」→「定義」→「確認と作成」の 3 ステップです。

ステップ 1 で、テンプレート「インターネットゲートウェイからのアクセスを識別」を選択し、「次へ」をクリックします。

ステップ 2 で以下を設定します。

  • 「詳細」の名前: naa-lab-ingress-scope(入力した名前は Name タグになります)
  • 「一致条件」の送信元: テンプレートにより、リソースタイプ AWS::EC2::InternetGateway が入っています。そのままにします
  • 「一致条件」の送信先: 「リソースの選択」を「リソース ID」から「リソースタイプ」に切り替え、Network Interfaces (AWS::EC2::NetworkInterface) を選択します
ネットワークアクセススコープの作成画面(名前・送信元・送信先の設定)
ネットワークアクセススコープの作成画面(名前・送信元・送信先の設定)

その他の項目はデフォルトのままにして「次へ」をクリックし、確認画面で「Network Access Scope を作成」をクリックします。

ネットワークアクセススコープ作成完了画面
ネットワークアクセススコープ作成完了画面

分析の実行

作成した naa-lab-ingress-scope を選択し、「分析」をクリックします。

スコープの詳細画面に切り替わり、分析が始まります(確認の画面はありません)。今回は 1 分ほどで完了しました。

分析実行中のステータス表示
分析実行中のステータス表示

分析結果の確認

分析が完了すると、「最新の分析」タブの「結果」に、インターネットゲートウェイから ENI に到達できるアクセス経路が一覧表示されます。一覧には、開始・終了のリソースや、プロトコル・送信先ポートが並びます。

このスコープは送信元・送信先を「リソースタイプ」で指定しているため、アカウント内のほかの VPC の経路も結果に含まれます。結果の検索ボックスに naa-lab と入力し、今回の前提環境のリソースだけに絞り込みます。

分析結果の一覧画面(naa-lab で絞り込み、検出されたアクセス経路が表示された状態)
分析結果の一覧画面(naa-lab で絞り込み、検出されたアクセス経路が表示された状態)

一覧の行を選択すると、右側にアクセス経路の図が表示されます。経路は次の順につながっています。

  • 送信元(インターネットゲートウェイ)
  • ネットワーク ACL
  • セキュリティグループ(許可しているプロトコルとポート範囲も表示されます)
  • 送信先(EC2 インスタンスの ENI)
検出結果の経路図(アクセス経路の各コンポーネントが表示された状態)
検出結果の経路図(アクセス経路の各コンポーネントが表示された状態)

今回の前提環境では、naa-lab-web のセキュリティグループがポート 22(SSH)を 0.0.0.0/0(すべての IP アドレス)から許可しているため、インターネットからの SSH アクセスが検出結果に含まれます。これは意図しないアクセス経路の例であり、ソースを特定の IP アドレスに制限するなどの是正が必要です。

クラウドおさる

ポート 22 が 0.0.0.0/0 に開いていると、世界中のどこからでも SSH を試せる状態でござる。検出結果は、こうした開けっぱなしの扉を見つけるための手がかりでござるぞ。

意図しないアクセスの是正確認

是正措置として、naa-lab-web-sg の SSH ルールのソースを 0.0.0.0/0 から特定の IP アドレス(例: マイ IP)に変更します。

上部の検索バーに EC2 と入力し、表示された「EC2」を選択します。

左側ナビゲーションの「ネットワーク&セキュリティ」→「セキュリティグループ」を選択し、naa-lab-web-sg を選択します。

「インバウンドルール」タブを選択し、「インバウンドルールを編集」をクリックします。

SSH ルールの「リソースタイプ」を マイ IP に変更します。ソース欄に自分のパブリック IP アドレス(/32)が入ります。「ルールを保存」をクリックします。

naa-lab-web-sg のインバウンドルール編集画面(SSH のソースをマイ IP に変更した状態)
naa-lab-web-sg のインバウンドルール編集画面(SSH のソースをマイ IP に変更した状態)

Network Access Analyzer に戻り、naa-lab-ingress-scope で再度分析を実行します。SSH(ポート 22)の経路は、インターネットゲートウェイから到達できる経路として引き続き結果に出ますが、セキュリティグループの送信元が 0.0.0.0/0 から自分の IP アドレス(/32)に変わったことが確認できます。Network Access Analyzer はルールが許可している経路を洗い出すツールなので、「経路が残っていてよいか」「送信元は十分に絞られているか」を結果を見て判断します。

クラウドおさる

設定を直したら、もう一度分析して結果を見比べる。経路が消えるとは限らぬので、送信元がちゃんと絞れたかまで確かめるのが肝でござる。

まとめ

  • Network Access Analyzer は、VPC 内のネットワークアクセスを自動的に分析し、意図しないアクセス経路を検出するサービスである
  • ネットワークアクセススコープで「どこから・どこへ」の分析条件を定義する
  • 分析結果(Findings)には、アクセス経路上のすべてのネットワークコンポーネントが表示される
  • インターネットからの意図しないインバウンドアクセスの検出に有効である
  • セキュリティグループの設定是正後に再分析することで、是正の効果を確認できる
  • 定期的な分析を実施することで、ネットワークセキュリティの継続的な監査が可能になる

参照先

キャリア相談
クラウドおさる

独学の先に、AWS の仕事がある ── ジュニアおさるのキャリア相談

CLF には受かったけれど、次に何をすればいいのか分からない。独学で AWS を学ぶジュニアおさるの相談に、株式会社ジェニュイン代表の土肥が答えています。

  • ✓資格はゴールか、CLF の次に何から手を付けるか
  • ✓EC2 の次に作ってみる構成と、IaC・コスト管理
  • ✓実務経験ゼロでも、面接で話せる「これまで」の作り方
新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方も募集しています。異業種や文系からインフラエンジニアになり活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社ジェニュイン(https://genuine-pt.jp)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した株式会社Luxyを引き継ぎ、代表に就任。
その後アガルートグループ内の株式会社ジェニュインと合併。
合併後同社代表に就任。

目次