プレフィックスリストを使用すると、頻繁に使用する CIDR ブロックを一元管理し、アカウントをまたいでセキュリティグループルールやルートエントリで参照できます。プレフィックスリストへの変更は、参照しているすべてのリソースに自動的に伝播します。
プレフィックスリストの一般的なユースケースは、次のとおりです:
-
企業のエグレス IP を一元管理:企業がインターネット経由で複数の ECS インスタンスにアクセスする場合、プレフィックスリストを使用しないと、エグレス IP が変更されるたびに各セキュリティグループルールを個別に更新する必要があります。プレフィックスリストを使用すると、IP を一度更新するだけで、参照しているすべてのセキュリティグループルールが自動的に同期します。
-
パートナー IP 範囲を一元管理:業務でパートナー IP 範囲と通信する場合、同じルートを複数のルートテーブルに追加することがよくあります。プレフィックスリストを使用すると、この繰り返し作業が不要になります。リストを一度編集するだけで、参照しているすべてのルートテーブルが自動的に更新されます。
使用制限
-
ゲートウェイ ルートテーブルと Basic Edition Transit Router は、プレフィックスリストを参照できません。
-
プレフィックスリストはリージョンリソースです。プレフィックスリストは、作成されたリージョン内でのみ使用、参照、または共有できます。
-
1 つのプレフィックスリストに、IPv4 と IPv6 の CIDR ブロックを混在させることはできません。
-
プレフィックスリストを作成する際は、最大エントリ数を指定する必要があります。
-
参照されているプレフィックスリストは、参照元リソースのクォータを消費します。VPC ルートテーブルと ECS セキュリティグループは 最大エントリ数 に基づいてクォータを消費します。TR ルートテーブルは 実際のエントリ数 に基づいてクォータを消費します。たとえば、最大エントリ数が 50 で実際のエントリ数が 20 のプレフィックスリストは、VPC ルートテーブルまたはセキュリティグループではクォータを 50 消費しますが、TR ルートテーブルでは 20 のみ消費します。
-
リージョン内のクラウドサービスに対して初めてゲートウェイエンドポイントを作成すると、システムは自動的にそのサービスの IP 範囲を含むプレフィックスリストを作成し、ゲートウェイエンドポイントをネクストホップとして VPC ルートテーブルで参照します。このシステムプレフィックスリストは、参照、変更、削除、共有できません。コンソールでは、その [所有者] は [システムアカウント] として表示されます。
プレフィックスリストの管理
コンソール
プレフィックスリストの作成
-
VPC コンソールの[VPC Prefix Lists] ページに移動します。上部メニューでリージョンを選択し、VPC プレフィックスリストの作成 をクリックします。
-
VPC プレフィックスリストの作成 パネルで、次のパラメータを設定します。
-
IP バージョン (IPv4/IPv6) を選択します。
-
最大エントリ数 を設定します。この値は、VPC ルートテーブルとセキュリティグループでのクォータ消費量を決定します。作成後に変更できます。
たとえば、最大エントリ数が 50 のプレフィックスリストは、実際のエントリ数が 20 しかなくても、クォータから 50 のルートエントリまたは 50 のセキュリティグループルールを消費します。
クォータ情報:デフォルトでは、VPC ルートテーブルには最大 200 個のカスタムルートエントリを設定でき、セキュリティグループには最大 200 個のルールを設定できます。
-
プレフィックスリストのエントリ を設定します。次のいずれかの方法を使用できます:単一入力、一括入力、または 从其他前缀列表克隆。別のリージョンにあるプレフィックスリストからエントリをクローンできますが、共有プレフィックスリストまたはシステムプレフィックスリストからはクローンできません。
-
エントリの追加または削除
プレフィックスリストの詳細ページで、エントリ タブに移動します。
-
エントリを追加するには、VPC プレフィックスリストの作成 をクリックします。
-
エントリを削除するには、エントリの操作列で削除をクリックするか、複数のエントリを選択して一括削除をクリックします。
参照元リソースの表示
プレフィックスリストの詳細ページで、関連付け タブをクリックして、このプレフィックスリストを参照しているすべてのリソースを表示します。
プレフィックスリストの削除
プレフィックスリストを削除するには、リストから対象のプレフィックスリストを見つけ、操作 列の 削除 をクリックします。詳細ページで 削除 をクリックすることもできます。
プレフィックスリストを削除する前に、そのプレフィックスリストがどのリソースからも参照されておらず、他のアカウントと共有されていないことを確認してください。
API
-
CreateVpcPrefixList API を呼び出してプレフィックスリストを作成します。
-
ModifyVpcPrefixList API を呼び出してエントリを追加または削除します。
-
GetVpcPrefixListAssociations API を呼び出して、プレフィックスリストを参照しているリソースを表示します。
-
DeleteVpcPrefixList API を呼び出してプレフィックスリストを削除します。
プレフィックスリストを削除する前に、そのプレフィックスリストがどのリソースからも参照されておらず、他のアカウントと共有されていないことを確認してください。
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 ルートテーブル、Transit Router (TR) ルートテーブル、または ECS セキュリティグループでプレフィックスリストを参照できます。プレフィックスリストへの変更は、参照しているすべてのリソースに自動的に適用されます。
VPC ルートテーブルでの参照
VPC ルートテーブルにカスタムルートエントリを追加する際に、プレフィックスリストを参照できます。次の点に注意してください。
-
既存のエントリとのルート競合を回避してください。競合が存在する場合、プレフィックスリストを参照できません。参照後に競合が発生した場合は、プレフィックスリスト参照後のエントリ競合の解決をご参照ください。
-
VPC ルートテーブルのカスタムルートエントリのクォータは、実際のエントリ数ではなく、最大エントリ数 によって消費されます。クォータ超過のリスクを軽減するには、最大エントリ数を減らす、隣接する IP アドレス範囲をマージする、または未使用のエントリを削除するなどの対応をしてください。
コンソール
ルートテーブルの詳細ページに移動します。 タブで、ルートエントリの追加 をクリックし、次のパラメーターを設定します:
-
[CIDR]: ドロップダウンリストから VPC プレフィックスリスト を選択し、参照するプレフィックスリストを選択します。
-
[ネクストホップの種類]: ネクストホップタイプとインスタンスを選択します。
API
CreateRouteEntry API を呼び出し、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 TR ルートテーブルでプレフィックスリストを参照できます。システムは、プレフィックスリスト内のすべての CIDR ブロックのルートエントリを自動的に追加します。次の点に注意してください。
-
TR でルート伝播が有効になっている場合、システムは、プレフィックスリストに対応するルートエントリを他のネットワークインスタンスに自動的に伝播します。
-
プレフィックスリストからのルートエントリは、既存の TR ルートテーブルエントリと競合することはできません。競合ルールについては、ルート互換性をご参照ください。競合が原因で参照できない場合、または参照後に競合が発生した場合は、プレフィックスリスト参照後のエントリ競合の解決をご参照ください。
-
プレフィックスリスト内の 実際のエントリ数 が、TR ルートテーブルのクォータにカウントされます。クォータの超過を回避するには、隣接する IP アドレス範囲をマージするか、未使用のエントリを削除してください。
コンソール
プレフィックスリストの関連付け
TR ルートテーブルの詳細ページに移動し、CIDR ブロック タブをクリックし、次に ルートプレフィックスの関連付け をクリックします。
-
[ルートプレフィックス ID]:参照するプレフィックスリストを選択します。
-
[ブラックホールルートではないか]:
-
[はい]: プレフィックスリストに一致するトラフィックはドロップされます。
-
[いいえ]:プレフィックスリストに一致するトラフィックは、指定されたネクストホップ接続に転送されます。
-
ルートエントリのフィルタリング
TR ルートテーブルの詳細ページに移動し、ルートエントリ タブをクリックし、ルートプレフィックス ID でフィルタリングして、プレフィックスリストから追加されたルートを表示します。
プレフィックスリストの関連付け解除
プレフィックスリストの関連付けを解除すると、システムは、Enterprise Edition TR ルートテーブルから関連するすべてのルートエントリを自動的に削除します。プレフィックスリストの関連付けを解除する前に、ネットワークの中断を防ぐためにサービストラフィックを移行してください。
TR ルートテーブルの 基本設定 ページに移動し、CIDR ブロック タブをクリックします。プレフィックスリストを見つけ、アクション 列の 削除 をクリックします。
API
-
プレフィックスリストの関連付け:CreateTransitRouterPrefixListAssociation API を呼び出して、Enterprise Edition TR のルートテーブルでプレフィックスリストを参照します。
-
プレフィックスリストに対応するルートエントリのフィルタリング:ListTransitRouterPrefixListAssociation API を呼び出します。レスポンスで、
PrefixListIdパラメータを使用して、プレフィックスリストから追加されたルートエントリをフィルタリングします。 -
プレフィックスリストの関連付け解除:DeleteTransitRouterPrefixListAssociation API を呼び出して、Enterprise Edition TR のルートテーブルからプレフィックスリストの関連付けを解除します。
Terraform
リソース:alicloud_cen_transit_router_prefix_list_association
# リージョンを指定します。
provider "alicloud" {
region = "cn-hangzhou"
}
# Transit Router でプレフィックスリストを参照します。
resource "alicloud_cen_transit_router_prefix_list_association" "example" {
prefix_list_id = "pl-bp1fnjzxkk2m6qrwxxxxx" # プレフィックスリストの ID。
transit_router_id = "tr-bp1czv20pflygguoxxxxx" # Transit Router の ID。
transit_router_table_id = "vtb-bp1v7079o4dwrkgpxxxxx" # Transit Router のルートテーブルの ID。
next_hop_type = "BlackHole" # ネクストホップタイプ。
next_hop = "BlackHole" # ネクストホップ。この例では "BlackHole" を指定します。
}
ECS セキュリティグループでの参照
インバウンドまたはアウトバウンドのセキュリティグループルールを設定する際に、プレフィックスリストを参照できます。
コンソール
次の例では、インバウンドセキュリティグループルールを追加します。ECS コンソールのセキュリティグループ詳細ページに移動します。アクセスルール > インバウンド タブで、ルールを追加 をクリックし、次のパラメーターを設定します:
-
[送信元]:ドロップダウンリストから[プレフィックスリスト]を選択し、参照するプレフィックスリストを選択します。
-
その他のパラメータ:必要に応じて他のパラメータを設定します。
API
-
インバウンドセキュリティグループルールを追加するには、AuthorizeSecurityGroup API を呼び出し、
SourcePrefixListIdパラメータをプレフィックスリストの ID に設定します。 -
アウトバウンドセキュリティグループルールを追加するには、AuthorizeSecurityGroupEgress API を呼び出し、
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 で競合するエントリを確認できます。
競合は次の 2 つの方法のいずれかで解決できます。
ルートエントリを変更する前に、サービスに影響がないことを確認してください。
-
オプション 1:プレフィックスリストを変更します。プレフィックスリストから競合しているエントリを削除します。エントリを削除すると、システムは、それを参照しているすべてのリソースにプレフィックスリストを 自動的に 再適用します。
-
オプション 2: ルートテーブルを変更します。ルートテーブルから競合するルートエントリを削除します。その後、ステータスが最新バージョンに関連付けられていませんから送信されましたに変わるまで、手動でプレフィックスリストを再適用します。
プレフィックスリストを 手動で 再適用するには:
コンソール
-
VPC コンソールのVPC プレフィックスリストページに移動します。上部メニューでリージョンを選択し、プレフィックスリストの ID をクリックします。
-
関連付け タブをクリックし、関連付けられたリソースを見つけ、操作列の 再試行 をクリックします。
API
RetryVpcPrefixListAssociation API を呼び出して、プレフィックスリストを再適用します。
Terraform
Terraform は、エントリを変更せずにプレフィックスリストを再適用することをサポートしていません。
プレフィックスリストの共有
プレフィックスリストを共有すると、複数のアカウントがセキュリティグループまたはルートテーブルで同じ CIDR ブロックを参照できるため、メンテナンスのオーバーヘッドと設定エラーを削減できます。
次の例では、アカウント A (所有者) がプレフィックスリストをアカウント B (プリンシパル) と共有します。
所有者は、任意の Alibaba Cloud アカウントとプレフィックスリストを共有できます。また、リソースディレクトリ内のアカウントに限定して共有することもできます。
コンソール
共有の有効化
このセクションでは、任意のアカウントとプレフィックスリストを共有する方法について説明します。リソースディレクトリ内でのみリソースを共有するには、リソースディレクトリ内でのみリソースを共有するをご参照ください。
-
所有者アカウントを使用してリソース管理コンソールにログインし、リソース共有 > 自分が共有 ページに移動します。上部のナビゲーションバーから共有したいリソースのリージョンを選択し、リソース共有の作成 をクリックします。次の手順を実行します。
-
[ステップ 1]:リソース共有名 を入力します。リソース セクションで、ドロップダウンリストから VPC プレフィックスリスト を選択し、共有するプレフィックスリストを選択します。
-
[ステップ 2]: デフォルトで
AliyunRSDefaultPermissionPrefixList権限が選択されます。 -
ステップ 3 依頼人のスコープ を すべてのアカウント に、追加方法 を 手動で追加 に設定します。プリンシパルの Alibaba Cloud アカウント ID を入力し、追加 をクリックします。
-
[ステップ 4]: 設定を確認し、確認する をクリックします。
-
-
プリンシパルとして Alibaba Cloud コンソールにログインし、共有の招待を承諾します。
-
Resource Management コンソールのリソース共有 > 共有先ページに移動します。
-
上部のナビゲーションバーで、共有リソースのリージョンを選択し、ターゲットリソース共有を見つけ、ステータス 列の 承認 をクリックします。
-
招待を承諾すると、共有されたプレフィックスリストにアクセスできます。このリソース共有に追加された新しいリソースの招待は、デフォルトで承諾されます。
-
VPC コンソールの VPC プレフィックスリスト ページに移動します。上部のナビゲーションバーで、共有プレフィックスリストのリージョンを選択します。受信したプレフィックスリストを表示できます。所有者 列は 共有から と表示されます。
-
これで、VPC ルートテーブル、TR ルートテーブル、ECS セキュリティグループで共有されたプレフィックスリストを参照できます。プレフィックスリストの参照をご参照ください。
-
共有されたプレフィックスリストとプリンシパルの管理
プレフィックスリストの所有者は、共有されたプレフィックスリストとプリンシパルを表示、追加、または削除できます。
-
所有者アカウントで Resource Management コンソールにログインし、リソース共有 > 共有元ページに移動します。上部メニューで、共有されたプレフィックスリストがあるリージョンを選択します。
-
共有するリソース ページでは、以下の操作を実行できます。
-
共有プレフィックスリストの表示: 共有リソース タブをクリックします。
-
共有プレフィックスリストのプリンシパルの表示:principals タブをクリックします。
-
-
共有ユニット タブをクリックし、目的のリソース共有を見つけ、その ID をクリックします。
-
リソース または principals タブをクリックすると、このリソース共有内の共有プレフィックスリストとプリンシパルを表示できます。
リソース タブおよび principals タブの ステータス が 関連付け済み の場合、リソースとプリンシパルは正常に関連付けられています。
-
リソース共有の詳細ページで、右上隅にあるリソース共有の編集をクリックします。このリソース共有内で次の操作を実行できます:
-
共有プレフィックスリストの追加または削除: ステップ 1 で、プレフィックスリストのチェックボックスを選択または選択解除します。
-
プリンシパルの追加または削除:ステップ 3 で、アカウント ID を追加または削除します。
-
-
設定を確認した後、リソース共有の編集 ページの ステップ 4 で、確認する をクリックします。
API
共有の有効化
-
方法 1:任意のアカウントと共有
-
プレフィックスリストの所有者の認証情報を使用して CreateResourceShare API を呼び出し、リソース共有を作成します。
AllowExternalTargetsパラメーターがTrueに設定されていることを確認してください。 -
プレフィックスリストのプリンシパルの認証情報を使用して ListResourceShareInvitations API を呼び出してリソース共有の招待をクエリし、次に AcceptResourceShareInvitation API を呼び出してリソース共有の招待を承諾します。
-
-
方法 2:リソースディレクトリ内でのみ共有
開始する前に、プレフィックスリストの所有者とプリンシパルが同じリソースディレクトリのメンバーであることを確認してください。
-
リソースディレクトリの管理アカウントの認証情報を使用して EnableSharingWithResourceDirectory API を呼び出し、リソースディレクトリ内でのリソース共有を有効にします。
-
プレフィックスリストの所有者の認証情報を使用して CreateResourceShare API を呼び出し、リソース共有を作成します。
AllowExternalTargetsパラメーターがFalseに設定されていることを確認してください。
-
共有されたプレフィックスリストとプリンシパルの管理
プレフィックスリストの所有者として、次の API を呼び出して共有されたプレフィックスリストとプリンシパルを表示します。
-
ListSharedResources API を呼び出して、共有されたプレフィックスリストを表示します。
-
ListSharedTargets API を呼び出して、共有されたプレフィックスリストのプリンシパルを表示します。
プレフィックスリストの所有者として、次の API を呼び出して、リソース共有内の共有されたプレフィックスリストとプリンシパルを管理します。
-
ListResourceShareAssociations API を呼び出して、リソース共有内のプレフィックスリストまたはプリンシパルを表示します。
-
AssociateResourceShare API を呼び出して、共有されたプレフィックスリストまたはプリンシパルをリソース共有に追加します。
-
DisassociateResourceShare API を呼び出して、共有されたプレフィックスリストまたはプリンシパルをリソース共有から削除します。
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。
}
詳細情報
課金
プレフィックスリスト機能は無料です。
対応リージョン
エリア | リージョン |
アジアパシフィック - 中国 | 中国 (杭州)、中国 (上海)、中国 (南京 - ローカルリージョン、閉鎖予定)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、中国 (中衛)、中国 (香港)、中国 (武漢 - ローカルリージョン)、中国 (福州 - ローカルリージョン、閉鎖予定) |
アジアパシフィック - その他 | Japan (Tokyo)、South Korea (Seoul)、Singapore、Malaysia (Kuala Lumpur)、Indonesia (Jakarta)、Philippines (Manila)、Thailand (Bangkok)、および Malaysia (Johor) |
ヨーロッパおよび南北アメリカ | Germany (Frankfurt)、UK (London)、France (Paris)、US (Silicon Valley)、US (Virginia)、および Mexico |
中東 | UAE (Dubai) および SAU (Riyadh - Partner Region) |
クォータ
| クォータ名 | 説明 | デフォルト制限 | 調整可能 |
|---|---|---|---|
vpc_quota_prefixlist_num | アカウントあたりのプレフィックスリスト数。 | 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 | はい |
リソース共有のクォータについては、リソース共有の制限をご参照ください。