ネットワーク ACL - Amazon Virtual Private Cloud

ネットワーク ACL

ネットワークアクセスコントロールリスト (ACL) は、1 つ以上のサブネットのインバウンドトラフィックとアウトバウンドトラフィックを制御するファイアウォールとして動作する、VPC 用のセキュリティのオプションレイヤーです。セキュリティの追加レイヤーを VPC に追加するには、セキュリティグループと同様のルールを指定したネットワーク ACL をセットアップできます。セキュリティグループとネットワーク ACL の違いの詳細については、「セキュリティグループとネットワーク ACL の比較」を参照してください。

ネットワーク ACL の基本

ネットワーク ACL について知っておく必要がある基本的な情報を以下に示します。

  • VPC には、変更可能なデフォルトのネットワーク ACL が自動的に設定されます。デフォルトでは、すべてのインバウンドおよびアウトバウンドの IPv4 トラフィックと、IPv6 トラフィック (該当する場合) が許可されます。

  • カスタムネットワーク ACL を作成し、サブネットと関連付けることができます。デフォルトでは、各カスタムネットワーク ACL は、ルールを追加するまですべてのインバウンドトラフィックとアウトバウンドトラフィックを拒否します。

  • VPC 内の各サブネットにネットワーク ACL を関連付ける必要があります。ネットワーク ACL に明示的にサブネットを関連付けない場合、サブネットはデフォルトのネットワーク ACL に自動的に関連付けられます。

  • ネットワーク ACL を複数のサブネットに関連付けることができます。ただし、サブネットは一度に 1 つのネットワーク ACL にのみ関連付けることができます。サブネットとネットワーク ACL を関連付けると、以前の関連付けは削除されます。

  • ネットワーク ACL には、ルールの番号付きリストが含まれます。低い番号から順にルールを評価し、ネットワーク ACL に関連付けられたサブネットのインバウンドトラフィックまたはアウトバウンドトラフィックが許可されるかどうかを指定します。ルールに使用できる最も高い番号は 32766 です。まずは増分 (たとえば 10 または 100 の増分) でルールを作成することをお勧めします。こうすると、後で必要になったときに新しいルールを挿入できます。

  • ネットワーク ACL には個別のインバウンドルールとアウトバウンドルールがあり、各ルールでトラフィックを許可または拒否できます。

  • ネットワーク ACL はステートレスです。許可されているインバウンドトラフィックに対する応答は、アウトバウンドトラフィックのルールに従います(その逆の場合も同様です)。

VPC あたりのネットワーク ACL の数とネットワーク ACL あたりのルールの数には、クォータ (制限) があります。詳細については、「Amazon VPC のクォータ」を参照してください。

ネットワーク ACL ルール

デフォルトのネットワーク ACL に対してルールの追加または削除を行うことができます。また、VPC に合わせて追加のネットワーク ACL を作成することができます。ネットワーク ACL に対してルールの追加または削除を行うと、変更内容は、その ACL に関連付けられているサブネットに自動的に適用されます。

次に、ネットワーク ACL ルールの一部を示します。

  • ルール番号。ルールは、最も低い番号のルールから評価されます。ルールがトラフィックに一致すると、それと相反するより高い数値のルールの有無にかかわらず、すぐに適用されます。

  • タイプ。トラフィックのタイプ(SSH など)。また、すべてのトラフィックまたはカスタム範囲を指定することもできます。

  • プロトコル。標準のプロトコル番号を持つ任意のプロトコルを指定できます。詳細については、「プロトコル番号」を参照してください。プロトコルとして ICMP を指定する場合、任意またはすべての ICMP タイプとコードを指定できます。

  • ポート範囲。トラフィックのリスニングポートまたはポート範囲。たとえば、HTTP トラフィックの場合は 80 です。

  • 送信元。(インバウンドルールのみ)トラフィックのソース(CIDR 範囲)。

  • 送信先。(アウトバウンドルールのみ)トラフィックの宛先(CIDR 範囲)。

  • 許可/拒否。指定されたトラフィックを許可する拒否するかを指定します。

