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

Virtual Private Cloud:ネットワーク ACL

最終更新日:May 27, 2026

ネットワーク ACL を使用すると、優先度付きの許可または拒否ルールを定義することで、vSwitch レベルでインバウンドおよびアウトバウンドトラフィックを制御できます。

仕組み

適用範囲

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

  1. ネットワーク ACL は、ECS、ECI、NLB インスタンスなど、ENI を使用するクラウドリソースのトラフィックを制御します。

    ApsaraDB RDS および CLB インスタンスは ENI を使用しないため、ネットワーク ACL は適用されません。RDS へのアクセスはホワイトリストで、CLB へのアクセスはアクセス制御ポリシーで制御されます。
    ENI 可視モードで EIP に関連付けられたセカンダリ ENI のトラフィックは、ネットワーク ACL では制御されません。
  2. PrivateLink トラフィックはインターフェイスエンドポイント ENI を通過し、ネットワーク ACL ルールの対象となります。

ルール評価メカニズム

  1. ルールは、優先度 1 から昇順に評価されます。各ルールは、IP バージョン、プロトコル、送信元または宛先アドレス、ポート範囲に基づいてトラフィックと照合します。最初に一致したルールの許可または拒否ポリシーが適用され、評価は終了します。

    インバウンドおよびアウトバウンドルールの両方において、ポート範囲は常にトラフィックの宛先ポートと照合されます。
    インバウンドルールは送信元アドレスにのみ適用され、アウトバウンドルールは宛先アドレスにのみ適用されます。単一のルールで送信元アドレスと宛先アドレスの両方を指定することはできません。
    拒否されたトラフィックはサイレントドロップされます。送信元には応答が返されず、タイムアウトまたは接続エラーが発生します。
  2. ネットワーク ACL ルールはステートレスです。インバウンドの許可ルールがあっても、戻りトラフィックが自動的に許可されることはありません。クライアントのエフェメラルポートへの応答を許可するためのアウトバウンドルールを作成する必要があります。クライアントは応答を受信するためにランダムにエフェメラルポートを選択します。

    すべてのクライアントタイプをサポートするには、エフェメラルポート範囲を 1024~65535 に設定してください。

    クライアントタイプ別のエフェメラルポート範囲

    クライアント

    エフェメラルポート範囲

    Linux

    32768~61000

    Windows Server 2003

    1025~5000

    Windows Server 2008 以降

    49152~65535

    NAT Gateway

    1024~65535

この例では、2 つのルールの CIDR ブロックが重複しています。HTTPS 経由で vSwitch にアクセスするクライアント 192.168.0.1 は、優先度 1 に一致し、拒否されます。クライアント 192.168.1.1 は優先度 2 に一致し、許可されます。戻りトラフィックは、アウトバウンドの優先度 1 ルールを通じてクライアントのエフェメラルポートに到達します。

多数のポートを開きながら特定のポートのみを拒否する場合は、拒否ルールに許可ルールよりも小さい優先度番号(高い優先度)を割り当ててください。

ネットワーク ACL とセキュリティグループの違い

項目

ネットワーク ACL

セキュリティグループ

適用範囲

vSwitch のインバウンドおよびアウトバウンドトラフィックを制御します。

1 つのインスタンスに複数のセキュリティグループを関連付けることができます。これらのルールを組み合わせて、インバウンドおよびアウトバウンドトラフィックを制御します。

ステートフル性

ステートレス:戻りトラフィックを許可するには、アウトバウンドルールを明示的に設定する必要があります。

ステートフル:アウトバウンドルールに関係なく、戻りトラフィックは自動的に許可されます。

ルール評価

ルールは優先度に基づいて評価され、最初に一致したルールが適用されます。

ルールは優先度に基づいて評価されます。同じ優先度のルールがある場合、拒否ルールが許可ルールより優先されます。

関連付け

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

ECS インスタンスには複数のセキュリティグループを関連付けることができます。

ルールのアドレス構成

インバウンドルールは送信元アドレスにのみ適用され、アウトバウンドルールは宛先アドレスにのみ適用されます。単一のルールで送信元アドレスと宛先アドレスの両方を指定することはできません。

インバウンドルールはトラフィックの送信元を指定し、アウトバウンドルールはトラフィックの宛先を指定します。

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

ネットワーク ACL を作成し、vSwitch に関連付けてトラフィックを制御します。

