リソース共有を使用して、デフォルト以外の VPC 内の vSwitch を他の Alibaba Cloud アカウントと共有できます。これにより、これらのアカウントは、共有 vSwitch 内に ECS インスタンスや RDS インスタンスなどのリソースを作成できます。 vSwitch プリンシパルは、自身が作成したリソースのみを表示および管理でき、他のアカウントが作成したリソースを表示、変更、または削除することはできません。
仕組み
図に示すように、アカウント A が vSwitch をアカウント B、アカウント C、およびアカウント D と共有すると、各アカウントは共有 vSwitch 内にクラウドリソースを作成できます。デフォルトでは、これらのクラウドリソースは vSwitch の IP アドレス空間を共有し、相互に通信できます。 vSwitch 所有者(アカウント A)は、ネットワーク ACL またはセキュリティグループを構成して、vSwitch 間またはこれらのクラウドリソース間でネットワーク分離を実装することもできます。
共有 VPC の一般的なシナリオを以下に示します。
一元化されたエンタープライズネットワーク管理:ネットワーク運用および保守(O&M)チームは、VPC を一元的に計画、構成、および管理し、vSwitch を事業部門と共有します。その後、事業部門は、ビジネス要件に基づいて、共有 vSwitch 内に ECS インスタンスなどのリソースを作成および管理できます。これにより、事業部門はネットワークの構成と管理ではなく、ビジネス要件に集中できます。
複数アカウントのネットワーク O&M の簡素化:VPC の vSwitch を複数のアカウントと共有できます。これにより、アカウントごとに個別の VPC を構成する必要がなくなります。これは、VPC の数を大幅に削減し、複数アカウントのシナリオでのネットワーク O&M を簡素化します。
制限事項
デフォルトの VPC は共有できません。 VPC 共有機能を使用するには、カスタム VPC を作成する必要があります。デフォルトの VPC に既存のクラウドリソースがある場合は、デフォルト以外の VPC にリソースを移行または再作成できます。
共有 VPC を使用して既存のクラウドリソースのネットワーク通信を有効にする場合は、「共有 vSwitch 内に作成できるリソースタイプ」と「vSwitch 所有者とプリンシパルの権限」を確認して、シナリオが該当するかどうかを確認してください。シナリオが該当する場合は、最初に共有 VPC 内に既存のクラウドリソースを再作成することをお勧めします。クラウドリソースが VPC 間の移行をサポートしている場合は、共有 VPC に移行することもできます。シナリオが該当しない場合、または再作成または移行が不可能な場合は、VPC ピアリング接続またはCENを使用して、アカウント間のネットワーク通信を有効にしてください。
共有 vSwitch 内に作成できるリソースタイプ
ECS インスタンス
SLB インスタンス
RDS インスタンス
コンテナサービスの Terway コンポーネント
MongoDB インスタンス
Redis インスタンス
Kafka インスタンス
Elasticsearch
ACR インスタンス
PolarDB for MySQL クラスタ
RocketMQ インスタンス
MSE レジストリおよび構成センター
vSwitch 所有者とプリンシパルの権限
共有 vSwitch の場合:
対象 | vSwitch 所有者の権限 | vSwitch プリンシパルの権限 |
クラウドリソース(ECS インスタンス、RDS インスタンスなど) | 各アカウントは、そのアカウントによって作成されたクラウドリソースのみを表示および管理できます。アカウントは、他のアカウントによって作成されたクラウドリソースを表示または管理することはできません。 | |
セキュリティグループ | 各アカウントは、そのアカウントによって作成されたセキュリティグループのみを表示および管理できます。アカウントは、他のアカウントによって作成されたセキュリティグループを表示または管理することはできません。 | |
ENI(Elastic Network Interface) | DescribeNetworkInterfaces 操作を呼び出して、プリンシパルによって作成された ENI をクエリできます。プリンシパルによって作成された ENI を管理することはできません。 | 自分が作成した ENI のみを表示および管理できます。他のアカウントの ENI を表示することはできません。 |
VPC、vSwitch、ルートテーブル、ネットワーク ACL、およびセカンダリ CIDR ブロック | すべての権限 | 表示のみの権限 |
予約済み CIDR ブロック | すべての権限 | 権限なし |
IPv6 ゲートウェイ | すべての権限 |
|
フローログ |
| ENI のフローログのみを作成できます。フローログは、vSwitch プリンシパルの ENI にのみ有効です。 |
NAT ゲートウェイ、VPN ゲートウェイ、CEN、および VPC ピアリング接続 | すべての権限 | これらのネットワークリソースを表示または管理する権限はありません。ただし、所有者によって作成されたこれらのネットワークリソースを使用して、VPC 外のネットワークと通信できます。 |
タグ | 共有動作は、vSwitch 所有者がリソースに構成するタグには影響しません。 vSwitch 所有者と vSwitch プリンシパルの両方が、独自のリソースのタグを構成できます。タグはお互いに見えなく、お互いに影響を与えません。 | |
vSwitch の共有が解除された後:
対象 | vSwitch プリンシパルの権限 |
クラウドリソース(ECS インスタンス、RDS インスタンスなど) | 作成したクラウドリソースを引き続き使用および管理(表示、変更、削除)できます。ただし、これ以上リソースを作成することはできません。 |
vSwitch とそのリンクされたインスタンス | 共有 vSwitch、または VPC、ルートテーブル、プライベート CIDR ブロック、ネットワーク ACL など、共有 vSwitch に関連付けられているリソースを表示することはできません。 |
タグ | システムは、vSwitch プリンシパルが共有 vSwitch に構成したタグを削除します。 |
共有 vSwitch 内にクラウドリソースを作成する
vSwitch 所有者は、vSwitch を任意の Alibaba Cloud アカウントと共有することも、リソースディレクトリ内のアカウントとのみ共有することもできます。 vSwitch 所有者が共有を有効にすると、プリンシパルは共有 vSwitch 内にクラウドリソースを作成できます。
コンソール
1. 共有を有効にする
このセクションでは、vSwitch を任意のアカウントと共有する方法について説明します。リソースディレクトリ内でリソースを共有する方法の詳細については、「リソースディレクトリ内でのみリソースを共有する」をご参照ください。
vSwitch 所有者の Alibaba Cloud アカウントにログオンし、Resource Management コンソールのリソース共有 - 自分の共有ページに移動します。トップメニューバーの左上隅で、共有リソースのリージョンを選択します。次に、[リソース共有の作成] をクリックします。表示されるページで、次の手順を実行します。
ステップ 1:[リソース共有名] を入力し、共有する vSwitch を選択します。
ステップ 2:AliyunRSDefaultPermissionVSwitch 権限がデフォルトで選択されています。
ステップ 3:[プリンシパルのスコープ] を [任意のアカウントとリソースを共有] に、[追加方法] を [手動で追加] に設定します。次に、vSwitch プリンシパルのAlibaba Cloud アカウント ID を入力し、[追加] をクリックします。
ステップ 4:設定を確認した後、ページ下部にある [OK] をクリックします。
vSwitch プリンシパルの Alibaba Cloud アカウントにログオンし、次の手順を実行して共有の招待を受け入れます。
Resource Management コンソールのリソース共有 - 自分と共有ページに移動します。
トップメニューバーの左上隅で、共有リソースのリージョンを選択し、対象のリソース共有の [ステータス] 列の [承諾] をクリックします。
招待を受け入れると、共有 vSwitch にアクセスできます。このリソース共有に追加された新しいリソースは、自動的にあなたと共有されます。
2. 共有 vSwitch 内にクラウドリソースを作成する
vSwitch プリンシパルの Alibaba Cloud アカウントにログオンし、次の手順を実行します。
API
1. 共有を有効にする
方法 1:vSwitch を任意のアカウントと共有する
vSwitch 所有者の ID 資格情報を使用して CreateResourceShare 操作を呼び出し、リソース共有を作成します。
AllowExternalTargetsパラメータがTrueに設定されていることを確認してください。vSwitch プリンシパルの ID 資格情報を使用して ListResourceShareInvitations 操作を呼び出し、受信したリソース共有の招待をクエリします。次に、AcceptResourceShareInvitation 操作を呼び出して、招待を受け入れます。
方法 2:リソースディレクトリ内でのみ vSwitch を共有する
リソースディレクトリの管理アカウントの ID 資格情報を使用して EnableSharingWithResourceDirectory 操作を呼び出し、リソースディレクトリ内でリソース共有を有効にします。
vSwitch 所有者の ID 資格情報を使用して CreateResourceShare 操作を呼び出し、リソース共有を作成します。
AllowExternalTargetsパラメータがFalseに設定されていることを確認してください。
2. クラウドリソースを作成する
vSwitch プリンシパルの Alibaba Cloud アカウントにログオンし、次の手順を実行します。
DescribeVSwitches 操作を呼び出して、vSwitch のリストを取得します。
vSwitch リストで、共有 vSwitch をフィルタリングします。共有 vSwitch の場合、
ShareTypeフィールドの値はSharingです。API 操作を呼び出して、クラウドリソースを作成します。たとえば、RunInstances 操作を呼び出して、共有 vSwitch 内に ECS インスタンスを作成します。
Terraform
1. 共有を有効にする
vSwitch 所有者がリソース共有を作成します。
Terraform は、vSwitch を任意のアカウントと共有することをサポートしていません。 vSwitch は、リソースディレクトリ内でのみ共有できます。操作を実行する前に、リソースディレクトリ内でリソース共有が有効になっていることを確認してください。詳細については、「リソースディレクトリ内でリソース共有を有効にする」をご参照ください。
リソース: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"
}
# 共有 vSwitch を指定します。
resource "alicloud_resource_manager_shared_resource" "example_vsw" {
resource_share_id = alicloud_resource_manager_resource_share.example_unit.id
resource_id = "vsw-bp1omg98fixldnwcxxxxx" // 値を共有 vSwitch の ID に置き換えます。
resource_type = "VSwitch" // リソースタイプは VSwitch です。
}
# 共有 vSwitch のプリンシパルを指定します。
resource "alicloud_resource_manager_shared_target" "example_target" {
resource_share_id = alicloud_resource_manager_resource_share.example_unit.id
target_id = "10xxxxxxxxxxxxxx" // 値を vSwitch プリンシパルの UID に置き換えます。
}2. 共有 vSwitch 内にクラウドリソースを作成する
次の例は、vSwitch プリンシパルが共有 vSwitch 内に ECS インスタンスを作成する方法を示しています。
リソース:alicloud_security_group および alicloud_instance
データソース:alicloud_vswitches
# リージョンを指定します。
provider "alicloud" {
region = "cn-hangzhou"
}
# 共有 vSwitch を指定します。
variable "vsw_id" {
default = "vsw-bp1omg98fixldnwcxxxxx" // 値を共有 vSwitch の ID に置き換えます。
}
# 対象の共有 vSwitch に関する情報を取得します。
data "alicloud_vswitches" "example_vsw" {
ids = [var.vsw_id]
}
# セキュリティグループを作成します。
resource "alicloud_security_group" "example_sg" {
security_group_name = "example_sg_name"
vpc_id = data.alicloud_vswitches.example_vsw.vswitches[0].vpc_id
}
# ECS インスタンスを作成します。
resource "alicloud_instance" "example_ecs" {
instance_name = "example_ecs_name"
instance_type = "ecs.e-c1m1.large"
security_groups = [alicloud_security_group.example_sg.id]
vswitch_id = var.vsw_id
image_id = "aliyun_3_x64_20G_alibase_20250117.vhd"
system_disk_category = "cloud_essd"
}共有 vSwitch とプリンシパルを管理する
vSwitch 所有者は、次の操作を実行できます。
共有 vSwitch を表示する
共有 vSwitch のプリンシパルを表示する
さらに vSwitch を共有する
vSwitch をさらに多くのアカウントと共有する
コンソール
Resource Management コンソールのリソース共有 - 自分の共有ページに移動します。トップメニューバーの左上隅で、共有リソースのリージョンを選択します。
[自分の共有] ページで、次の操作を実行できます。
共有 vSwitch を表示する:<[共有リソース] タブをクリックして、共有 vSwitch を表示します。
共有 vSwitch のプリンシパルを表示する:[プリンシパル] タブをクリックして、プリンシパルを表示します。
[リソース共有] タブをクリックし、対象のリソース共有を見つけて、その ID をクリックします。
[リソース] または [プリンシパル] タブをクリックして、リソース共有内の共有 vSwitch とプリンシパルを表示できます。
[共有ステータス] が [リソース] タブと [プリンシパル] タブで [関連付け済み] の場合、共有リソースとプリンシパルは正常に追加されています。