コマンドラインツールまたは Amazon EC2 API を使用してルールを追加すると、CIDR 範囲は自動的に正規形式に変更されます。たとえば、CIDR 範囲に 100.68.0.18/18 を指定すると、100.68.0.0/18 の CIDR 範囲を持つルールが作成されます。

デフォルトのネットワーク ACL

デフォルトのネットワーク ACL は、すべてのトラフィックが、関連するサブネットを出入りすることを許可するように設定されます。各ネットワーク ACL にも、ルール番号がアスタリスクのルールが含まれます。このルールによって、パケットが他のいずれの番号のルールとも一致しない場合は、確実に拒否されます。このルールを変更または削除することはできません。

IPv4 のみをサポートする VPC のデフォルトネットワーク ACL の例を以下に示します。

インバウンド
ルール番号 タイプ プロトコル ポート範囲 送信元 許可/拒否

100

すべての IPv4 トラフィック

すべて

すべて

0.0.0.0/0

許可

*

すべての IPv4 トラフィック

すべて

すべて

0.0.0.0/0

拒否

アウトバウンド
ルール番号 タイプ プロトコル ポート範囲 送信先 許可/拒否

100

すべての IPv4 トラフィック

すべて

すべて

0.0.0.0/0

許可

*

すべての IPv4 トラフィック

すべて

すべて

0.0.0.0/0

拒否

IPv6 CIDR ブロックを持つ VPC を作成するか、IPv6 CIDR ブロックを既存の VPC と関連付ける場合は、すべての IPv6 トラフィックがサブネット間を流れるようにするルールが自動的に追加されます。また、ルール番号がアスタリスクのルールが追加されます。このルールにより、パケットが他のいずれのルールとも一致しない場合は、確実に拒否されます。このルールを変更または削除することはできません。IPv4 または IPv6 をサポートする VPC のデフォルトネットワーク ACL の例を以下に示します。

注記

デフォルトのネットワーク ACL のインバウンドルールを変更した場合は、IPv6 ブロックを VPC と関連付けても、インバウンド IPv6 トラフィックを許可するルールが自動的に追加されることはありません。同様に、アウトバウンドルールを変更した場合、アウトバウンド IPv6 を許可するルールが自動的に追加されることはありません。

インバウンド
ルール番号 タイプ プロトコル ポート範囲 送信元 許可/拒否

100

すべての IPv4 トラフィック

すべて

すべて

0.0.0.0/0

許可

101

すべての IPv6 トラフィック

すべて

すべて

::/0

許可

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

拒否

*

すべての IPv6 トラフィック

すべて

すべて

::/0

拒否

アウトバウンド
ルール番号 タイプ プロトコル ポート範囲 送信先 許可/拒否

100

すべてのトラフィック

すべて

すべて

0.0.0.0/0

許可

101

すべての IPv6 トラフィック

すべて

すべて

::/0

許可

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

拒否

*

すべての IPv6 トラフィック

すべて

すべて

::/0

拒否

カスタムネットワーク ACL

IPv4 のみをサポートする VPC のカスタムネットワーク ACL の例を以下のテーブルに示します。この ACL には、HTTP および HTTPS のインバウンドトラフィック (インバウンドルール 100 および 110) を許可するルールが含まれます。そのインバウンドトラフィックに対する応答を可能にする、対応するアウトバウンドルールがあります (一時ポート 32768~65535 を対象とするアウトバウンドルール 120)。適切な一時ポートの範囲を選択する方法の詳細については、「一時ポート」を参照してください。

ネットワーク ACL には、SSH および RDP からサブネットに対するトラフィックを許可するインバウンドルールも含まれます。アウトバウンドルール 120 は、サブネットに送信される応答を可能にします。

ネットワーク ACL には、サブネットからの HTTP および HTTPS のアウトバウンドトラフィックを許可するアウトバウンドルール (100 および 110) があります。そのアウトバウンドトラフィックに対する応答を可能にする、対応するインバウンドルールがあります (一時ポート 32768~65535 を対象とするインバウンドルール 140)。

注記