IPv4 専用 VPC 用のネットワーク ACL を作成すると、システムにより次のデフォルトのインバウンドおよびアウトバウンドルールが追加されます。

  • クラウドサービスルール:Alibaba Cloud DNS および ECS メタデータサービスへのアクセスを許可します。このルールは最高優先度を持ち、変更または削除はできません。

    1. デフォルト DNS サーバーアドレス:100.100.2.136 および 100.100.2.138(内部ドメイン名解決)。
    2. MetaServer アドレス:100.100.100.200(ECS インスタンスメタデータサービス)。
  • カスタムルール:同一 VPC 内の vSwitch 間の接続性を維持するために、すべての IPv4 トラフィックを許可します。vSwitch トラフィックを制御するには、カスタムルールを追加してください。

  • システムルール:他のルールと一致しないすべての IPv4 トラフィックを拒否します。このルールは最低優先度を持ち、変更または削除はできません。

VPC で IPv6 が有効になっている場合、システムにより双方向のすべての IPv6 トラフィックを許可するカスタムルールと、すべての IPv6 トラフィックを拒否するシステムルールも追加されます。

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

コンソール

ネットワーク ACL の作成

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

  2. VPCで、ネットワーク ACL に関連付ける vSwitch を含む VPC を選択します。

vSwitch の関連付け

ネットワーク ACL ID をクリックするか、操作列の管理をクリックします。バインド済みリソースタブで、vSwitch と関連付けるをクリックします。1 つ以上の vSwitch を選択し、OKをクリックします。vSwitch の関連付けを解除するには、このタブで対象の vSwitch の操作列のバインド解除をクリックします。

また、対象の vSwitch の詳細ページのネットワーク ACLセクションから、ネットワーク 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 = "cn-hangzhou"
}

# VPC ID を指定します。
variable "vpc_id" {
  default = "vpc-bp1k******" # ご利用の VPC ID に置き換えてください。
}

