すべてのプロダクト
Search
ドキュメントセンター

Virtual Private Cloud:ネットワーク ACL

最終更新日:Jan 24, 2026

ネットワークアクセスコントロールリスト (ACL) を使用して、vSwitch レベルでネットワークトラフィックを制御します。ネットワーク ACL は、インバウンドおよびアウトバウンドトラフィックに対してステートレスなフィルタリングを提供します。

仕組み

適用範囲

ネットワーク ACL は、関連付けられた vSwitch 内の Elastic Network Interface (ENI) にのみ適用されます。

  1. ネットワーク ACL は、ネットワーク通信に ENI を使用するクラウドリソースのトラフィックを制御します。ネットワーク ACL でサポートされるリソースとサポートされないリソースは次のとおりです。

    • サポート対象:Elastic Compute Service (ECS)、Elastic Container Instance (ECI)、Network Load Balancer (NLB) インスタンスなど。

    • サポート対象外:ApsaraDB RDS インスタンス (代わりにホワイトリストを使用)、CLB インスタンス (代わりにアクセス制御ポリシーを使用)、およびEIP 可視モードの EIP にバインドされたセカンダリ ENI。

  2. PrivateLink を介して Alibaba Cloud サービスにアクセスする場合、トラフィックはエンドポイント ENI を通過し、ネットワーク ACL ルールによって制御されます。

    image

ルールの仕組み

  • 優先度に基づくマッチング:ルールは優先度 1 から昇順で評価されます。

    トラフィックは、IP バージョン、プロトコル、送信元/宛先 IP アドレス、およびポート範囲に基づいてマッチングされます。トラフィックがルールに一致すると、指定された許可/拒否ポリシーが実行されます。

    インバウンドルールとアウトバウンドルールの両方で、ポート範囲は常にトラフィックの宛先ポートと一致します。

    ルールがトラフィックを拒否すると、パケットはクライアントに応答を送信せずにサイレントにドロップされ、接続タイムアウトまたは失敗が発生します。

  • ステートレスな動作セキュリティグループとは異なり、ネットワーク ACL はステートレスです。

    インバウンドトラフィックを許可しても、対応する戻りトラフィックが自動的に許可されるわけではありません。応答を許可するには、アウトバウンドルールを作成する必要があります。

    クライアントがサーバーに接続すると、ランダムなエフェメラルポートを使用して応答を受信します。幅広いクライアント互換性を確保するために、アウトバウンドルールでエフェメラルポートの範囲を 1024/65535 に設定することを推奨します。

    さまざまなクライアントタイプのエフェメラルポート範囲

    クライアント

    エフェメラルポート範囲

    Linux

    32768/61000

    Windows Server 2003

    1025/5000

    Windows Server 2008 以降

    49152/65535

    NAT Gateway

    1024/65535

アドレス範囲が重複する設定を考えます。192.168.0.1 のクライアントが HTTPS アクセスを試みると、最初に優先度 1 の拒否ルールに一致してブロックされる可能性があります。逆に、192.168.1.1 のクライアントはそのルールをバイパスし、優先度 2 の許可ルールに一致する可能性があります。その後、戻りトラフィックは優先度 1 のアウトバウンドルールに従って許可されます。

ベストプラクティスサービスが広範囲のオープンポートを必要とするが、特定のポートをブロックする必要がある場合は、拒否ルールに、広範な許可ルールよりも高い優先度 (小さい数値) を割り当てるようにしてください。

セキュリティグループとの違い

項目

ネットワーク ACL

セキュリティグループ

適用範囲

vSwitch のトラフィックを制御します。

ECS インスタンスのアクセスを制御します。インスタンスが複数のセキュリティグループに関連付けられている場合、すべてのルールが処理されてからトラフィックが通過できるかどうかが決定されます。

ステートフル性

ステートレス。戻りトラフィックは許可する必要があります。

ステートフル。戻りトラフィックは自動的に許可されます。

ルールの評価

厳密な優先度:ルールは優先度の昇順で評価されます。最初に一致したルールがアクションを決定します。

優先度とポリシー:ルールはまず優先度でソートされます。優先度が同じ場合、拒否ルールが許可ルールよりも優先されます。

関連付け

vSwitch は一度に 1 つのネットワーク ACL にのみ関連付けることができます。

ECS インスタンスは複数のセキュリティグループに追加できます。

