非デフォルトの仮想プライベートクラウド (VPC) 内の vSwitch を、他の Alibaba Cloud アカウントと共有できます。これにより、プリンシパルは共有された vSwitch 内に ECS や ApsaraDB for RDS インスタンスなどのクラウドリソースを独自に作成できます。プリンシパルは、自身が作成したリソースのみを表示および管理でき、他のアカウントが所有するリソースを表示、変更、または削除することはできません。
仕組み
図に示すように、アカウント A が vSwitch をアカウント B、C、D と共有します。その後、各アカウントは共有 vSwitch 内にクラウドリソースを作成できます。これらのリソースは vSwitch の IP アドレス空間を共有し、デフォルトで相互に通信可能です。vSwitch の所有者(アカウント A)は、ネットワーク ACL やセキュリティグループを設定して、vSwitch 間またはクラウドリソース間のネットワーク分離を実現できます。
共有 VPC の主な利用シーンは以下のとおりです:
集中型ネットワーク管理:中央のネットワーク運用チームが VPC の計画、設定、管理を行い、異なる業務部門と vSwitch を共有します。各業務部門は、ネットワーク構成を扱う必要なく、共有 vSwitch 内に ECS インスタンスなどの独自のリソースを作成および管理できます。
複数アカウント環境におけるネットワーク運用の簡素化:複数のアカウントと vSwitch を共有することで、各アカウントごとに個別の VPC を設定する必要がなくなります。これにより、VPC の数が削減され、複数アカウント環境におけるネットワーク運用が簡素化されます。
制限事項
デフォルト VPC は共有できません。共有 VPC 機能を利用するには、まずカスタム VPC を作成する必要があります。既存のリソースがデフォルト VPC 内にある場合は、それらを非デフォルト VPC に移行または再作成してください。
既存のリソース間で共有 VPC を使用してネットワーク通信を行う前に、対応リソースタイプおよび所有者とプリンシパルの権限をご確認ください。この機能が要件を満たす場合、既存のリソースを共有 VPC 内に再作成することを推奨します。クラウドリソースがクロス VPC 移行をサポートしている場合は、共有 VPC への移行も可能です。この機能が適さない場合、またはリソースの再作成・移行ができない場合は、VPC ピアリング接続またはCloud Enterprise Network(CEN)を使用して、クロスアカウントのネットワーク接続を有効化してください。
対応リソースタイプ
ECS インスタンス
Server Load Balancer(SLB)インスタンス
ApsaraDB for RDS インスタンス
Container Service Terway コンポーネント
ApsaraDB for MongoDB インスタンス
ApsaraDB for Redis インスタンス
ApsaraMQ for Kafka インスタンス
Elasticsearch
Container Registry(ACR)インスタンス
PolarDB for MySQL クラスター
ApsaraMQ for RocketMQ インスタンス
Microservices Engine(MSE)レジストリおよび構成センター
所有者とプリンシパルの権限
共有 vSwitch について:
リソース | 所有者 | プリンシパル |
クラウドリソース(ECS、ApsaraDB for RDS など) | 自身が作成したクラウドリソースのみを表示および管理でき、他のアカウントが作成したリソースは表示および管理できません。 | |
セキュリティグループ | 自身が作成したセキュリティグループのみを表示および管理でき、他のアカウントが作成したセキュリティグループは表示および管理できません。 | |
Elastic Network Interface(ENI) | DescribeNetworkInterfaces 操作を呼び出して、プリンシパルが作成した Elastic Network Interface(ENI)を表示できますが、管理はできません。 | 自身が作成した ENI のみを表示および管理できます。他のアカウントが所有する ENI は表示できません。 |
VPC、vSwitch、ルートテーブル、ネットワーク ACL、セカンダリ CIDR ブロック | 完全な権限 | 表示のみ |
予約済み CIDR ブロック | 完全な権限 | 権限なし |
IPv6 ゲートウェイ | 完全な権限 |
|
フローログ |
| ENI 用のフローログのみを作成できます。これらのフローログは、プリンシパルが所有する ENI にのみ適用されます。 |
NAT ゲートウェイ、VPN ゲートウェイ、Cloud Enterprise Network、VPC ピアリング接続 | 完全な権限 | これらのリソースを表示または管理することはできませんが、VPC 外部とのネットワーク接続のために使用できます。 |
タグ | vSwitch の共有は、所有者のリソースタグには影響しません。所有者およびプリンシパルは、それぞれのリソースにタグを付与できます。これらのタグは独立しており、相互に表示されません。 | |
vSwitch の共有を解除した後:
リソース | プリンシパルの権限 |
クラウドリソース(ECS、ApsaraDB for RDS など) | 既存のリソースを引き続き使用および管理(表示、変更、削除)できますが、新しいリソースを作成することはできません。 |
vSwitch および関連リソース | 共有 vSwitch およびその関連リソース(VPC、ルートテーブル、プライベート CIDR ブロック、ネットワーク ACL など)を表示できません。 |
タグ | システムが、プリンシパルが共有 vSwitch に設定したタグを削除します。 |
共有 vSwitch 内へのクラウドリソースの作成
vSwitch の所有者は、任意の Alibaba Cloud アカウント、またはリソースディレクトリ内のアカウントのみと vSwitch を共有できます。所有者が共有を有効化すると、プリンシパルは共有 vSwitch 内にクラウドリソースを作成できます。
コンソール
1. 共有の有効化
このセクションでは、任意のアカウントと vSwitch を共有する方法について説明します。リソースディレクトリ内での共有については、「リソースディレクトリ内でのリソース共有」をご参照ください。
所有者アカウントでログインし、Resource Management コンソールの リソース共有 > 自分が共有するリソース ページに移動します。上部のナビゲーションバーから共有リソースが配置されているリージョンを選択し、リソース共有の作成 をクリックします。開いたページで:
ステップ 1: リソース共有名 を入力し、共有する vSwitch を選択します。
ステップ 2:システムがデフォルトで AliyunRSDefaultPermissionVSwitch 権限を選択します。
ステップ 3: 依頼人のスコープ で すべてのアカウント を選択します。追加方法 で 手動で追加 を選択します。Alibaba Cloud アカウント ID を入力し、追加 をクリックします。
ステップ 4:設定を確認後、確認する をクリックします。
プリンシパルのアカウントでログインし、共有の招待を受け入れます:
Resource Management コンソールの リソース共有 > 自分と共有されるリソース ページに移動します。
上部ナビゲーションバーで、共有リソースが配置されているリージョンを選択します。対象の共有ユニットを見つけ、[承認] を ステータス 列でクリックします。
招待を受け入れると、共有 vSwitch にアクセスできるようになります。所有者がこの共有ユニットに追加する新しいリソースは、自動的に利用可能になります。
2. クラウドリソースの作成
プリンシパルのアカウントでログインします:
API
1. 共有の有効化
方法 1:任意のアカウントと共有
所有者として、CreateResourceShare 操作を呼び出して共有ユニットを作成します。
AllowExternalTargetsパラメーターをTrueに設定します。プリンシパルとして、ListResourceShareInvitations 操作を呼び出して受信した招待を照会します。その後、AcceptResourceShareInvitation 操作を呼び出して招待を受け入れます。
方法 2:リソースディレクトリ内でのみ共有
リソースディレクトリの管理アカウントの認証情報を使用して、EnableSharingWithResourceDirectory 操作を呼び出して、リソースディレクトリ内での共有を有効化します。
所有者の認証情報を使用して、CreateResourceShare 操作を呼び出して共有ユニットを作成します。
AllowExternalTargetsパラメーターをFalseに設定します。
2. クラウドリソースの作成
プリンシパルのアカウントでログインします:
DescribeVSwitches 操作を呼び出して vSwitch の一覧を取得します。
一覧から共有 vSwitch をフィルターします。共有 vSwitch の場合、
ShareTypeフィールドの値はSharingになります。ECS の場合は RunInstances のようなクラウドリソース作成 API を呼び出して、共有 vSwitch 内にリソースを作成します。
Terraform
1. 共有の有効化
所有者が共有ユニットを作成します:
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 内に 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 の共有
コンソール
リソース共有 > 自分が共有するリソース ページに移動します。上部のナビゲーションバーから共有リソースが配置されているリージョンを選択します。
共有するリソース ページで、以下の操作が可能です:
共有 vSwitch の表示:共有リソース タブをクリックします。
共有 vSwitch のプリンシパルの表示:principals タブをクリックします。
共有ユニット タブをクリックし、対象の共有ユニットを見つけ、その ID をクリックします。
リソース タブまたは 依頼人 タブをクリックして、この共有ユニット内の共有 vSwitch およびプリンシパルを表示します。
ステータス が リソース タブおよび 依頼人 タブで 関連付け済み の場合、共有リソースおよびプリンシパルは正常に追加されています。

