プレフィックスリストを使用すると、頻繁に使用する IP アドレス範囲を管理できます。プレフィックスリストは、ご自身のアカウントまたは他のアカウントのセキュリティグループルールやルートで参照できます。プレフィックスリストを変更すると、その変更は参照しているすべてのリソースに自動的に適用されます。
プレフィックスリストの一般的な利用シーンは次のとおりです。
企業のアウトバウンド IP アドレスの一元管理:企業がパブリックネットワーク経由で複数の Elastic Compute Service (ECS) インスタンスにアクセスする必要がある場合があります。従来の方法では、企業の送信元 IP アドレスを各 ECS インスタンスのセキュリティグループルールに追加します。しかし、企業の送信元 IP アドレスは頻繁に変更される可能性があります。変更のたびに、すべての ECS インスタンスのセキュリティグループルールを手動で更新する必要があり、これは複雑でエラーが発生しやすいプロセスです。プレフィックスリストを使用してアウトバウンド IP アドレスを管理すると、プレフィックスリストを更新するだけで済みます。プレフィックスリストを参照するすべてのセキュリティグループルールが自動的に更新されます。これにより、構成と管理の効率が向上します。
パートナーの IP アドレス範囲の一元的なメンテナンス:サービスがパートナーの IP アドレス範囲と通信する必要がある場合、通常は異なるルートテーブルに同じルートを追加します。プレフィックスリストを使用すると、パートナーの IP アドレス範囲を一元管理し、冗長な構成を回避できます。パートナーの IP アドレス範囲が変更された場合、プレフィックスリストを編集するだけで済みます。プレフィックスリストを参照するすべてのルートテーブルが自動的に更新されます。これにより、ネットワークのスケーラビリティとメンテナンスが容易になります。
制限事項
ゲートウェイルートテーブルと Basic Edition のトランジットルーターは、プレフィックスリストを参照できません。
プレフィックスリストはリージョナルなリソースです。作成されたリージョン内でのみ参照および共有できます。
プレフィックスリストには、IPv4 と IPv6 の CIDR (Classless Inter-Domain Routing) ブロックを両方含めることはできません。
プレフィックスリストを作成する際に、最大エントリ数を設定する必要があります。
プレフィックスリストが参照されると、それを参照するリソースのクォータを消費します。Virtual Private Cloud (VPC) ルートテーブルと ECS セキュリティグループの場合、消費されるクォータはプレフィックスリストの最大エントリ数に基づきます。Transit Router (TR) ルートテーブルの場合、消費されるクォータはプレフィックスリストの実際のエントリ数に基づきます。たとえば、最大エントリ数 50、実際のエントリ数 20 のプレフィックスリストを作成した場合、このプレフィックスリストを VPC ルートテーブルまたはセキュリティグループで参照すると、50 個のルートまたは 50 個のセキュリティグループルールのクォータが消費されます。TR ルートテーブルで参照すると、20 個のルートのクォータが消費されます。
あるリージョンで Alibaba Cloud サービスのゲートウェイエンドポイントを初めて作成すると、システムはサービスの IP アドレス CIDR ブロックを含むシステムプレフィックスリストを自動的に作成します。その後、システムはこのプレフィックスリストを参照するルートを VPC ルートテーブルに追加し、ゲートウェイエンドポイントをネクストホップとして設定します。このルートにより、VPC はゲートウェイエンドポイントを介して Alibaba Cloud サービスにアクセスできます。このシステムプレフィックスリストを参照、変更、削除、または共有することはできません。コンソールでは、[オーナー] は ALIYUN/System Account です。
プレフィックスリストの管理
コンソール
プレフィックスリストの作成
VPC コンソールで、VPC プレフィックスリストページに移動します。メニューバーの左上隅で [リージョン] を選択し、[VPC プレフィックスリストの作成] をクリックします。
[VPC プレフィックスリストの作成] パネルで、以下のように設定します。
[IP バージョン] を選択します:IPv4 または IPv6。
[最大エントリ数] を設定できます。この値は VPC ルートテーブルとセキュリティグループのクォータに対してカウントされ、作成後に変更できます。
たとえば、プレフィックスリストに 20 個のエントリしか含まれていない場合でも、[最大エントリ数] を 50 に設定すると、VPC ルートテーブルまたはセキュリティグループで参照されたときに、プレフィックスリストは 50 個のルートまたは 50 個のセキュリティグループルールのクォータを消費します。
単一の VPC ルートテーブルにおけるカスタムルートのデフォルトクォータは 200 です。単一のセキュリティグループにおけるルールのデフォルトクォータは 200 です。
[プレフィックスリストエントリ] を追加するには、[エントリを 1 つずつ追加]、[エントリを一括で追加]、または [他のプレフィックスリストからクローン] を使用できます。リージョンをまたいでエントリをクローンできますが、共有またはシステムのプレフィックスリストからはクローンできません。
エントリの追加または削除
対象のプレフィックスリストの [エントリ] タブで、以下のように操作します。
エントリを追加するには、[VPC プレフィックスリストエントリの作成] をクリックします。
単一のエントリを削除するには、[操作] 列の [削除] をクリックします。複数のエントリを削除するには、それらを選択して [一括削除] をクリックします。
プレフィックスリストを参照するリソースの表示
対象のプレフィックスリストの詳細ページで、[関連付け] タブをクリックします。
プレフィックスリストの削除
プレフィックスリストを削除するには、[操作] 列またはプレフィックスリストの詳細ページで [削除] をクリックします。
プレフィックスリストを削除する前に、他のリソースによって参照されたり、共有されたりしていないことを確認してください。
API
CreateVpcPrefixList を呼び出してプレフィックスリストを作成します。
ModifyVpcPrefixList を呼び出してエントリを追加または削除します。
GetVpcPrefixListAssociations を呼び出して、プレフィックスリストを参照するリソースを表示します。
DeleteVpcPrefixList を呼び出してプレフィックスリストを削除します。
プレフィックスリストを削除する前に、他のリソースによって参照されたり、共有されたりしていないことを確認してください。
Terraform
リソース: alicloud_vpc_prefix_list
# リージョンを指定
provider "alicloud" {
region = "cn-hangzhou"
}
# プレフィックスリストを作成
resource "alicloud_vpc_prefix_list" "example_pl" {
prefix_list_name = "example_pl_name"
ip_version = "IPV4" # IP バージョン
max_entries = 50 # 最大エントリ数
entrys {
cidr = "10.0.1.0/24" # エントリ 1
}
entrys {
cidr = "10.0.2.0/24" # エントリ 2
}
}プレフィックスリストの参照
VPC ルートテーブル、TR ルートテーブル、または ECS セキュリティグループでプレフィックスリストを参照できます。プレフィックスリストのエントリを変更すると、プレフィックスリストを参照するリソースが自動的に更新されます。これにより、構成効率が向上します。
VPC ルートテーブルでの参照
VPC ルートテーブルにカスタムルートを追加する際に、プレフィックスリストを参照できます。次の点にご注意ください:
VPC 内の既存のルートとの競合を避けてください。競合が発生した場合、プレフィックスリストを参照できません。プレフィックスリストを参照した後に競合が発生した場合は、「参照後のエントリ競合の解決」をご参照ください。
VPC ルートテーブルのカスタムルートクォータを消費するのは、実際のエントリ数ではなく、プレフィックスリストの最大エントリ数です。最大エントリ数を減らす、隣接する IP 範囲をマージする、または未使用のエントリを削除することで、クォータ超過のリスクを軽減できます。
コンソール
ルートテーブルの詳細ページに移動します。 タブで、[ルートエントリの追加] をクリックして、次のパラメーターを設定します:
[宛先 CIDR ブロック]:左側のドロップダウンリストから [VPC プレフィックスリスト] を選択し、右側で対象のプレフィックスリストを選択します。
[ネクストホップタイプ]:タイプとそれに対応するインスタンスを選択します。
API
CreateRouteEntry を呼び出し、DestinationCidrBlock パラメーターをプレフィックスリストのインスタンス ID に設定します。
Terraform
リソース: alicloud_route_entry
# リージョンを指定
provider "alicloud" {
region = "cn-hangzhou"
}
# 宛先がプレフィックスリストである VPC ルートを追加
resource "alicloud_route_entry" "example" {
route_table_id = "vtb-bp1pa1mwgfd6rqxfxxxxx" # VPC ルートテーブル ID
destination_cidrblock = "pl-bp1fnjzxkk2m6qrwxxxxx" # 宛先 CIDR ブロック。プレフィックスリスト ID を入力します。
nexthop_type = "Ecr" # ネクストホップタイプ
nexthop_id = "ecr-assoc-stwhaft9a371nxxxxx" # ネクストホップインスタンス ID
}TR ルートテーブルでの参照
Enterprise Edition のトランジットルーターのルートテーブルでプレフィックスリストを参照できます。プレフィックスリストを参照すると、システムはプレフィックスリスト内のすべての CIDR ブロックのルートを TR ルートテーブルに自動的に追加します。次の点にご注意ください:
トランジットルーターでルート同期が有効になっている場合、システムはプレフィックスリストに対応するルートを他のネットワークインスタンスに自動的に伝播します。
プレフィックスリストに対応するルートは、TR ルートテーブル内の既存のルートと競合してはなりません。ルート競合が発生するかどうかの判断方法については、「ルートの互換性」をご参照ください。競合が発生した場合、プレフィックスリストを参照できません。プレフィックスリストを参照した後に競合が発生した場合は、「参照後のエントリ競合の解決」をご参照ください。
TR ルートテーブルのルートクォータを消費するのは、プレフィックスリストの実際のエントリ数です。隣接する IP 範囲をマージするか、未使用のエントリを削除することで、クォータ超過のリスクを軽減できます。
コンソール
プレフィックスリストのアタッチ
対象の TR ルートテーブルの詳細ページに移動します。[ルートプレフィックス] タブに切り替え、[ルートプレフィックスのアタッチ] をクリックします:
[ルートプレフィックス ID]:参照するプレフィックスリストの ID。
ブラックホールルート:
[はい]:プレフィックスリストに一致するトラフィックを破棄します。
[いいえ]:システムはプレフィックスリストに一致するトラフィックを [ネクストホップ接続] に転送します。
プレフィックスリストに対応するルートのフィルタリング
対象の TR ルートテーブルの詳細ページで、[ルート] タブに移動し、[ルートプレフィックス ID] でフィルタリングして、プレフィックスリストからのルートを表示します。
プレフィックスリストのデタッチ
プレフィックスリストをデタッチすると、システムは Enterprise Edition TR ルートテーブルから関連するすべてのルートを自動的に取り消します。ネットワークの中断を防ぐため、プレフィックスリストをデタッチする前に、サービストラフィックを移行したことを確認してください。
対象の TR ルートテーブルの [基本情報] ページに移動し、[ルートプレフィックス] タブをクリックします。対象のプレフィックスリストを見つけ、[操作] 列の [削除] をクリックします。
API
プレフィックスリストのアタッチ:CreateTransitRouterPrefixListAssociation を呼び出して、Enterprise Edition のトランジットルーターのルートテーブルでプレフィックスリストを参照します。
プレフィックスリストに対応するルートのフィルタリング:ListTransitRouterPrefixListAssociation を呼び出します。応答で、
PrefixListIdによってプレフィックスリストを通じて追加されたルートをフィルタリングします。プレフィックスリストの削除:DeleteTransitRouterPrefixListAssociation を呼び出して、Enterprise Edition のトランジットルーターのルートテーブルで参照されているプレフィックスリストを削除します。
Terraform
リソース: alicloud_cen_transit_router_prefix_list_association
# リージョンを指定
provider "alicloud" {
region = "cn-hangzhou"
}
# Cloud Enterprise Network (CEN) インスタンスのトランジットルーターでプレフィックスリストを参照
resource "alicloud_cen_transit_router_prefix_list_association" "example" {
prefix_list_id = "pl-bp1fnjzxkk2m6qrwxxxxx" # プレフィックスリスト ID
transit_router_id = "tr-bp1czv20pflygguoxxxxx" # トランジットルーター ID
transit_router_table_id = "vtb-bp1v7079o4dwrkgpxxxxx" # トランジットルータールートテーブル ID
next_hop_type = "BlackHole" # ネクストホップタイプ
next_hop = "BlackHole" # ネクストホップインスタンス ID
}ECS セキュリティグループでの参照
インバウンドまたはアウトバウンドのセキュリティグループルールを設定する際に、プレフィックスリストを参照できます。
コンソール
たとえば、インバウンドのセキュリティグループルールを追加するには、ECS コンソールでセキュリティグループの詳細ページに移動します。[アクセスルール] の [インバウンド] タブで、[ルールの追加] をクリックして、次のパラメーターを設定します:
[ソース]:左側のドロップダウンリストから [プレフィックスリスト] を選択し、右側のリストから対象のプレフィックスリストを選択します。
必要に応じて他の項目を設定します。
API
AuthorizeSecurityGroup を呼び出して、インバウンドのセキュリティグループルールを追加します。
SourcePrefixListIdパラメーターをプレフィックスリスト ID に設定します。AuthorizeSecurityGroupEgress を呼び出して、アウトバウンドのセキュリティグループルールを追加します。
DestPrefixListIdパラメーターをプレフィックスリスト ID に設定します。
Terraform
リソース: alicloud_security_group、alicloud_security_group_rule
# リージョンを指定
provider "alicloud" {
region = "cn-hangzhou"
}
# セキュリティグループを指定
resource "alicloud_security_group" "sg_example" {
security_group_name = "sg_example_name"
vpc_id = "vpc-bp1d00iurwfx3pcxxxxx" # VPC ID
}
# セキュリティグループルールを作成する際にプレフィックスリストを参照
resource "alicloud_security_group_rule" "sg_rule_pl_example" {
security_group_id = alicloud_security_group.sg_example.id
type = "ingress"
ip_protocol = "tcp"
policy = "accept"
port_range = "8080/8080"
prefix_list_id = "pl-bp1fnjzxkk2m6qrxxxxxx" # VPC プレフィックスリスト ID
}参照後のエントリ競合の解決
VPC ルートテーブルまたは TR ルートテーブルでプレフィックスリストを参照した後、プレフィックスリストへの変更がルートテーブル内の既存のエントリと競合する場合、最新の変更は有効になりません。
プレフィックスリストの [関連付け] タブで、競合の詳細を表示できます。競合のある参照リソースの [ステータス] は [最新バージョンに関連付けられていません] となります。この [ステータス] にカーソルを合わせると、競合するエントリの [ErrorMessage] を表示できます。
次のいずれかの方法で競合を解決できます:
操作を実行する前に、変更したいルートエントリがサービスに影響を与えないことを確認してください。
プレフィックスリストの変更:プレフィックスリストから競合するエントリを削除します。削除後、システムはプレフィックスリストを自動的に参照しているすべてのリソースに適用します。
ルートテーブルの変更:競合するルートを削除します。その後、ステータスが [最新バージョンに関連付けられていません] から [正常に配信されました] に変わるまで、プレフィックスリストを手動で再適用します。
以下に、プレフィックスリストを手動で再適用する手順を説明します。
コンソール
VPC コンソールの VPC プレフィックスリストページに移動します。上部のナビゲーションバーで、対象のリージョンを選択します。次に、対象のプレフィックスリストのインスタンス ID をクリックします。
[関連付け] タブで、対象のリソースを見つけ、[操作] 列の [再試行] をクリックします。
API
RetryVpcPrefixListAssociation を呼び出して、プレフィックスリストを再適用します。
Terraform
Terraform は、エントリを変更せずにプレフィックスリストを再適用することをサポートしていません。
プレフィックスリストの共有
プレフィックスリストを共有することで、異なるアカウントが同じプレフィックスリストを参照してセキュリティグループやルートを設定できます。これにより、特定の IP アドレス範囲を一元管理し、同じ IP アドレス範囲の冗長なメンテナンスを避け、構成エラーを減らしてメンテナンス効率を向上させることができます。
このセクションでは、アカウント A がアカウント B とプレフィックスリストを共有する例を使用します。この場合、アカウント A はプレフィックスリストのオーナー、アカウント B はプレフィックスリストのプリンシパルです。
オーナーは、自分のプレフィックスリストを任意の Alibaba Cloud アカウントと共有するか、リソースディレクトリ内でのみ共有することができます。
コンソール
共有の有効化
このセクションでは、プレフィックスリストを任意のアカウントと共有する方法について説明します。リソースディレクトリ内でのみリソースを共有するには、「リソースディレクトリ内でのみリソースを共有する」をご参照ください。
プレフィックスリストのオーナーのアカウントで Resource Management コンソールにログインし、リソース共有 - 自分の共有ページに移動します。左上のメニューバーから共有リソースが配置されているリージョンを選択し、[共有ユニットの作成] をクリックします。開いたページで、以下のように設定します。
[ステップ 1]:[共有ユニット名] を入力します。[リソース] パネルで、ドロップダウンリストから [VPC プレフィックスリスト] を選択します。次に、共有するプレフィックスリストを選択します。
[ステップ 2]:デフォルトで [AliyunRSDefaultPermissionPrefixList] 権限が選択されています。
[ステップ 3]:[プリンシパルの範囲] を [任意のアカウントとリソースを共有] に設定し、[追加方法] を [手動追加] に設定します。プレフィックスリストのプリンシパルの Alibaba Cloud アカウント ID を入力し、[追加] をクリックします。
[ステップ 4]:設定を確認し、ページ下部の [OK] をクリックします。
プレフィックスリストのプリンシパルのアカウントで Alibaba Cloud コンソールにログインし、共有の招待を承諾します:
Resource Management コンソールの リソース共有 - 自分と共有ページに移動します。
メニューバーの左上隅で、共有リソースのリージョンを選択し、対象の共有ユニットの [ステータス] 列にある [承諾] をクリックします。
招待を承諾すると、共有されたプレフィックスリストにアクセスできます。この共有ユニットに追加された後続の共有リソースの招待は、デフォルトで承諾されます。
VPC コンソールの VPC プレフィックスリストページに移動します。メニューバーから、共有プレフィックスリストを含むリージョンを選択して、受信したプレフィックスリストを表示します。受信したプレフィックスリストの場合、[オーナー] 列は [共有] と表示されます。

