+86 189 8218 1436Mon. - Fri. 10:00-22:00

GCP Shared VPC 基本介绍配置教程

GCP Shared VPC 基本介绍配置教程
Posted in: GCP谷歌云服务器代维护, Google谷歌GCP网站托管与服务器运维服务, Google谷歌GCP运维外包公司 Started by

GCP Shared VPC 基本介绍配置教程

Shared VPC 基本介绍与实作

Shared VPC 基本概念

Shared VPC可以让同一个Organization(机构)底下的数个projects(专案)连结相同的VPC network,让这些projects能够安全、有效率地使用内网传输。如下图,Shared VPC的架构为一个Host project连接多个Service project。Host project的VPC networks就称为Shared VPC networks。而位于Service project的Eligible resources可以使用Shared VPC networks的subnets。

Screen-Shot-2018-09-03-at-3.36.18-PM

Shared VPC 的IAM roles 分为三种:

  • Organization Admin:
    • 位于Organization-level,赋予使用者Shared VPC Admin 与新增、删除project 的roles。
  • Shared VPC Admin:
    • 位于Organization-level,拥有设置Shared VPC 的权限。Shared VPC Admin 赋予使用者Service Project Admin roles。
  • Service Project Admin:
    • 位于Organization or Project level,Service Project Admin 分为两种Project-level 以及Subnet-level。依照Shared VPC Admin 的设定,可以取得一整个project 的管理权限或是只有几个subnets 的管理权限。

官方建议的Shared VPC 最佳实例是赋予每个使用者最少的权限。Shared VPC Admins 负责将网路管理任务委派给Shared VPC network 中的网路和安全管理员,而不允许Service Project Admins 来进行网路维护。Service Project Admins 只拥有创建与管理使用Shared VPC Network 的instances

Shared VPC 计价与额度

限制额度:

项目 限制 备注
一个Host projects 的Service projects 数量 100 联络我们来加大限制
Host projects 的数量 100 无法加大限制
Service projects 连接Host projects 的数量 1 无法加大限制

计价方式:

如果该Resource 是创建在Service project 上,帐单会计在Service project 的Billing。举例来说,一台位于Service project 的VM 产生了Egress 费用。即使该台VM 使用的是Shared VPC network 的subnet,Egress 费用还是会记录在Service project 的Billing account。

Shared VPC 手把手教学

预先准备

如果还未使用gcloud 验证Organization Admin 的身份则需要按照以下步骤验证Organization Admin 的身份,或是直接使用Console 的Cloud Shel,小编这边使用的是Cloud Shelll。[ORG_ADMIN] 替换为Organization Admin 的帐号

gcloud auth login [ORG_ADMIN]

查看Organization 的ID

gcloudorganizations list

赋予使用者Shared VPC Admin 的role,[ORG_ID] 为Organization ID,[EMAIL_ADDRESS] 为使用者的帐号。

gcloud organizations add-iam-policy-binding [ORG_ID] \
--member 'user:[EMAIL_ADDRESS]' \
--role "roles/compute.xpnAdmin"

完成以上的动作后,登出Organization Admin 的身份

gcloud auth revoke [ORG_ADMIN]

设置Host project

选定一个project 为Host project。

gcloud compute shared-vpc enable sharedvpc-1 //sharedvpc-1 為 Host project

列出Organization 里面所有的Host projects,确认刚刚的设定是否成功。[ORG_ID] 为Organization 的ID

gcloud compute shared-vpc organizations list-host-projects [ORG_ID]

连结Service projects

连结Service project 至刚刚启用的Host project

gcloud compute shared-vpc associated-projects add sharedvpc-2 \
--host-project sharedvpc-1

确认是否有成功连结至Host project

gcloud compute shared-vpc get-host-project sharedvpc-2

也可以列出指定Host project 的所有Service project

gcloud compute shared-vpc list-associated-resources sharedvpc-1

设置Service Project Admins

使用者可以根据需求划分subnets 的权限,为处于Service project 的其中一位使用者加入Service Project Admin 的Role。这个Role 有权限存取所有的subnets。

gcloud projects add-iam-policy-binding sharedvpc-1 \
--member "user:[SERVICE_PROJECT_ADMIN]" \
--role "roles/compute.networkUser"

完成以上的动作后,登出Shared VPC Admin 的身份

gcloud auth revoke [SHARED_VPC_ADMIN]

使用Shared VPC

以下的步骤,根据GCP 的Best practice,会由Service Project Admins 来实作。列出所有该Service Project Admin 可用的subnets。

gcloud compute networks subnets list-usable --project sharedvpc-1

注册一个静态的内部IP,而该IP 会从指定的subnet 范围内随机选出。

gcloud compute addresses create sharedvpcip \
--project sharedvpc-2 \
--subnet projects/sharedvpc-1/regions/asia-east1/subnetworks/default

新增一台VM 并进行验证

Service Project Admins 只能使用他们有权限存取的subnet 创建一台VM instance。当GCP 收到在Shared VPC network 创建一台VM instance 的请求时,GCP 会自动判断该使用者是否有权限可以使用该段subnet。

gcloud compute instances create sharedvpc-2vm \
--project sharedvpc-2 \
--private-network-ip sharedvpcip \
--zone asia-east1-a --subnet \
projects/sharedvpc-1/regions/asia-east1/subnetworks/default

在Host project 新增一台VM (选定与sharedvpc-2vm 同一个subnet )并ssh 至该VM。ping sharedvpc-2vm 的内部IP,成功互连的话代表两台位于不同project 的VM 成功地创建在同一个subnet 里,并可以使用内网互通。

ping [IP_ADDR]//為處於 Host project 的 VM IP

Shared VPC FAQ

  • 一个project 是否能同时为Host project 跟Service Project?
    • 不行。
  • 一个service project 是否能够连结多个host projects?
    • 不行,一个service project 只能连结一个host project。但一个host project 可以连结多个service projects。
  • Share VPC的架构与权限机制
    • 权限设定可参考文件
  • 如何设定host & service projects?
  • GCP 的最佳实例?
  • Shared VPC 的计费是否有要留意的部分?
    • shared VPC 的计价方式跟一般VPC network 的计价方式是相同的

原文出处