AWS VPC セキュリティ概要

  • VPC では、セキュリティグループとネットワーク ACL (NACLS) の両方が連携して、階層型のネットワーク防御を構築できます。
  • セキュリティグループ : 関連する Amazon インスタンスのファイアウォールとして機能し、インスタンスレベルでの受信トラフィックとアウトバウンドの両方を制御
  • ネットワークアクセス制御リスト (NACLs) : 関連するサブネットのファイアウォールとして機能し、サブネットレベルでの受信トラフィックとアウトバウンドの両方を制御

NACLs

セキュリティグループ

  • サブネットレベルではなく、インスタンスレベルで動作します。
  • サブネット内の各インスタンスには、異なるセキュリティグループのセットを割り当てることができます。
  • インスタンスには、50ルールを持つ各セキュリティグループに5つのセキュリティグループを割り当てることができます。
  • セキュリティグループを使用すると、インスタンスへの受信 (進入) トラフィックと送信 (アウトバウンド) の両方に対するルール (アクセスの承認または取り消し) を追加または削除できます。
    • 既定のセキュリティグループは外部の受信トラフィックを許可せず、同じセキュリティグループを持つインスタンスからの受信トラフィックを許可します。
    • 既定のセキュリティグループは、すべての送信トラフィックを許可します。
    • 新しいセキュリティグループは、すべてのトラフィックがインスタンスを残すことを許可する送信規則のみで開始されます。
  • セキュリティグループは、ルールを許可するだけで、ルールは拒否することはできません。
  • セキュリティグループは、特定の CIDR 範囲、または VPC 内またはピア VPC 内の別のセキュリティグループへのアクセスを許可できます (vpc ピア接続が必要)
  • セキュリティグループは、最も寛容なルールが優先されるルールの全体または累積束として評価します。たとえば、IP アドレス203.0.113.1 から tcp ポート 22 (SSH) へのアクセスを許可するルールがあり、すべてのユーザーからの TCP ポート22へのアクセスを許可する別のルールがある場合、誰もが TCP ポート22にアクセスできます。
  • セキュリティグループはステートフルです – 受信トラフィックを許可する応答は、送信ルールに関係なく送信をフローすることができ、その逆もあります。したがって、応答の送信ルールは必要ありません。
  • セキュリティグループは、ENI (ネットワークインターフェイス) に関連付けられています。
  • インスタンスに関連付けられたセキュリティグループを変更して、プライマリネットワークインターフェイス (eth0) に関連付けられたセキュリティグループを変更し、その変更をセキュリティグループに関連付けられているすべてのインスタンスに直ちに適用できます。

接続のトラッキング

  • セキュリティグループはステートフルであり、接続トラッキングを使用して、インスタンスとの間のトラフィックに関する情報を追跡します。
  • 受信トラフィックへの応答は、送信セキュリティグループの規則に関係なく、インスタンスからのフローを許可され、その逆も可能です。
  • 接続トラッキングは、受信要求に対して明示的な送信規則がない場合にのみ維持されます (その逆も同様です)。
  • ただし、受信要求に対して明示的な送信ルールがある場合、送信ルールに基づいて応答トラフィックが許可され、追跡情報には対応しません。
  • インスタンス (ホスト A) がホスト B へのトラフィックを開始し、TCP、UDP、または ICMP 以外のプロトコルを使用している場合、インスタンスのファイアウォールは、ホスト B からの応答トラフィックを許可する目的で、IP アドレスとプロトコル番号のみを追跡します。
    ホスト B が、元の要求または応答の600秒以内に別の要求でインスタンスへのトラフィックを開始した場合、インスタンスは応答トラフィックと見なされるため、受信セキュリティグループの規則に関係なくそれを受け入れます。
  • これは、特定の種類の送信トラフィックのみを許可するようにセキュリティグループの送信規則を変更することによって制御できます。または、ネットワーク ACL (NACLs) をサブネットに使用でき、ネットワーク ACL はステートレスであるため、応答トラフィックを自動的に許可しません。