各ネットワーク ACL には、ルール番号がアスタリスクのデフォルトルールが含まれます。このルールによって、パケットが他のいずれのルールとも一致しない場合は、確実に拒否されます。このルールを変更または削除することはできません。

インバウンド
ルール番号 タイプ プロトコル ポート範囲 送信元 許可/拒否 コメント

100

HTTP

TCP

80

0.0.0.0/0

許可

任意の IPv4 アドレスからのインバウンド HTTP トラフィックを許可します。

110

HTTPS

TCP

443

0.0.0.0/0

許可

任意の IPv4 アドレスからのインバウンド HTTPS トラフィックを許可します。

120

SSH

TCP

22

192.0.2.0/24

許可

(インターネットゲートウェイを介した)ホームネットワークのパブリック IPv4 アドレスの範囲からのインバウンド SSH トラフィックを許可します。

130

RDP

TCP

3389

192.0.2.0/24

許可

(インターネットゲートウェイを介した)ホームネットワークのパブリック IPv4 アドレスの範囲からウェブサーバーに対するインバウンド RDP トラフィックを許可します。

140

カスタム TCP

TCP

32768-65535

0.0.0.0/0

許可

(送信元がサブネットであるリクエストに対する)インターネットからのインバウンドリターン IPv4 トラフィックを許可します。

この範囲は一例に過ぎません。適切な一時ポートの範囲を選択する方法の詳細については、「一時ポート」を参照してください。

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

拒否

前のルールでまだ処理されていないすべてのインバウンド IPv4 トラフィックを拒否します (変更不可)。

アウトバウンド
ルール番号 タイプ プロトコル ポート範囲 送信先 許可/拒否 コメント

100

HTTP

TCP

80

0.0.0.0/0

許可

サブネットからインターネットへのアウトバウンド IPv4 HTTP トラフィックを許可します。

110

HTTPS

TCP

443

0.0.0.0/0

許可

サブネットからインターネットへのアウトバウンド IPv4 HTTPS トラフィックを許可します。

120

カスタム TCP

TCP

32768-65535

0.0.0.0/0

許可

インターネット上のクライアントに対するアウトバウンド IPv4 応答を許可します(例: サブネット内のウェブサーバーを訪問するユーザーに対するウェブページの提供)。

この範囲は一例に過ぎません。適切な一時ポートの範囲を選択する方法の詳細については、「一時ポート」を参照してください。

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

拒否

前のルールでまだ処理されていないすべてのアウトバウンド IPv4 トラフィックを拒否します (変更不可)。

パケットがサブネットに送信されると、サブネットが関連付けられている ACL のインバウンドルールと照合して評価されます(ルールリストの一番上から順に一番下まで評価されます)。パケットが HTTPS ポート (443) あての場合の評価方法は次のとおりです。パケットは最初に評価されるルール (ルール 100) と一致しません。また、2 番目のルール (110) とは一致します。このルールでは、サブネットに送信されるパケットを許可します。パケットの宛先がポート 139 (NetBIOS) である場合は、いずれのルールとも一致せず、最終的に * ルールによってパケットが拒否されます。

正当に幅広い範囲のポートを開く必要があり、その範囲内の特定のポートは拒否する場合は、拒否ルールを追加します。このとき、テーブル内で、幅広い範囲のポートトラフィックを許可するルールよりも先に拒否ルールを配置します。

ユースケースに応じて、許可 ルールを追加します。たとえば、DNS 解決のためにポート 53 でアウトバウンド TCP および UDP アクセスを許可するルールを追加できます。追加するすべてのルールにおいて、応答トラフィックを許可する該当のインバウンドルールまたはアウトバウンドルールがあることを確認します。

IPv6 CIDR ブロックと関連付けた VPC のカスタムネットワーク ACL の同一例を以下のテーブルに示します。このネットワーク ACL には、すべての IPv6 HTTP および HTTPS トラフィックのルールが含まれます。この場合、IPv4 トラフィックの既存のルールの間に新しいルールが挿入されました。IPv4 ルールの後に、ルールを大きい数のルールとして追加することもできます。IPv4 トラフィックと IPv6 トラフィックは異なります。したがって、IPv4 トラフィックのルールはいずれも IPv6 トラフィックに適用することはできません。