ネットワーク ACL の作成/削除

ネットワーク ACL を作成し、vSwitch に関連付けてインバウンドおよびアウトバウンドトラフィックをフィルタリングします。

デフォルトルール

ネットワーク ACL を作成すると、システムはインバウンドおよびアウトバウンド方向のデフォルトルールを自動的に追加します。

  • IPv4 CIDR ブロックのみを持つ VPC の場合:

    • クラウドサービスルール (最高優先度):このルールは変更または削除できません。これにより、以下へのアクセスが保証されます:

      • Alibaba Cloud DNS サーバー:内部ドメイン名の名前解決のための IP 100.100.2.136 および 100.100.2.138。

      • ECS メタデータ:インスタンスメタデータを取得するための IP 100.100.100.200。

    • カスタムルール (デフォルトで許可):すべての IPv4 トラフィックを許可し、新しいネットワーク ACL が同じ VPC 内の vSwitch 間のプライベートネットワーク通信を中断するのを防ぎます。必要に応じてカスタムルールを変更または追加して、トラフィックを制限します。

    • システムルール (最低優先度):他のどのルールにも一致しないすべての IPv4 トラフィックを拒否します。これは、変更または削除できない包括的な拒否ルールです。

  • IPv6 が有効な VPC の場合:

    • すべての IPv6 トラフィックを許可する追加のカスタムルール。

    • すべての IPv6 トラフィックを拒否する追加のシステムルール。

関連付けの制限

  • ネットワーク ACL は、同じ VPC 内の vSwitch にのみ関連付けることができます。

  • 各 vSwitch は、一度に 1 つのネットワーク ACL にのみ関連付けることができます。

コンソール

ネットワーク ACL の作成

  1. VPC コンソール - ネットワーク ACL ページに移動します。上部のナビゲーションバーでリージョンを選択し、ネットワーク ACL の作成 をクリックします。

  2. ネットワーク ACL に関連付ける予定の vSwitch を含む対象の [VPC] を選択します。

vSwitch の関連付け

  1. インスタンス ID をクリックするか、[操作] 列の [管理] をクリックします。

  2. [関連リソース] タブで、[vSwitch の関連付け] をクリックします。1 つ以上の vSwitch を選択し、[OK] をクリックします。

この制御を解除するには、対象の vSwitch の [操作] 列にある [バインド解除] をクリックします。

vSwitch の詳細ページの [ネットワーク ACL] セクションで、ネットワーク ACL の関連付け、置き換え、またはバインド解除を行うこともできます。

ネットワーク ACL の削除

すべての vSwitch の関連付けが解除されていることを確認してください。対象のネットワーク ACL の [操作] 列で、[削除] をクリックします。

API

  • CreateNetworkAcl を呼び出してネットワーク ACL を作成します。

  • AssociateNetworkAcl を呼び出してネットワーク ACL を vSwitch に関連付けます。

  • UnassociateNetworkAcl を呼び出してネットワーク ACL を vSwitch からバインド解除します。

  • DeleteNetworkAcl を呼び出してネットワーク ACL を削除します。

Terraform

コンソールとは異なり、Terraform ではネットワーク ACL を 1 つの vSwitch にのみ関連付けることができます。
リソース:alicloud_network_acl
# ネットワーク ACL のリージョンを指定します。
provider "alicloud" {
  region = "ap-southeast-1"
}

# VPC ID を指定します。
variable "vpc_id" {
  default = "vpc-t41k******" # 値を実際の VPC ID に置き換えます。
}

# vSwitch ID を指定します。
variable "vswitch_id" {
  default = "vsw-t41y******" # 値を実際の vSwitch ID に置き換えます。
}

# ネットワーク ACL を作成し、vSwitch に関連付けます。
resource "alicloud_network_acl" "example_network_acl" {
  vpc_id           = var.vpc_id # ネットワーク ACL が属する VPC を指定します。
  network_acl_name = "example_network_acl_name"
  resources {
    resource_id   = var.vswitch_id # ネットワーク ACL を関連付ける vSwitch を指定します。
    resource_type = "VSwitch"
  }
}

ネットワーク ACL ルールの設定

ネットワーク ACL を作成すると、デフォルトルールが自動的に適用されます。カスタムルールを追加して、プロトコル、IP バージョン、送信元/宛先 IP アドレス、およびポート範囲に基づいてトラフィックを正確にフィルタリングできます。ルールの変更は、関連付けられているすべての vSwitch に即座に適用されます。

