對於非預設 VPC,您可以通過資源共用將 VPC 內的交換器共用給其他阿里雲帳號(主帳號),以支援各個帳號在共用交換器內建立ECS、RDS等資源。交換器使用者只能查看和管理自己建立的資源,無法查看、修改或刪除其他帳號的資源。
工作原理
如上圖所示,帳號A將自己擁有的交換器共用給帳號B、C、D後,每個帳號可以在已共用的交換器內建立雲資源,這些雲資源共用交換器的IP地址空間,預設網路互連。交換器所有者(帳號A)也可以通過配置網路ACL或安全性群組,實現交換器或雲資源之間的網路隔離。
共用VPC的典型應用情境:
商業網路集中管理:網路營運團隊集中規劃、配置和管理VPC,並將VPC的交換器共用給業務部門。業務部門可以根據業務需求在共用交換器中建立管理ECS等資源,無需關注網路設定和管理。
簡化多帳號網路營運:將VPC的交換器共用給多個帳號,不用為每個帳號單獨配置VPC網路,從而極大減少了VPC的使用數量,降低多帳號情境下的網路營運複雜度。
使用限制
預設VPC不支援共用,您需要先建立自訂VPC,再使用VPC共用功能。如果預設VPC中已有存量雲資源,您可以考慮將這些雲資源遷移或重建到非預設VPC。
使用共用VPC實現存量雲資源的網路互連時,請先參考支援在共用交換器下建立的雲資源類型和交換器所有者和使用者的許可權,判斷是否適用。如果適用,建議優先在共用VPC中重建存量雲資源;若雲資源本身支援跨VPC遷移,也可隨即轉移至共用VPC。如果不適用或重建、遷移不可行,請使用VPC對等串連或雲企業網CEN實現跨帳號網路互連。
支援在共用交換器下建立的雲資源類型
ECS執行個體
SLB執行個體
RDS執行個體
Container ServiceTerway組件
MongoDB執行個體
Redis執行個體
Kafka執行個體
Elasticsearch
ACR執行個體
PolarDB MySQL叢集
RocketMQ執行個體
MSE註冊配置中心
交換器所有者和使用者的許可權
針對已共用的交換器:
目標 | 交換器所有者的許可權 | 交換器使用者的許可權 |
雲資源(ECS、RDS等) | 每個帳號只能查看和管理自身建立的雲資源,無法查看和管理其他帳號建立的雲資源。 | |
安全性群組 | 每個帳號只能查看和管理自身建立的安全性群組,無法查看和管理其他帳號建立的安全性群組。 | |
彈性網卡 | 可以使用DescribeNetworkInterfaces查看使用者建立的彈性網卡,無法管理使用者建立的彈性網卡。 | 只可查看和管理自身建立的彈性網卡,無法查看其他帳號的彈性網卡。 |
VPC、交換器、路由表、網路ACL、附加網段 | 全部許可權 | 僅可查看 |
預留網段 | 全部許可權 | 無許可權 |
IPv6網關 | 全部許可權 |
|
流日誌 |
| 只能建立彈性網卡粒度的流日誌,且僅對交換器使用者的彈性網卡生效。 |
NAT Gateway、VPN網關、雲企業網、VPC對等串連 | 全部許可權 | 無查看和系統管理權限,但可以通過所有者建立的這些網路資源,實現與VPC外部網路互連。 |
標籤 | 共用行為不影響交換器所有者為資源配置的標籤。交換器所有者與交換器使用者都可以為各自的資源配置標籤,且標籤互不可見也互不影響。 |
交換器不共用後:
目標 | 交換器使用者的許可權 |
雲資源(ECS、RDS等) | 可以繼續使用和管理(查看、修改、刪除)自身已建立的雲資源,但無法繼續建立資源。 |
交換器及其關聯資源 | 無法查看共用交換器,也無法查看共用交換器相關聯的資源(例如VPC、路由表、私網網段、網路ACL)。 |
標籤 | 系統會刪除交換器使用者在該共用交換器上配置的標籤。 |
在共用交換器中建立雲資源
交換器所有者可以將交換器共用給任意阿里雲賬戶,也可以僅在資來源目錄內共用。交換器所有者開啟共用後,使用者就可在共用交換器中建立雲資源。
控制台
一、開啟共用
此處僅介紹將交換器共用給任意賬戶的方式。針對資來源目錄方式,請參考僅在資來源目錄內共用資源。
登入交換器所有者的帳號,前往資源管理主控台的資源共用-我的共用頁面。先在頂部功能表列左上處,選擇共用資源所在的地區,再單擊建立共用單元,在開啟的頁面中:
第一步:輸入共用單元名稱,然後選中需要共用的交換器。
第二步:系統會預設選擇AliyunRSDefaultPermissionVSwitch許可權。
第三步:使用者範圍選擇允許共用給任意帳號,添加方式選擇手動添加,使用者ID輸入交換器使用者的阿里雲帳號ID,並點擊添加。
第四步:檢查無誤後,在頁面底部單擊確定。
登入交換器使用者的帳號,接受共用邀請:
前往資源管理主控台的資源共用-共用給我頁面。
在頂部功能表列左上處,選擇共用資源所在的地區,再單擊目標共用單元狀態列的接受。
接受後,交換器使用者就可以訪問共用的交換器,且後續該共用單元新增的共用資源將預設接受共用邀請。
二、在共用交換器建立雲資源
登入交換器使用者的帳號:
前往專用網路控制台交換器頁面,在頂部狀態列選擇共用交換器的地區後,您可以看到共用交換器(被標記為來自共用)。
針對ECS、RDS、SLB執行個體,您可以在目標共用交換器的操作列,單擊添加雲產品進行建立。
其他支援在共用交換器下建立的雲資源類型,請在建立時選擇共用交換器。
API
一、開啟共用
方式一:共用給任意賬戶
使用交換器所有者的身份憑證,調用CreateResourceShare建立共用單元,並確保將
AllowExternalTargets
參數設為True
。使用交換器使用者的身份憑證,先調用ListResourceShareInvitations 查詢收到的資源邀請資訊,再調用AcceptResourceShareInvitation接受資源共用邀請。
方式二:僅在資來源目錄內共用
使用交換器所有者的身份憑證,調用EnableSharingWithResourceDirectory啟用資來源目錄組織共用。
繼續使用交換器所有者的身份憑證,調用CreateResourceShare建立共用單元,並確保將
AllowExternalTargets
參數設為False
。
二、建立雲資源
登入交換器使用者的帳號:
調用DescribeVSwitches擷取交換器列表。
在交換器列表中,過濾出共用交換器(
ShareType
欄位值為Sharing
)。調用雲資源的建立介面(例如ECS的RunInstances),基於共用交換器建立雲資源。
Terraform
一、開啟共用
交換器所有者建立共用單元:
當前Terraform不支援將交換器共用給任意賬戶,僅支援在資來源目錄內共用,請您在操作前確保交換器所有者已啟用資來源目錄組織共用。
Resources: 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 = "vsw-bp1omg98fixldnwcxxxxx" # 修改為實際的共用交換器ID
resource_type = "VSwitch" # 資源類型為交換器
}
# 指定共用交換器的使用者
resource "alicloud_resource_manager_shared_target" "example_target" {
resource_share_id = alicloud_resource_manager_resource_share.example_unit.id
target_id = "10xxxxxxxxxxxxxx" # 修改為交換器使用者的實際UID
}
二、在共用交換器建立雲資源
以交換器使用者在共用交換器中建立1台ECS為例:
Resources: alicloud_security_group、alicloud_instance
Data Sources: alicloud_vswitches
# 指定地區
provider "alicloud" {
region = "cn-hangzhou"
}
# 指定共用交換器
variable "vsw_id" {
default = "vsw-bp1omg98fixldnwcxxxxx" # 替換為實際的共用交換器ID
}
# 擷取目標共用交換器的資訊
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"
}
管理共用交換器和使用者
交換器所有者可參考如下步驟,來完成:
查看已共用的交換器
查看共用交換器的使用者
共用更多交換器
將交換器共用給更多帳號
控制台
前往資源管理主控台的資源共用-我的共用頁面。在頂部功能表列左上處,選擇共用資源所在的地區。
在我的共用頁面,您可以:
查看已共用的交換器:單擊共用的資源頁簽進行查看。
查看共用交換器的使用者:單擊資源使用者頁簽進行查看。
單擊共用單元頁簽,找到目標共用單元,單擊共用單元ID。
您可以點擊資源或資源使用者頁簽,分別查看此共用單元內的共用交換器和使用者。
如果資源和資源使用者頁簽的共用狀態顯示為已關聯時,表示共用的資源和資源使用者添加成功:
在目標共用單元頁面,單擊右上方編輯共用單元,您可以在此共用單元內:
增加或刪除共用交換器:在第一步,勾選或取消勾選交換器。
增加或刪除共用交換器的使用者:在第三步,添加或刪除帳號UID。
檢查無誤後,在編輯共用單元頁面的第四步,單擊確定。
API
交換器所有者查看已被共用的共用交換器及使用者:
調用ListSharedResources查看共用交換器列表。
調用ListSharedTargets查看共用交換器的使用者列表。
交換器所有者在共用單元內管理共用交換器及使用者:
調用ListResourceShareAssociations查看共用單元內的交換器或使用者。
調用AssociateResourceShare在共用單元內增加共用交換器或使用者。
調用DisassociateResourceShare在共用單元內刪除共用交換器或使用者。
Terraform
查看共用交換器、共用交換器的使用者
交換器所有者查看共用單元、共用的資源、共用資源的使用者:
Datasources: alicloud_resource_manager_resource_shares、alicloud_resource_manager_shared_resources、alicloud_resource_manager_shared_targets
# 指定地區
provider "alicloud" {
region = "cn-hangzhou"
}
# 共用單元列表
data "alicloud_resource_manager_resource_shares" "example_units" {
resource_share_owner = "Self" # 查看自己共用給別人的共用單元
}
# 輸出資料行表
output "first_resource_manager_resource_share_id" {
value = data.alicloud_resource_manager_resource_shares.example_units.shares
}
# 共用的資源清單
data "alicloud_resource_manager_shared_resources" "example_resources" {
}
# 輸出資料行表
output "first_resource_manager_shared_resource_id" {
value = data.alicloud_resource_manager_shared_resources.example_resources.resources
}
# 共用資源的使用者列表
data "alicloud_resource_manager_shared_targets" "example_targets" {
}
# 輸出資料行表
output "first_resource_manager_shared_target_id" {
value = data.alicloud_resource_manager_shared_targets.example_targets.targets
}
增加或刪除共用交換器
交換器所有者可以通過在.tf
檔案中增加或刪除alicloud_resource_manager_shared_resource,實現增加或刪除共用交換器。
增加或刪除共用交換器的使用者
交換器所有者可以通過在.tf
檔案中增加或刪除alicloud_resource_manager_shared_target,實現增加或刪除共用交換器的使用者。
更多資訊
計費說明
共用 VPC 功能本身不收費。但資源所有者和使用者要為自己建立的雲資源(如ECS、RDS等)付費。
支援的地區
地區 | 支援共用VPC的地區 |
亞太地區-中國 | 華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國香港 |
亞太地區-其他 | 日本(東京)、韓國(首爾)、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、菲律賓(馬尼拉)、泰國(曼穀) |
歐美地區 | 德國(法蘭克福)、英國(倫敦)、美國(矽谷)、美國(維吉尼亞) |
中東 | 沙特(利雅得) 重要 沙特(利雅得)地區由夥伴營運。 |
配額
配額名稱 | 描述 | 預設限制 | 提升配額 |
vpc_quota_sharedvpc_share_user_num_per_vpc | 單個VPC支援共用的交換器使用者的數量 | 50個 | |
vpc_quota_sharedvpc_share_user_num_per_vswitch | 單個VPC內的單個交換器支援共用的交換器使用者的數量 | 50個 | |
vpc_quota_sharedvpc_accept_shared_vswitch_num | 單個交換器使用者支援接收的共用交換器的數量 | 30個 |