我想在 GCP(一个组织)中设置几个服务(GCE、GAE、GCR 和 GCF 的混合)。其中一些需要相互通信,其他则不需要。当然,我不想在没有充分理由的情况下将任何服务暴露给互联网,因此它们应该内部通信(通过其内部 IP/DNS)。不同的服务属于不同的团队,因此我想将它们放入不同的项目中。
当然,我做了一些研究,我看到的三个选项是:
A)把所有东西放在一个项目中
B)选择一个项目作为宿主项目并使用共享 VPC
C)在需要时使用对等连接
每种方法都有优点和缺点。
A-简单的但也违反了最小特权,没有明确的服务分离
乙- 也相当简单的但是一切都可以连接到其他一切,不太清楚哪个项目应该是主机,主机单独决定 FW 规则等 - 例如,如果我需要从本地机器连接到数据库怎么办?
C- 看起来不错,但仅限于 25 个对等体 - 如果服务需要连接更多对等体怎么办?
我感觉我忽略了一些基本的东西。默认情况下,项目是彼此隔离的,对吧?它们从默认VPC,如果我要在两个 vanilla 项目中创建两个虚拟机,它们将获得相同的内部 IP。您可能已经注意到,我在网络设计方面没有很强的背景。
什么是好的选择?对于这种情况,有哪些最佳实践?为什么?我是否遗漏了一些选项?
答案1
对于上述情况,我建议共享 VPC。
通常建议将最集中的项目用作共享 VPC 中的宿主项目,但对于大型组织而言,创建一个单独的项目作为宿主项目也是一个好主意,然后将其附加到一个或多个服务项目。
共享 VPC 与云 IAM、防火墙规则和身份感知代理结合使用时,可实现出色的隔离、访问控制和数据传输级别。
有关共享 VPC 的详细信息,请参阅以下链接 -
https://www.youtube.com/watch?v=WotV3D01tJA
https://cloud.google.com/vpc/docs/shared-vpc
共享 VPC 还可以与 VPC Peering 结合使用,以提供两全其美的功能,有关详细信息,请参阅此链接 -
https://cloud.google.com/vpc/docs/vpc-peering#shared_vpc
答案2
您在 RBAC 框架 (IAM) 和网络/防火墙方面缺少很多进展。单个项目将为您提供最佳的安全性和可操作性。