インバウンド
ルール番号 タイプ プロトコル ポート範囲 送信元 許可/拒否 コメント

100

HTTP

TCP

80

0.0.0.0/0

許可

任意の IPv4 アドレスからのインバウンド HTTP トラフィックを許可します。

105

HTTP

TCP

80

::/0

許可

任意の IPv6 アドレスからのインバウンド HTTP トラフィックを許可します。

110

HTTPS

TCP

443

0.0.0.0/0

許可

任意の IPv4 アドレスからのインバウンド HTTPS トラフィックを許可します。

115

HTTPS

TCP

443

::/0

許可

任意の IPv6 アドレスからのインバウンド HTTPS トラフィックを許可します。

120

SSH

TCP

22

192.0.2.0/24

許可

(インターネットゲートウェイを介した)ホームネットワークのパブリック IPv4 アドレスの範囲からのインバウンド SSH トラフィックを許可します。

130

RDP

TCP

3389

192.0.2.0/24

許可

(インターネットゲートウェイを介した)ホームネットワークのパブリック IPv4 アドレスの範囲からウェブサーバーに対するインバウンド RDP トラフィックを許可します。

140

カスタム TCP

TCP

32768-65535

0.0.0.0/0

許可

(送信元がサブネットであるリクエストに対する)インターネットからのインバウンドリターン IPv4 トラフィックを許可します。

この範囲は一例に過ぎません。適切な一時ポートの範囲を選択する方法の詳細については、「一時ポート」を参照してください。

145

カスタム TCP TCP 32768-65535 ::/0 許可

(送信元がサブネットであるリクエストに対する)インターネットからのインバウンドリターン IPv6 トラフィックを許可します。

この範囲は一例に過ぎません。適切な一時ポートの範囲を選択する方法の詳細については、「一時ポート」を参照してください。

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

拒否

前のルールでまだ処理されていないすべてのインバウンド IPv4 トラフィックを拒否します (変更不可)。

*

すべてのトラフィック

すべて

すべて

::/0

拒否

前のルールでまだ処理されていないすべてのインバウンド IPv6 トラフィックを拒否します (変更不可)。

アウトバウンド
ルール番号 タイプ プロトコル ポート範囲 送信先 許可/拒否 コメント

100

HTTP

TCP

80

0.0.0.0/0

許可

サブネットからインターネットへのアウトバウンド IPv4 HTTP トラフィックを許可します。

105

HTTP

TCP

80

::/0

許可

サブネットからインターネットへのアウトバウンド IPv6 HTTP トラフィックを許可します。

110

HTTPS

TCP

443

0.0.0.0/0

許可

サブネットからインターネットへのアウトバウンド IPv4 HTTPS トラフィックを許可します。

115

HTTPS

TCP

443

::/0

許可

サブネットからインターネットへのアウトバウンド IPv6 HTTPS トラフィックを許可します。

120

カスタム TCP

TCP

32768-65535

0.0.0.0/0

許可

インターネット上のクライアントに対するアウトバウンド IPv4 応答を許可します(例: サブネット内のウェブサーバーを訪問するユーザーに対するウェブページの提供)。

この範囲は一例に過ぎません。適切な一時ポートの範囲を選択する方法の詳細については、「一時ポート」を参照してください。

125

カスタム TCP

TCP

32768-65535

::/0

許可

インターネット上のクライアントに対するアウトバウンド IPv6 応答を許可します(例: サブネット内のウェブサーバーを訪問するユーザーに対するウェブページの提供)。

この範囲は一例に過ぎません。適切な一時ポートの範囲を選択する方法の詳細については、「一時ポート」を参照してください。

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

拒否

前のルールでまだ処理されていないすべてのアウトバウンド IPv4 トラフィックを拒否します (変更不可)。

*

すべてのトラフィック

すべて

すべて

::/0

拒否

前のルールでまだ処理されていないすべてのアウトバウンド IPv6 トラフィックを拒否します (変更不可)。

その他の例については、「VPC ウィザードシナリオの推奨ルール」を参照してください。