対象のリソース共有の詳細ページで、右上隅にある [リソース共有の編集] をクリックします。このページでは、次の操作を実行できます。
共有 vSwitch を追加または削除する:[ステップ 1] で、vSwitch のチェックボックスをオンまたはオフにします。
共有 vSwitch のプリンシパルを追加または削除する:[ステップ 3] で、アカウント UID を追加または削除できます。
設定を確認した後、[リソース共有の編集] ページの [ステップ 4] で [OK] をクリックします。
API
vSwitch 所有者は、共有 vSwitch と プリンシパル を表示できます。
ListSharedResources 操作を呼び出して、共有 vSwitch のリストを取得します。
ListSharedTargets 操作を呼び出して、vSwitch プリンシパルのリストを取得します。
vSwitch 所有者は、リソース共有内の 共有 vSwitch と プリンシパル を管理できます。
ListResourceShareAssociations 操作を呼び出して、リソース共有内の vSwitch またはプリンシパルを取得します。
AssociateResourceShare 操作を呼び出して、共有 vSwitch またはプリンシパルをリソース共有に追加します。
DisassociateResourceShare 操作を呼び出して、共有 vSwitch またはプリンシパルをリソース共有から削除します。
詳細情報
請求
共有 VPC 機能は無料です。ただし、リソース所有者とプリンシパルは、ECS インスタンスや RDS インスタンスなど、作成したクラウドリソースに対して課金されます。
サポートされているリージョン
エリア | リージョン |
アジアパシフィック - 中国 | 中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深圳)、中国 (河源)、中国 (広州)、中国 (成都)、および 中国 (香港) |
アジアパシフィック - その他 | 日本 (東京)、韓国 (ソウル)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、フィリピン (マニラ)、および タイ (バンコク) |
ヨーロッパおよびアメリカ | ドイツ (フランクフルト)、英国 (ロンドン)、米国 (シリコンバレー)、および 米国 (バージニア) |
中東 | SAU (リヤド - パートナーリージョン) 重要 SAU (リヤド - パートナーリージョン) リージョンは、パートナーによって運営されています。 |
クォータ
クォータ名 | 説明 | デフォルト制限 | クォータの増加 |
vpc_quota_sharedvpc_share_user_num_per_vpc | VPC を共有できる vSwitch プリンシパルの数。 | 50 | |
vpc_quota_sharedvpc_share_user_num_per_vswitch | VPC 内の vSwitch を共有できる vSwitch プリンシパルの数。 | 50 | |
vpc_quota_sharedvpc_accept_shared_vswitch_num | vSwitch プリンシパルが承諾できる共有 vSwitch の数。 | 30 |