ポート設定

  • TCP(6) または UDP(17):ポート範囲を 0 から 65535 の間で調整します。First Port/Last Port の形式で設定します。ポート制限なしを意味する -1/-1 には設定できません。

  • その他のプロトコル:ポート範囲は設定できず、デフォルトで -1/-1 になります。

一般的なポート

ポート

サービス

説明

21

FTP

ファイルのアップロードとダウンロードに使用される FTP サービスのポート。

22

SSH

コマンドラインまたは PuTTY、Xshell、SecureCRT などのリモート接続ソフトウェアを使用して Linux インスタンスに接続するために使用される SSH ポート。

23

Telnet

ECS インスタンスへの Telnet リモートログインに使用される Telnet ポート。

25

SMTP

メールの送信に使用される SMTP サービスのポート。

53

DNS

これはドメインネームシステム (DNS) プロトコルに適用されます。

80

HTTP

IIS、Apache、Nginx などの HTTP サービスがアクセスを提供するためのポート。

110

POP3

これはメール受信プロトコルである POP3 用です。

143

IMAP

メールの受信に使用されるインターネットメッセージアクセスプロトコル (IMAP) のポート。

443

HTTPS

HTTPS サービスがアクセスを提供するためのポート。HTTPS は、安全なポートを介して暗号化と送信を提供するプロトコルです。

1433

SQL Server

SQL Server が外部サービスを提供するための TCP ポート。

1434

SQL Server

SQL Server が使用する TCP/IP ポート番号や IP アドレスなどの情報を取得するために使用される SQL Server の UDP ポート。

1521

Oracle

Oracle の通信ポート。Oracle SQL が ECS インスタンスにデプロイされている場合、このポートを許可する必要があります。

3306

MySQL

MySQL データベースが外部サービスを提供するためのポート。

3389

Windows Server リモートデスクトップサービス

Windows Server リモートデスクトップサービスのポート。このポートを使用して、ソフトウェアを使用して Windows インスタンスに接続できます。

8080

プロキシポート

ポート 80 と同様に、ポート 8080 は通常、Web ブラウジング用の WWW プロキシサービスを提供するために使用されます。ポート 8080 を使用する場合、Web サイトにアクセスしたりプロキシサーバーを使用したりするときに、IP アドレスの後にコロン (:) と 8080 を追加する必要があります。例:IP アドレス:8080。Apache Tomcat サービスをインストールすると、デフォルトのサービスポートは 8080 になります。

137、138、および 139

NetBIOS プロトコル

NetBIOS プロトコルは、Windows のファイル共有やプリンター共有、Samba で一般的に使用されます。

  • UDP ポート 137 と 138 は、通常、ネットワークネイバーフッド経由でファイルが転送される際の通信に使用されます。

  • 接続は、ポート 139 を介して NetBIOS/SMB サービスを取得しようとします。

重要な設定

  • DHCP オプションセット:DHCP オプションセットを設定する場合、名前解決エラーを防ぐために、指定された DNS サーバーを許可するインバウンドおよびアウトバウンドルールを追加する必要があります。

  • ロードバランサー:ロードバランサーを使用する場合、リスナーのトラフィックとヘルスチェックリクエストの両方がバックエンドサーバーに到達できるようにするルールを追加する必要があります。

プレフィックスリストの使用

頻繁に使用する CIDR ブロックをプレフィックスリストにグループ化することで、管理を簡素化できます。

  • 更新:プレフィックスリストを変更すると、それを参照しているすべての ACL ルールが自動的に更新されます。

  • ルールクォータ:ルールクォータは、実際に使用されているエントリ数ではなく、プレフィックスリストの最大エントリ数に基づいて計算されます。クォータを節約するには、最大容量を減らすか、未使用のエントリを削除してください。

  • 制約:プレフィックスリストはリージョン固有であり、リージョン間で共有することはできません。単一のリストに IPv4 と IPv6 の両方のアドレスを含めることはできません。

コンソール

対象のネットワーク ACL の [インバウンドルール] タブまたは [アウトバウンドルール] タブで、次の手順に従ってカスタムルールを設定できます。

ネットワーク ACL ルールはステートレスであるため、特定のトラフィックが vSwitch に入ることを許可するインバウンドルールを設定した場合は、対応するアウトバウンドルールを設定する必要があります。