NACLs

  • ネットワーク ACL (NACLs) は、1つまたは複数のサブネットからのトラフィックを制御するためのファイアウォールとして機能する VPC のオプションのセキュリティレイヤです。
  • NACLs は、細分化されたコントロールではなく、サブネットレベルで割り当てられ、そのサブネット内のすべてのインスタンスに適用されます。
  • ネットワーク ACL には個別の受信および送信ルールがあり、各ルールはトラフィックを許可または拒否することができます。
    • 既定の ACL を使用すると、すべての受信トラフィックと送信アクセスを許可します。
    • 新しく作成された ACL は、すべてのインバウンドおよびアウトバウンドトラフィックを拒否します。
  • サブネットに割り当てることができるのは 1 NACLs のみで、明示的に関連付けられていない場合は、デフォルトの NACL に暗黙的に関連付けられます
  • ネットワーク ACL は、順序で評価されるルールの番号付きリストです。最小の番号付きルールを使用して、ネットワーク ACL に関連付けられているサブネットの中でトラフィックが許可されるかどうかを判断する。たとえば、すべての拒否と110を許可するルール番号100を持っている場合、すべての許可が優先され、すべてのトラフィックが許可される。
  • ネットワーク ACL はステートレスです。許可された着信トラフィックへの応答は、送信トラフィックの規則 (およびその逆) の対象となります。たとえば、特定の IP アドレスからポート22で受信 SSH を有効にする場合は、応答の送信ルールも追加する必要があります。

セキュリティグループとNACLの比較