カスタムネットワーク ACL およびその他の AWS のサービス

カスタムネットワーク ACL を作成する場合は、他の AWS のサービスを使用して作成したリソースにどのように影響するか注意してください。

Elastic Load Balancing では、バックエンドインスタンスのサブネットに、ソースが 0.0.0.0/0 であるかサブネットの CIDR のいずれかであるすべてのトラフィックに追加した拒否ルールを適用するネットワーク ACL がある場合、ロードバランサーはインスタンスのヘルスチェックを実行できません。ロードバランサーとバックエンドインスタンスに推奨されるネットワーク ACL ルールに関する詳細については、クラシックロードバランサー 用ユーザーガイド の「VPC のロードバランサーのネットワーク ACL」を参照してください。

一時ポート

前のセクションでは、ネットワーク ACL の例に 32768~65535 という一時ポートの範囲を使用しています。ただし、使用または通信しているクライアントの種類によっては、ネットワーク ACL に別の範囲を使用してもかまいません。

リクエストを開始するクライアントは、一時ポートの範囲を選択します。範囲は、クライアントのオペレーティングシステムによって変わります。

  • 多くの Linux カーネル (Amazon Linux カーネルを含む) は、ポート 32768~61000 を使用します。

  • Elastic Load Balancing が送信元のリクエストは、ポート 1024~65535 を使用します。

  • Windows Server 2003 を介する Windows オペレーティングシステムは、ポート 1025~5000 を使用します。

  • Windows Server 2008 以降のバージョンでは、ポート 49152~65535 を使用します。

  • NAT ゲートウェイはポート 1024~65535 を使用します。

  • AWS Lambda 関数は、ポート 1024-65535 を使用します。

たとえば、インターネット上の Windows XP クライアントから、お使いの VPC のウェブサーバーにリクエストが送信される場合、ネットワーク ACL には、ポート 1025 ~ 5000 あてのトラフィックを可能にするアウトバウンドルールを用意する必要があります。

VPC 内のインスタンスが、リクエストを開始するクライアントの場合、ネットワーク ACL には、インスタンス (Amazon Linux、Windows Server 2008 など) の種類に固有の一時ポートあてのトラフィックを可能にするインバウンドルールを用意する必要があります。

実際に、VPC 内のパブリックに面したインスタンスに対して、トラフィックを開始することができる多様なクライアントを対象にするには、一時ポート 1024~65535 を開くことができます。ただし、その範囲内で悪意のあるポートのトラフィックを拒否するルールを ACL を追加することもできます。このとき、テーブル内で、幅広い範囲の一時ポートを開く許可ルールよりも先に拒否ルールを配置します。

パス MTU 検出

2 つのデバイス間のパス MTU を判断するために、パス MTU 検出が使用されます。パス MTU は、送信側ホストと受信側ホスト間のパスでサポートされている最大のパケットサイズです。ホストが受信側ホストの MTU よりも大きなパケット、またはデバイスの MTU よりも大きなパケットをパスに沿って送信する場合、受信側ホストまたはデバイスは ICMP メッセージ Destination Unreachable: Fragmentation Needed and Don't Fragment was Set (タイプ 3、コード 4) を返します。これによって、パケットが送信できるようになるまで MTU を調整するように元のホストに指示されます。

サブネット内のホスト間の最大送信単位 (MTU) が異なる場合は、インバウンドとアウトバウンドの両方に、以下のネットワーク ACL ルールを追加する必要があります。これにより、パス MTU 検出が正しく機能し、パケット損失を防ぐことができます。タイプに [Custom ICMP Rule] を選択し、ポート範囲(タイプ 3、コード 4)に [送信先に到達できません]、[fragmentation required, and DF flag set (フラグメンテーションが必要、および DF フラグを設定)] を選択します。トレースルートを使用する場合は、次のルールも追加します。[カスタム ICMP ルール] (タイプ)、[時間超過]、[TTL 伝送期限切れ] (ポート範囲: タイプ 11、コード 0) を選択します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「EC2 インスタンスの最大ネットワーク送信単位 (MTU)」を参照してください。

ネットワーク ACL の操作