ルールの追加

  • 手動設定:対象のネットワーク ACL の [インバウンドルール] タブまたは [アウトバウンドルール] タブで、[インバウンドルールの管理] または [アウトバウンドルールの管理] をクリックします。

    • 単一ルール:[IPv4 ルールの追加] または [IPv6 ルールの追加] をクリックして、ルールを 1 つずつ設定します。

    • プレフィックスリストの使用:頻繁に使用する IP アドレスの CIDR ブロックをプレフィックスリストで管理した後、[IPv4 ルールの追加] または [IPv6 ルールの追加] をクリックし、[IP バージョン][VPC プレフィックスリスト] に設定し、プレフィックスリストを [送信元アドレス] または [宛先アドレス] として選択します。

    • クイック追加 (複数 CIDR):同じポリシーを複数の CIDR ブロックに同時に適用するには、[ルールのクイック追加] を選択し、[優先度] を設定してルールが挿入される位置を指定します。

  • バッチインポート:ポリシーを持つルールをバッチで追加するには、提供されたテンプレートを使用して [ルールのインポート] を行います。

    • テンプレートに記載されているすべてのパラメーターを入力してください。パラメーターが欠落しているルールはインポートできません。

    • プレフィックスリストはバッチインポートで参照できません

    • 正常にインポートされたルールは、既存のルールに基づいて順次追加され、既存のルールを上書きしません。

ルールの並べ替え

[インバウンドルールの管理] または [アウトバウンドルールの管理] をクリックし、ルールをドラッグして優先度を調整します。

ルールの削除

対象のネットワーク ACL ルールの [操作] 列にある [削除] をクリックします。

API

  • UpdateNetworkAclEntries を呼び出してネットワーク ACL ルールを更新します。コンソールとは異なり、この API は ACL ルールのフルアップデートを実行します。新しいルールのみが渡された場合、元のルールは削除されます。保持する必要があるすべてのルールを渡す必要があります。

  • CopyNetworkAclEntries を呼び出して、あるネットワーク ACL から別のネットワーク ACL にルールをコピーします。

    すべてのルールが正しく識別され、受信されることを保証するために、両方の VPC が IPv4 CIDR ブロックのみを持つか、両方とも IPv6 が有効になっていることを確認してください。IPv6 が有効になっていない VPC のネットワーク ACL は、IPv6 ルールを設定できません。

    IPv6 が有効な VPC のネットワーク ACL にルールをコピーした後、システムはすべての IPv6 トラフィックを許可するカスタムルールを自動的に追加しないため、IPv6 通信に影響を与える可能性があります。

Terraform

この例では、インバウンドとアウトバウンドの両方向に拒否ルールを追加します。ご利用のアクセス制御ポリシーに従ってルールを変更してください。

リソース:alicloud_network_acl
# ネットワーク ACL のリージョンを指定します。
provider "alicloud" {
  region = "ap-southeast-1"
}

# VPC ID を指定します。
variable "vpc_id" {
  default = "vpc-t41k******" # 値を実際の VPC ID に置き換えます。
}

# vSwitch ID を指定します。
variable "vswitch_id" {
  default = "vsw-t41y******" # 値を実際の vSwitch ID に置き換えます。
}

# ネットワーク ACL を作成し、vSwitch に関連付けます。
resource "alicloud_network_acl" "example_network_acl" {
  vpc_id           = var.vpc_id # ネットワーク ACL が属する VPC を指定します。
  network_acl_name = "example_network_acl_name"
  resources {
    resource_id   = var.vswitch_id # ネットワーク ACL を関連付ける vSwitch を指定します。
    resource_type = "VSwitch"
  }
  ingress_acl_entries { # インバウンドルールを指定します。
    network_acl_entry_name = "example-ingress"
    protocol               = "tcp"         # プロトコルタイプ。
    source_cidr_ip         = "10.0.0.0/24" # 送信元アドレス。
    port                   = "20/80"       # ポート範囲。
    policy                 = "drop"        # ポリシー。
  }
  egress_acl_entries { # アウトバウンドルールを指定します。
    network_acl_entry_name = "example-egress"
    protocol               = "tcp"
    destination_cidr_ip    = "10.0.0.0/24" # 宛先アドレス。
    port                   = "20/80"       # ポート範囲。
    policy                 = "drop"        # ポリシー。
  }
}