AWS認定試験の練習問題

  • 質問はインターネットから収集され、答えは自分の知識と理解に基づいてマークされます(これはあなたと異なる場合があります)。
  • AWSサービスは毎日更新され、回答と質問はすぐに時代遅れになる可能性がありますので、それに応じて調査してください。
  • AWSのアップデートのペースを追うためにAWS試験の質問は更新されないため、基礎となる機能が変更されても質問が更新されないことがあります。
  • さらなるフィードバック、ディスカッション、修正を可能にします。
  1. インスタンス A とインスタンス B は、VPC の2つの異なるサブネット A および B で実行されています。インスタンス A はインスタンス B に対して ping を実行できません。これには2つの理由が考えられます。(正解2を選ぶ)
    1. サブネット A のルーティングテーブルには、サブネット B へのターゲットルートがありません
    2. インスタンス B に接続されているセキュリティグループは、受信 ICMP トラフィックを許可しません。
    3. インスタンス A の IAM ロールにリンクされているポリシーが正しく構成していません
    4. サブネット B 上の NACL は、送信 ICMP トラフィックを許可しません
  2. インスタンスは、すべての着信トラフィックを許可し、すべての送信トラフィックを拒否するように構成されたネットワーク ACL を持つ VPC サブネットに起動されます。インスタンスのセキュリティグループは、任意の IP アドレスからの SSH を許可し、すべての送信トラフィックを拒否するように構成されています。インスタンスへの SSH アクセスを許可するために、どのような変更を行う必要があるか。
    1. 送信トラフィックを許可するには、送信セキュリティグループを変更する必要があります。
    2. 発信ネットワーク ACL は、送信トラフィックを許可するように変更する必要があります。
    3. 何も、それは SSH を使用して任意の IP アドレスからアクセスすることができます。
    4. 送信トラフィックを許可するには、送信セキュリティグループと送信ネットワーク ACL の両方を変更する必要があります。
  3. どのサービスから着信/発信IPをブロックできますか?
    1. Security Groups
    2. DNS
    3. ELB
    4. VPC subnet
      1, IGW
    5. NACL
  4. VPC 内のセキュリティグループと VPC 内のネットワーク ACL の違いは何ですか (3 つの正解を選択)
    1. ACL が EC2 へのトラフィックを制限している間、セキュリティグループがサブネットへのアクセスを制限する
    2. ACL がサブネットへのトラフィックを制限している間、セキュリティグループは EC2 へのアクセスを制限する
    3. セキュリティグループは VPC の外部でも動作しますが、ACL は VPC 内でのみ機能します
    4. ネットワーク ACL はステートレスフィルタリングを実行し、セキュリティグループはステートフルフィルタリングを提供します
    5. セキュリティグループは許可ルールのみを設定できますが、ACL は拒否ルールも設定できます。
  5. 現在、VPC で複数のアプリケーションをホストしており、特定の IP アドレスブロックから入ってくる多数のポートスキャンをログに記録しています。セキュリティチームは、問題のある IP アドレスブロックからのすべてのアクセスを次の24時間拒否するように要求しました。指定された IP アドレスブロックからのアクセスを迅速かつ一時的に拒否する最良の方法は、次のうちどれですか。
    1. AD ポリシーを作成して、VPC 内のすべてのホストの Windows ファイアウォール設定を変更して、IP アドレスブロックからのアクセスを拒否する。
    2. VPC 内のすべてのパブリックサブネットに関連付けられているネットワーク ACL を変更して、IP アドレスブロックからのアクセスを拒否する。
    3. すべての VPC 5 セキュリティグループにルールを追加して、IP アドレスブロックからのアクセスを拒否する。
    4. 組織がその VPC で使用しているすべての Amazon マシンイメージ (AMI) の Windows ファイアウォール設定を、IP アドレスブロックからのアクセスを拒否するように変更します。
  6. 同じアベイラビリティーゾーン (AZ) 内の仮想プライベートクラウド (VPC) 内に、異なるサブネット内に2つの Elastic コンピューティングクラウド (EC2) インスタンスがあります。1つのインスタンスは、データベースと他のインスタンスを実行して、データベースとインターフェイスするアプリケーションです。アプリケーションが正常に動作するために、互いに話すことができることを確認する必要があります。これらの EC2 インスタンスが vpc 内で通信できるように、vpc 設定で確認する必要がある2つの点はどれですか。2つの回答を選択。
    1. 2つのサブネット間の通信を可能にするネットワーク ACL
    2. どちらのインスタンスも同じインスタンスクラスで、同じキーペアを使用します。
    3. 既定のルートが、通信するための NAT インスタンスまたはインターネットゲートウェイ (IGW) に設定されていること。
    4. セキュリティグループは、アプリケーションホストが適切なポート/プロトコルでデータベースと通信できるように設定されています。
  7. 福利厚生登録会社は、パブリック Web 層に NAT(Network Address Translation) インスタンスを含む AWS 上の VPC で動作する3層 Web アプリケーションをホストしています。 CloudWatch などの監視ツールを使用して調査した結果、新しい会計年度の給付登録期間に追加のオーバーヘッドと予想されるワークロードのプロビジョニングされた容量が十分にあり、さらに 2 日間の登録がうまくいってからWeb層が応答しなくなります。 有益な会社に顧客がいない国からのポート 80 を介した 15 の特定の IP アドレスのセットから来る着信トラフィックの非常に大きく予想外の量。 Web 層インスタンスは非常にオーバーロードされているため、登録管理者は SSH を使用することはできません。 どの活動がこの攻撃に対して防御するのに役立つでしょうか?
    1. Web 層に関連付けられたカスタムルートテーブルを作成し、攻撃する IP アドレスを IGW (インターネットゲートウェイ) からブロックする。
    2. web 層サブネット内の NAT インスタンスの EIP (Elastic IP アドレス) を変更し、メインルートテーブルを新しい eip で更新します。
    3. ポート80を介して攻撃の IP アドレスをブロックする15のセキュリティグループのルールを作成します。
    4. Web 層サブネットに関連付けられた受信 NACL (ネットワークアクセス制御リスト) を作成し、拒否ルールを使用して攻撃する IP アドレスをブロックします。
  8. 次のステートメントのうち、ネットワーク ACL について説明します。(2 つの回答を選択)
    1. 許可された着信トラフィックに対する応答は、発信ルールに関係なく発信することが許可され、その逆も同様です (ステートレスである)
    2. ネットワーク ACL を使用すると、特定の IP 範囲からのアクセスを拒否できます。
    3. ネットワーク ACL ルールをシンプルに保ち、セキュリティグループを使用してアプリケーションレベルのアクセスを制限する
    4. NACLs が単一のアベイラビリティーゾーンに関連付けられている (サブネットに関連付けられている)
  9. VPC 内でセキュリティを設計しています。別のセキュリティゾーンを確立し、異なるゾーン間でネットワークトラフィックルールを適用して、インスタンスが通信できるように制限するためのオプションを検討しています。 どのようにこれらの要件を達成するか?2つの回答を選択
    1. 各ゾーンのセキュリティグループを構成します。既定の [すべての規則を許可する] を構成します。互いに通信できないゾーンの明示的な拒否規則を構成する (セキュリティグループは拒否ルールを許可しません)
    2. IP アドレスの範囲がセキュリティゾーンごとにあらかじめ設定された IP アドレスを使用するようにインスタンスを構成します。interzone 通信に必要な、異なる IP アドレス範囲間の通信を明示的に許可または拒否するように NACL を構成する
    3. 各ゾーンのセキュリティグループを構成します。互いに通信できるようにする必要があるゾーン間でのみ、許可ルールを構成します。暗黙の deny すべてのルールを使用して他のトラフィックをブロックする
    4. VPC 内の複数のサブネットを、ゾーンごとに1つずつ構成します。各サブネットが通信する必要がある他のサブネットへのルートだけを持ち、通信できないサブネットへのルートを持たないような方法で、VPC 内のルーティングを構成します。(デフォルトのルートは変更)
  10. AWS インフラストラクチャ全体が1つの Amazon VPC の内部に住んでいます。リージョンのアベイラビリティーゾーン (AZ) A の Amazon インスタンスで実行されているインフラストラクチャ監視アプリケーションと、AZ-B で実行されている別のアプリケーションインスタンスがあります。監視アプリケーションは、ICMP ping を使用して、アプリケーションをホストしているインスタンスのネットワーク到達可能性を確認する必要があります。これらのインスタンスのセキュリティグループを構成して、監視インスタンスからアプリケーションインスタンスだけに ICMP ping を渡すことができますか?それ以外は何もありませんか?
    1. 2つの異なる AZ の2つのインスタンスは、そのプロトコルがサブネット (すなわちブロードキャスト) 境界を越えて許可されないので、ICMP ping を介して互いに直接話すことができません (通信できる)
    2. はい、監視インスタンスとアプリケーションインスタンスの両方が同じセキュリティグループの一部である必要があり、そのセキュリティグループは受信 ICMP を許可する必要があります (同じセキュリティグループの一部である必要はありません)。
    3. はい、監視インスタンスのセキュリティグループは送信 ICMP を許可する必要があり、アプリケーションインスタンスのセキュリティグループは受信 ICMP を許可する必要があります (ステートフルなので、監視対象のインスタンスの送信 ICMP と受信 ICMP を許可するだけです)。
    4. はい、監視インスタンスのセキュリティグループとアプリケーションインスタンスのセキュリティグループの両方が、ICMP が接続指向のプロトコルではないため、受信および送信の両方の ICMP ping パケットを許可する必要があります (セキュリティグループはステートフルです)
  11. ユーザーが新しいサブネットを持つ VPC を構成しました。ユーザーがセキュリティグループを作成しました。ユーザーは、同じサブネットのインスタンスが互いに通信するように構成する必要があります。ユーザーはどのようにセキュリティグループでこれを構成できますか。
    1. すべてのインスタンスが同じサブネット内で互いに通信できるため、セキュリティグループの変更は必要ありません。
    2. サブネットをセキュリティグループのソースとして構成し、すべてのプロトコルとポートのトラフィックを許可する
    3. セキュリティグループ自体をソースとして構成し、すべてのプロトコルとポートでトラフィックを許可する
    4. ユーザーは、VPC ピアを使用してこれを構成する
  12. VPC 環境用のデータ漏洩防止ソリューションを設計しています。 VPC インスタンスが製品アップデートのためにインターネット上のソフトウェアデポとディストリビューションにアクセスできるようにします。 ディポとディストリビューションは、サードパーティの CDN から URL でアクセスできます。 VPC インスタンスからインターネット上のホストへの他のアウトバウンド接続を明示的に拒否したい場合。 次のうちどれを検討しますか?
    1. VPC で Web プロキシサーバーを構成し、送信アクセス用の URL ベースのルールを適用する既定のルートを削除します。(セキュリティグループと NACL は、ルール内の URL を持つことはできませんまた、ルートはありません)
    2. セキュリティグループを実装し、ソフトウェアデポへのトラフィックのみを許可するように送信ルールを構成します。
    3. すべてのインスタンスをプライベート VPC サブネットに移動すると、すべてのルーティングテーブルからデフォルトルートが削除され、特定のルートがソフトウェアデポと配布にのみ追加されます。
    4. すべての特定の宛先にネットワークアクセス制御リストを実装し、ルールとして暗黙的に拒否します。
  13. EC2 セキュリティグループには、いくつかの実行中の EC2 インスタンスがあります。新しいポートとプロトコルで受信トラフィックを許可するようにセキュリティグループの規則を変更し、同じセキュリティグループ内に複数の新しいインスタンスを起動します。新しいルールが適用されます。
    1. セキュリティグループ内のすべてのインスタンスに直ちに。
    2. すぐに新しいインスタンスにのみ。
    3. 新しいインスタンスにすぐに、新しいルールが適用される前に古いインスタンスを停止して再起動する必要があります。
    4. すべてのインスタンスに対して、古いインスタンスが変更を確認するのに数分かかる場合があります。

Jayendra’s Blog

この記事は自己学習用に「AWS VPC Security – Security Group vs NACLs – Certification(Jayendra’s Blogより)」を日本語に訳した記事です。