以下のタスクでは、Amazon VPC コンソールを使用してネットワーク ACL を操作する方法を示しています。

ネットワーク ACL の関連付けの確認

Amazon VPC コンソールを使用して、サブネットに関連付けられているネットワーク ACL を確認することができます。ネットワーク ACL を複数のサブネットに関連付けて、ネットワーク ACL に関連付けられているサブネットを確認することもできます。

サブネットと関連付けられているネットワーク ACL を確認するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [Subnets] を選択し、サブネットを選択します。

    サブネットに関連付けられているネットワーク ACL は、ネットワーク ACL のルールと共に [Network ACL] タブに表示されます。

ネットワーク ACL に関連付けられたサブネットを決定するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインの [Network ACLs] を選択します。[Associated With] 列には、各ネットワーク ACL に関連付けられているサブネットの数が表示されます。

  3. ネットワーク ACL を選択します。

  4. 詳細ペインで [Subnet Associations (サブネットの関連付け)] を選択して、ネットワーク ACL に関連付けられているサブネットを表示します。

ネットワーク ACL を作成する

VPC のカスタムネットワーク ACL を作成できます。デフォルトでは、作成するネットワーク ACL により、ルールを追加するまですべてのインバウンドおよびアウトバウンドトラフィックがブロックされ、明示的に関連付けるまではサブネットと関連付けられません。

ネットワーク ACL を作成するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインの [Network ACLs] を選択します。

  3. [Create Network ACL] を選択します。

  4. [Create Network ACL (ネットワーク ACL の作成)] ダイアログボックスで、オプションでネットワーク ACL に名前を付けて、[VPC] リストから VPC の ID を選択します。続いて、[Yes, Create (はい、作成します)] を選択します。

ルールの追加と削除

ACL のルールの追加または削除を行うと、その ACL に関連付けられたすべてのサブネットに変更が反映されます。サブネット内のインスタンスを終了して再起動する必要はありません。変更は短期間で有効になります。

Amazon EC2 API またはコマンドラインツールを使用している場合は、ルールを変更できません。ルールの追加と削除のみを行うことができます。Amazon VPC コンソールを使用している場合は、既存のルールのエントリを変更できます。コンソールは既存のルールを削除し、新しいルールを追加します。ACL のルールの順序を変更する必要がある場合は、新しいルール番号を指定した新しいルールを追加してから、元のルールを削除します。