異なる vSwitch 内の ECS インスタンス間の通信を制限する

デフォルトでは、同じ VPC 内の異なる vSwitch にあるリソースは、プライベートネットワークを介して通信できます。それらの通信を制限するには、ネットワーク ACL を使用して特定の IP アドレスからのアクセスを拒否します。

図に示すように、vSwitch 1 に関連付けられたネットワーク ACL のインバウンドおよびアウトバウンドルールを設定して、vSwitch 1 内のインスタンスが ECS06 と通信できないようにすることができます。

image

特定の IP のみにアクセスを制限する

Express Connect を使用してオンプレミスのデータセンターを VPC に接続すると、データセンター内のすべてのリソースがクラウドサービスにアクセスできます。ネットワーク ACL を使用して、特定の IP アドレスからのアクセスのみを許可し、他のすべてのアクセスを拒否します。

図に示すように、vSwitch に関連付けられたネットワーク ACL のインバウンドおよびアウトバウンドルールを設定して、オンプレミスのサーバー 1 とサーバー 2 のみが vSwitch 内のインスタンスにアクセスできるようにすることができます。

image

トラブルシューティング

接続タイムアウト、予期しないトラフィックのブロック、または IPv6 接続の問題が発生した場合は、次のチェックリストに従ってください:

  1. ルールのロジックと優先度の検証

    • ルールのシャドウイングの確認:ルールは優先度 1 から昇順で評価されるため、優先度の高い拒否ルールが許可ルールを上書きしていないことを確認してください。

    • 戻りトラフィックの設定:クライアントのエフェメラルポート (通常は 1024-65535) へのトラフィックを許可するアウトバウンドルールを追加します。インバウンドの許可ルールは、戻りトラフィックを自動的に許可しません。

  2. 関連付けと範囲の確認

    • vSwitch の関連付け:ネットワーク ACL が対象の vSwitch に正しくバインドされていることを確認します。

    • IPv6 設定:IPv4 ルールは IPv6 トラフィックには適用されません。VPC で IPv6 が有効になっていること、vSwitch に有効な IPv6 CIDR があること、および特定の IPv6 ルールが設定されていることを確認してください。

  3. 外部依存関係の確認

    • セキュリティグループの競合:トラフィックは、ネットワーク ACL (vSwitch レベル) とセキュリティグループ (インスタンスレベル) の両方で許可されている必要があります。どちらかがトラフィックを拒否すると、接続は失敗します。

    • CIDR の正確性:送信元および宛先の CIDR ブロックを確認します。

詳細情報

課金

ネットワーク ACL 機能は無料です。

サポートされているリージョン

エリア

リージョン

アジアパシフィック - 中国

中国 (杭州)中国 (上海)中国 (南京-ローカルリージョン、提供終了)中国 (青島)中国 (北京)中国 (張家口)中国 (フフホト)中国 (ウランチャブ)中国 (深セン)中国 (河源)中国 (広州)中国 (成都)中国 (香港)中国 (武漢 - ローカルリージョン)、および 中国 (福州-ローカルリージョン、提供終了)

アジアパシフィック - その他

日本 (東京)韓国 (ソウル)シンガポールマレーシア (クアラルンプール)インドネシア (ジャカルタ)フィリピン (マニラ)、および タイ (バンコク)

ヨーロッパ & アメリカ

ドイツ (フランクフルト)イギリス (ロンドン)米国 (シリコンバレー)米国 (バージニア)、および メキシコ

中東

UAE (ドバイ) および サウジアラビア (リヤド - パートナー運営)

クォータ

クォータ名

説明

デフォルトの制限

クォータの引き上げ

vpc_quota_nacl_ingress_entry

ネットワーク ACL に作成できるインバウンドルールの数。

ネットワーク ACL が属する VPC で IPv6 が有効になっている場合、作成できる IPv4 および IPv6 インバウンドルールのデフォルト数は 20 です。

20

クォータ管理ページまたはクォータセンターに移動して、クォータの引き上げをリクエストします。

vpc_quota_nacl_egress_entry

ネットワーク ACL に作成できるアウトバウンドルールの数。

ネットワーク ACL が属する VPC で IPv6 が有効になっている場合、作成できる IPv4 および IPv6 インバウンドルールのデフォルト数は 20 です。

20

nacl_quota_vpc_create_count

VPC に作成できるネットワーク ACL の数。

20