# vSwitch ID を指定します。
variable "vswitch_id" {
  default = "vsw-bp1y******" # ご利用の 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 を作成後、デフォルトルールによりすべてのトラフィックが許可または拒否されます。

  • vSwitch トラフィックを制御するには、カスタムルールを構成します。トラフィックがルールのプロトコルタイプIP バージョン送信元 IP アドレスまたは送信先 IP アドレス、およびポート範囲と一致すると、システムはアクションを適用します。

    • TCP(6)またはUDP(17)の場合、ポート範囲 (0~65535) を開始ポート/終了ポートの形式で指定します。-1/-1は使用しないでください。その他のプロトコルでは、ポート範囲はデフォルトで-1/-1(すべてのポート)になります。

    • IPv6 ルールを使用するには、VPC で IPv6 を有効にする必要があります。

    • ルールの変更は、関連付けられたすべての vSwitch に自動的に適用されます。

  • 頻繁に使用する CIDR ブロックをプレフィックスリストにまとめ、ネットワーク ACL ルールで参照します。プレフィックスリストを変更すると、参照しているすべてのルールが自動的に更新されます。

    • プレフィックスリストの最大エントリ数設定(実際のエントリ数ではありません)が、ネットワーク ACL ルールのクォータにカウントされます。クォータ内に収めるには、最大値を減らす、隣接する IP 範囲をマージする、または未使用のエントリを削除してください。

    • プレフィックスリストはリージョン固有であり、リージョン間で共有することはできません。1 つのプレフィックスリストに IPv4 と IPv6 の CIDR ブロックを混在させることはできません。

一般的なポート

ポート

サービス

説明

21

FTP

ファイルのアップロードおよびダウンロード。

22

SSH

Linux インスタンスへのリモートログイン(PuTTY、Xshell、SecureCRT)。

23

Telnet

ECS インスタンスへのリモートログイン。

25

SMTP

メールの送信。

53

DNS

名前解決。

80

HTTP

Web サービス(IIS、Apache、Nginx)。

110

POP3

メールの受信(POP3 プロトコル)。

143

IMAP

メールの受信(IMAP プロトコル)。

443

HTTPS

暗号化された Web トラフィック(HTTPS)。

1433

SQL Server

SQL Server TCP 通信。

1434

SQL Server

サービス検出のための SQL Server UDP ポート(TCP/IP ポートおよび IP アドレスのルックアップ)。

1521

Oracle

Oracle データベース通信。ECS インスタンスで Oracle SQL を実行する場合に必要です。

3306

MySQL

MySQL データベース通信。

3389

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

Windows インスタンスへのリモートデスクトップ接続。

8080

プロキシポート

WWWプロキシサービスでよく使用されます。アクセス URL にはポートサフィックスが必要です(例:IP アドレス:8080)。Apache Tomcat のデフォルトポートです。

137、138、139

NetBIOS プロトコル

Windows のファイルおよびプリンター共有(Samba)に使用されます。

  • UDP 137/138:ネットワーク近隣のファイル転送。

  • TCP 139:NetBIOS/SMB サービス接続。

1. カスタム DNS サーバーを含むDHCP オプションセットを構成する場合は、そのサーバーへのトラフィックを許可するインバウンドおよびアウトバウンドルールを追加してください。そうしないと、名前解決が失敗する可能性があります。
2. ロードバランサーを使用する場合は、リスナーポートのフォワーディングおよびヘルスチェックトラフィックをバックエンドサーバーに許可するルールを追加してください。

コンソール

対象のネットワーク ACL のインバウンドルールまたはアウトバウンドルールタブで、以下の手順に従ってカスタムルールを構成します。

ネットワーク ACL ルールはステートレスです。インバウンドの許可ルールには、戻りトラフィック用の対応するアウトバウンドルールが必要です。

ルールの追加

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

    • IPv4 ルールの追加またはIPv6 ルールの追加をクリックして、ルールを 1 つずつ構成します。

    • 同じルールを複数の CIDR ブロックに適用するには、ルールのクイック追加を選択し、優先度を設定して、ルールの挿入位置を指定します。

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

  • 一括インポート:提供されているテンプレートを使用して、インポートを行います。

    • テンプレートのすべてのフィールドは必須です。不完全なルールはインポートできません。

    • プレフィックスリストはサポートされていません。

    • インポートされたルールは、既存のルールの後に追加され、上書きされません。

ルールの並べ替え

インバウンドルールの管理またはアウトバウンドルールの管理をクリックし、ルールをドラッグして上下に移動させ、評価順序を調整します。

ルールの削除

対象のネットワーク ACL ルールの操作列で、削除をクリックします。

API

  • UpdateNetworkAclEntriesを呼び出して、ネットワーク ACL ルールを更新します。この API は完全置き換えを実行します。リクエストに含まれていない既存のルールはすべて削除されます。ルールを保持するには、API 呼び出しに含めてください。

  • CopyNetworkAclEntriesを呼び出して、あるネットワーク ACL のすべてのルールを別のネットワーク ACL にコピーします。両方の ACL は、IP バージョン構成が一致する VPC に属している必要があります。IPv4 専用 VPC のネットワーク ACL に IPv6 ルールを追加することはできません。IPv6 が有効な VPC にルールをコピーしても、デフォルトのすべての IPv6 トラフィックを許可するカスタムルールは追加されず、IPv6 通信が中断される可能性があります。

Terraform

この例では、インバウンドおよびアウトバウンドトラフィックの拒否ルールを追加します。アクセス制御ポリシーに合わせて調整してください。

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

# VPC ID を指定します。
variable "vpc_id" {
  default = "vpc-bp1k******" # ご利用の VPC の実際の ID に置き換えてください。
}

# vSwitch ID を指定します。
variable "vswitch_id" {
  default = "vsw-bp1y******" # ご利用の 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" # 送信元 CIDR ブロック 
    port                   = "20/80"       # ポート範囲
    policy                 = "drop"        # ポリシー
  }
  egress_acl_entries { # アウトバウンドルールを指定します。
    network_acl_entry_name = "example-egress"
    protocol               = "tcp"
    destination_cidr_ip    = "10.0.0.0/24" # 宛先 CIDR ブロック 
    port                   = "20/80"       # ポート範囲
    policy                 = "drop"        # ポリシー
  }
}

ネットワーク ACL ルールの例

異なる vSwitch 間の通信を制限

デフォルトでは、同一 VPC 内の vSwitch 間は自由に通信できます。ネットワーク ACL を使用して、特定の IP アドレスからのアクセスを拒否します。

この例では、vSwitch 1 のネットワーク ACL のインバウンドおよびアウトバウンドルールにより、そのインスタンスが ECS06 と通信できないようになっています。

特定の IP アドレスからのアクセスを許可

オンプレミスデータセンターが Express Connect を通じて VPC に接続されている場合、すべてのデータセンターリソースがクラウドサービスにアクセスできます。ネットワーク ACL を使用して、特定の IP アドレスのみを許可します。

この例では、ネットワーク ACL により、オンプレミスサーバー 1 および 2 のみが vSwitch インスタンスにアクセスできるようになっています。

詳細情報

課金

ネットワーク 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