ルールをネットワーク ACL に追加するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインの [Network ACLs] を選択します。

  3. 詳細ペインで、追加する必要があるルールの種類に応じて、[Inbound Rules] タブまたは [Outbound Rules] タブを選択し、[Edit] を選択します。

  4. [Rule #] にルール番号 (100 など) を入力します。ネットワーク ACL にすでに使用されているルール番号は使用できません。ルールは、最も低い番号から順に処理されます。

    ルール番号は、連続番号 (101、102、103 など) を使用せずに、間を空けておくことをお勧めします (100、200、300 など)。こうすることで、既存のルールに番号を振り直さなくても、新しいルールを簡単に追加できるようになります。

  5. [Type] リストからルールを選択します。たとえば、HTTP のルールを追加するには、[HTTP] を選択します。すべての TCP トラフィックを許可するルールを追加するには、[All TCP] を選択します。これらのオプションの一部 (HTTP など) については、ポートが自動入力されます。表示されていないプロトコルを使用するには、[Custom Protocol Rule] を選択します。

  6. (オプション) カスタムプロトコルルールを作成する場合は、[Protocol] リストからプロトコルの番号または名前を選択します。詳細については、「プロトコル番号の IANA リスト」を参照してください。

  7. (オプション)選択したプロトコルにポート番号が必要な場合、ポート番号またはハイフンで区切ったポート番号の範囲(49152-65535 など)を入力します。

  8. インバウンドルールかアウトバウンドルールかに応じて、[Source] または [Destination] フィールドに、ルールを適用する CIDR の範囲を入力します。

  9. [Allow/Deny] リストから、指定したトラフィックを許可するには [ALLOW]、指定したトラフィックを拒否するには [DENY] を選択します。

  10. (オプション) 別のルールを追加するには、[Add another rule] を選択し、必要に応じてステップ 4~9 を繰り返します。

  11. 完了したら、[Save ] を選択します。

ネットワーク ACL からルールを削除するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [Network ACLs] を選択してから、ネットワーク ACL を選択します。

  3. 詳細ペインで、[Inbound Rules] タブまたは [Outbound Rules] タブを選択してから、[Edit] を選択します。削除するルールの [Remove] を選択し、[Save] を選択します。

サブネットをネットワーク ACL と関連付ける

ネットワーク ACL のルールを特定のサブネットに適用するには、サブネットをネットワーク ACL と関連付ける必要があります。ネットワーク ACL を複数のサブネットに関連付けることができます。ただし、サブネットに関連付けることができるネットワーク ACL は 1 つだけです。特定の ACL に関連付けられていないサブネットは、デフォルトでデフォルトのネットワーク ACL と関連付けられます。

サブネットをネットワーク ACL と関連付けるには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [Network ACLs] を選択してから、ネットワーク ACL を選択します。

  3. 詳細ペインの [Subnet Associations] タブで、[Edit] を選択します。ネットワーク ACL に関連付けるサブネットの [Associate] チェックボックスをオンにしてから、[Save] を選択します。

ネットワーク ACL とサブネットの関連付けの解除

サブネットからカスタムネットワーク ACL の関連付けを解除できます。サブネットがカスタムネットワーク ACL から関連付けが解除されると、そのサブネットはデフォルトのネットワーク ACL に自動的に関連付けられます。

サブネットとネットワーク ACL の関連付けを解除するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [Network ACLs] を選択してから、ネットワーク ACL を選択します。

  3. 詳細ペインの [Subnet Associations] タブを選択します。

  4. [Edit] を選択して、サブネットの [Associate] チェックボックスをオフにします。[Save] を選択します。

サブネットのネットワーク ACL の変更

サブネットに関連付けられているネットワーク ACL を変更できます。例えば、サブネットを作成すると、初期状態で、そのサブネットにはデフォルトのネットワーク ACL が関連付けられます。このサブネットには、作成したカスタムネットワーク ACL を関連付けることができます。

サブネットのネットワーク ACL を変更した後、サブネット内のインスタンスを終了して再起動する必要はありません。変更は短期間で有効になります。

サブネットのネットワーク ACL の関連付けを変更するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [Subnets] を選択し、サブネットを選択します。

  3. [Network ACL] タブを選択し、[Edit] を選択します。

  4. [Change to (変更する)] リストからサブネットを関連付けるネットワーク ACL を選択して、[Save (保存)] を選択します。

ネットワーク ACL の削除

ネットワーク ACL に関連付けられているサブネットがない場合にのみ、そのネットワーク ACL を削除できます。デフォルトのネットワーク ACL は削除できません。

ネットワーク ACL を削除するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインの [Network ACLs] を選択します。

  3. ネットワーク ACL を選択し、[Delete] を選択します。

  4. 確認ダイアログボックスで、[Yes, Delete] を選択します。

API とコマンドの概要

このページで説明しているタスクは、コマンドラインまたは API を使用して実行できます。コマンドラインインターフェイスの詳細および利用できる API の一覧については、「Amazon VPC へのアクセス」を参照してください。

VPC のネットワーク ACL を作成する

1 つまたは複数のネットワーク ACL について説明する

ルールをネットワーク ACL に追加する

ネットワーク ACL からルールを削除する

ネットワーク ACL の既存のルールを置換する

ネットワーク ACL の関連付けを置換する

ネットワーク ACL を削除する

例: サブネットのインスタンスへのアクセスの制御

この例では、サブネットのインスタンスは相互に通信でき、信頼されたリモートコンピュータからアクセス可能です。リモートコンピュータは、ローカルネットワーク内のコンピュータであるか、別のサブネットまたは VPC 内のインスタンスである可能性があります。これを使用して、インスタンスに接続し、管理タスクを実行します。セキュリティグループルールとネットワーク ACL ルールでは、リモートコンピュータの IP アドレス (172.31.1.2/32) からのアクセスを許可します。インターネットまたは他のネットワークからのその他のトラフィックはすべて拒否されます。


          セキュリティグループと NACL の使用

すべてのインスタンスは、以下のルールで同じセキュリティグループ (sg-1a2b3c4d) を使用します。

インバウンドルール
プロトコルタイプ プロトコル ポート範囲 送信元 コメント
すべてのトラフィック すべて すべて sg-1a2b3c4d 同じセキュリティグループに関連付けられたインスタンスがお互いに通信できるようにします。
SSH TCP 22 172.31.1.2/32 リモートコンピュータからのインバウンド SSH アクセスを許可します。インスタンスが Windows コンピュータである場合、このルールでは代わりにポート 3389 に RDP プロトコルを使用する必要があります。
アウトバウンドルール
プロトコルタイプ プロトコル ポート範囲 送信先 コメント
すべてのトラフィック すべて すべて sg-1a2b3c4d 同じセキュリティグループに関連付けられたインスタンスがお互いに通信できるようにします。セキュリティグループはステートフルです。したがって、インバウンドリクエストの応答トラフィックを許可するルールは必要ありません。

サブネットは、以下のルールがあるネットワーク ACL に関連付けられます。

インバウンドルール
ルール番号 タイプ プロトコル ポート範囲 送信元 許可/拒否 コメント
100 SSH TCP 22 172.31.1.2/32 許可 リモートコンピュータからのインバウンドトラフィックを許可します。インスタンスが Windows コンピュータである場合、このルールでは代わりにポート 3389 に RDP プロトコルを使用する必要があります。
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否 前のルールと一致しない他のすべてのインバウンドトラフィックを拒否します。
アウトバウンドルール
ルール番号 タイプ プロトコル ポート範囲 送信先 許可/拒否 コメント
100 カスタム TCP TCP 1024-65535 172.31.1.2/32 許可 リモートコンピュータに対するアウトバウンド応答を許可します。ネットワーク ACL はステートレスです。したがって、このルールは、インバウンドリクエストの応答トラフィックを許可するために必要です。
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否 前のルールと一致しない他のすべてのアウトバウンドトラフィックを拒否します。

このシナリオでは、インスタンスのセキュリティグループまたはセキュリティグループルールを変更し、防衛のバックアップレイヤーとしてネットワーク ACL を持つことができます。ネットワーク ACL ルールは、サブネット内のすべてのインスタンスに適用されます。誤ってセキュリティグループルールを過度に制限の低いものにした場合、ネットワーク ACL ルールは単一の IP アドレスからのアクセスのみを許可し続けます。たとえば、次のルールでは前のルールよりも制限が低くなり、すべての IP アドレスからのインバウンド SSH アクセスが許可されます。

インバウンドルール
タイプ プロトコル ポート範囲 送信元 コメント
すべてのトラフィック すべて すべて sg-1a2b3c4d 同じセキュリティグループに関連付けられたインスタンスがお互いに通信できるようにします。
SSH TCP 22 0.0.0.0/0 すべての IP アドレスからの SSH アクセスを許可します。
アウトバウンドルール
タイプ プロトコル ポート範囲 送信先 コメント
すべてのトラフィック すべて すべて 0.0.0.0/0 すべてのアウトバウンドトラフィックを許可します。

ただし、サブネット内の他のインスタンスおよびリモートコンピュータのみが、このインスタンスにアクセスできます。ネットワーク ACL ルールでは、リモートコンピュータからのものを除き、引き続きサブネットへのすべてのインバウンドトラフィックがブロックされます。

Amazon VPC コンソールで VPC ウィザードを使用して、Amazon VPC の一般的なシナリオを実装できます。ドキュメントの説明どおりにこのシナリオを実装した場合、デフォルトのネットワークアクセスコントロールリスト (ACL) を使用することになります。この場合、すべてのインバウンドトラフィックとアウトバウンドトラフィックが許可されます。セキュリティを強化する必要がある場合は、ネットワーク ACL を作成し、ルールを追加できます。詳細については、「 Amazon VPC コンソールウィザードの設定」を参照してください。