solution/networking/multi-account-multi-vpc/main.tf (43 lines of code) (raw):
# 配置 AK、Region 等信息
provider "alicloud" {
access_key = var.access_key
secret_key = var.secret_key
region = var.region
}
# assumerole到成员账号
provider "alicloud" {
alias = "memberprovider"
access_key = var.access_key
secret_key = var.secret_key
region = var.region
assume_role {
role_arn = format("acs:ram::%s:role/ResourceDirectoryAccountAccessRole", var.member_account_vpc.member_account_id)
session_name = format("%sLandingZoneSetup", var.member_account_vpc.member_account_id)
session_expiration = 999
}
}
# assumerole到运维账号
provider "alicloud" {
alias = "sharedserviceprovider"
access_key = var.access_key
secret_key = var.secret_key
region = var.region
assume_role {
role_arn = format("acs:ram::%s:role/ResourceDirectoryAccountAccessRole", var.share_service_account_cen.share_service_account_id)
session_name = format("%sLandingZoneSetup", var.share_service_account_cen.share_service_account_id)
session_expiration = 999
}
}
# 创建 CEN
resource "alicloud_cen_instance" "cen" {
provider = alicloud.sharedserviceprovider
cen_instance_name = var.share_service_account_cen.cen.instance_name
}
# 创建 业务账号下的网络资源 并加载到cen
module "network" {
providers = {
alicloud = alicloud.sharedserviceprovider
alicloud.memberprovider = alicloud.memberprovider
}
source = "./network"
member_account_id = var.member_account_vpc.member_account_id
share_service_account_id = var.share_service_account_cen.share_service_account_id
vpc = var.member_account_vpc.vpc
cen_id = alicloud_cen_instance.cen.id
region = var.region
}