次に、VPC ルートテーブル、TR ルートテーブル、または ECS セキュリティグループでプレフィックスリストを参照できます。詳細については、「プレフィックスリストの参照」をご参照ください。
共有プレフィックスリストとプリンシパルの管理
プレフィックスリストのオーナーは、次の手順に従って、共有プレフィックスリストとそのプリンシパルを表示、追加、または削除できます。
プレフィックスリストのオーナーのアカウントで Alibaba Cloud コンソールにログインします。Resource Management コンソールの リソース共有 - 自分の共有ページに移動します。上部のナビゲーションバーで、共有プレフィックスリストが配置されているリージョンを選択します。
[自分の共有] ページで、以下を実行できます:
共有プレフィックスリストの表示:[共有リソース] タブをクリックします。
共有プレフィックスリストのプリンシパルの表示:[プリンシパル] タブをクリックします。
[リソース共有] タブで、目的の共有ユニットを見つけ、その ID をクリックします。
[リソース] または [プリンシパル] タブをクリックして、この共有ユニットに関連付けられているプレフィックスリストとプリンシパルを表示します。
[リソース] および [プリンシパル] タブで、[共有ステータス] が [関連付け済み] の場合、共有リソースとプリンシパルが正常に関連付けられていることを示します:

対象の共有ユニットページで、右上隅の [共有ユニットの編集] をクリックします。表示されるページで、以下を実行できます:
共有プレフィックスリストの追加または削除:[ステップ 1] で、プレフィックスリストを選択または選択解除できます。
共有プレフィックスリストからのプリンシパルの追加または削除:[ステップ 3] で、アカウント UID を追加または削除できます。
[共有ユニットの編集] ページの [ステップ 4] で、設定を確認し、[OK] をクリックします。
API
共有の有効化
方法 1:任意のアカウントと共有
プレフィックスリストのオーナーの認証情報を使用して、CreateResourceShare を呼び出して共有ユニットを作成します。
AllowExternalTargetsパラメーターをTrueに設定してください。プレフィックスリストのプリンシパルの認証情報を使用して、まず ListResourceShareInvitations を呼び出して受信した共有の招待をクエリします。次に、AcceptResourceShareInvitation を呼び出して共有の招待を承諾します。
方法 2:リソースディレクトリ内でのみ共有
開始する前に、プレフィックスリストのオーナーとプリンシパルが同じリソースディレクトリに参加していることを確認してください。
リソースディレクトリの管理アカウントの認証情報を使用して、EnableSharingWithResourceDirectory を呼び出してリソースディレクトリ内での共有を有効にします。
プレフィックスリストのオーナーの認証情報を使用して、CreateResourceShare を呼び出して共有ユニットを作成します。
AllowExternalTargetsパラメーターをFalseに設定してください。
共有プレフィックスリストとプリンシパルの管理
プレフィックスリストのオーナーは、共有されたプレフィックスリストとプリンシパルを表示できます:
ListSharedResources を呼び出して、共有プレフィックスリストを表示します。
ListSharedTargets を呼び出して、共有プレフィックスリストのプリンシパルのリストを表示します。
プレフィックスリストのオーナーは、共有ユニット内の共有プレフィックスリストとプリンシパルを管理できます:
ListResourceShareAssociations を呼び出して、共有ユニット内のプレフィックスリストまたはプリンシパルを表示します。
AssociateResourceShare を呼び出して、共有プレフィックスリストまたはプリンシパルを共有ユニットに追加します。
DisassociateResourceShare を呼び出して、共有プレフィックスリストまたはプリンシパルを共有ユニットから削除します。
Terraform
Terraform は現在、任意のアカウントとのプレフィックスリストの共有をサポートしていません。リソースディレクトリ内での共有のみをサポートしています。開始する前に、リソースディレクトリの管理アカウントがリソースディレクトリ内での共有を有効にしていることを確認してください。
リソース: alicloud_resource_manager_resource_share、alicloud_resource_manager_shared_resource、alicloud_resource_manager_shared_target
プレフィックスリストのオーナーの認証情報を使用して、共有を有効にします:
# リージョンを指定
provider "alicloud" {
region = "cn-hangzhou"
}
# 共有ユニット名を指定
resource "alicloud_resource_manager_resource_share" "example_unit" {
resource_share_name = "example_unit_name"
}
# 共有プレフィックスリストを指定
resource "alicloud_resource_manager_shared_resource" "example_vsw" {
resource_share_id = alicloud_resource_manager_resource_share.example_unit.id
resource_id = "pl-bp18t4lsc3e4yd6xxxxx" # 共有するプレフィックスリストの ID
resource_type = "PrefixList" # リソースタイプは PrefixList
}
# 共有プレフィックスリストのプリンシパルを指定
resource "alicloud_resource_manager_shared_target" "example_target" {
resource_share_id = alicloud_resource_manager_resource_share.example_unit.id
target_id = "101xxxxxxxxxxxxxxx" # プレフィックスリストのプリンシパルの UID
}詳細情報
課金
プレフィックスリスト機能は無料です。
サポートされるリージョン
エリア | リージョン |
アジア太平洋 - 中国 | 中国 (杭州)、中国 (上海)、中国 (南京-ローカルリージョン、提供終了予定)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、中国 (香港)、中国 (武漢 - ローカルリージョン)、および 中国 (福州-ローカルリージョン、提供終了予定) |
アジア太平洋 - その他 | 日本 (東京)、韓国 (ソウル)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、フィリピン (マニラ)、および タイ (バンコク) |
ヨーロッパ & アメリカ | ドイツ (フランクフルト)、イギリス (ロンドン)、米国 (シリコンバレー)、米国 (バージニア)、および メキシコ |
中東 | UAE (ドバイ) および サウジアラビア (リヤド - パートナー運営) |
クォータ
クォータ名 | 説明 | デフォルトの制限 | クォータの引き上げ |
vpc_quota_prefixlist_num | Alibaba Cloud アカウントで作成できるプレフィックスリストの数。 | 10 | |
vpc_quota_prefixlist_cidr_num_per_prefixlist | プレフィックスリストがサポートする CIDR エントリの数。 | 50 | |
vpc_quota_prefixlist_accept_shared_prefixlist_num | プリンシパルが受け入れることができる共有プレフィックスリストの数。 | 100 | |
vpc_quota_prefixlist_share_user_num_per_prefixlist | プレフィックスリストを共有できるプリンシパルの数。 | 10 |
リソース共有のクォータに関する詳細については、「リソース共有の制限」をご参照ください。