対象の共有ユニットのページで、右上隅の リソース共有の編集 をクリックします。この共有ユニット内で以下の操作が可能です:
共有 vSwitch の追加または削除:ステップ 1 で、vSwitch のチェックボックスを選択または解除します。
プリンシパルの追加または削除:ステップ 3 で、アカウントの UID を追加または削除します。
設定を確認後、確認する をクリックします。ステップ 4 は リソース共有の編集 ページにあります。
API
所有者は、共有 vSwitch およびその プリンシパル を表示できます:
ListSharedResources 操作を呼び出して共有 vSwitch の一覧を表示します。
ListSharedTargets 操作を呼び出して共有 vSwitch のプリンシパルを表示します。
所有者は、共有ユニット内の 共有 vSwitch および プリンシパル を管理できます:
ListResourceShareAssociations 操作を呼び出して、共有ユニット内の vSwitch またはプリンシパルを表示します。
AssociateResourceShare 操作を呼び出して、共有ユニットに共有 vSwitch またはプリンシパルを追加します。
DisassociateResourceShare 操作を呼び出して、共有ユニットから共有 vSwitch またはプリンシパルを削除します。
関連情報
課金
共有 VPC 機能自体は無料です。ただし、ECS インスタンスや ApsaraDB for RDS インスタンスなどのクラウドリソースを作成した場合には、それらのリソースに対して課金されます。
対応リージョン
エリア | 共有 VPC をサポートするリージョン |
アジアパシフィック - 中国 | 中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、中国 (香港) |
アジアパシフィック - その他 | 日本 (東京)、韓国 (ソウル)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、フィリピン (マニラ)、タイ (バンコク) |
ヨーロッパおよびアメリカ | ドイツ(フランクフルト)、イギリス(ロンドン)、米国(シリコンバレー)、米国(バージニア) |
中東 | SAU(リヤド - パートナー リージョン) |
クォータ
クォータ名 | 説明 | デフォルト | 調整可能 |
vpc_quota_sharedvpc_share_user_num_per_vpc | VPC の vSwitch を共有できるアカウントの最大数。 | 50 | |
vpc_quota_sharedvpc_share_user_num_per_vswitch | vSwitch を共有できるアカウントの最大数。 | 50 | |
vpc_quota_sharedvpc_accept_shared_vswitch_num | アカウントが受け入れ可能な共有 vSwitch の最大数。 | 30 |
