本系列文章将指导您使用托管式 Microsoft AD 在 Google Cloud上部署 Active Directory 资源林。您将了解如何:
- 设置一个共享 VPC,使您可以从多个项目访问托管式 Microsoft AD,并使用林信任将托管式 Microsoft AD 连接到本地 Active Directory。
- 配置防火墙规则,以防止未经授权的来源访问 Active Directory。
- 在单个区域中部署托管式 Microsoft AD,并将其连接到现有的共享 VPC。
- 创建一个管理虚拟机并将其加入网域。
- 使用委派管理员连接到托管式 Microsoft AD。
架构概览
要允许来自多个项目的虚拟机使用 Active Directory,您需要一个共享 VPC 和三个单独的子网:
- 托管式 Microsoft AD 子网:由托管式 Microsoft AD 用于运行网域控制器。
- 管理子网:包含专门用于管理 Active Directory 的机器。
- 资源子网:包含 Active Directory 成员服务器(例如应用或数据库服务器)。每个资源子网限定在一个区域。在本指南中,您将仅创建一个资源子网,但是如果您打算跨多个区域部署服务器,则可以在以后添加其他资源子网。

为了降低安全风险,您将部署一个具有内部 RFC 1918 IP 地址且没有互联网访问权限的管理虚拟机。您将使用 IAP TCP 隧道来登录虚拟机实例。
您将遵循分别为管理和服务器使用单独项目的最佳做法,创建两个单独的项目:
- VPC 宿主项目:包含共享 VPC 配置以及托管式 Microsoft AD。
- 管理项目:专门用于管理 Active Directory。您将在此项目中创建一个管理虚拟机,并使用它来配置 Active Directory。
准备工作
本教程使用共享 VPC,这需要用到 Google Cloud组织。如果您没有组织,请先创建一个。此外,某些设置活动要求管理角色。在继续之前,请确保您已被授予以下 IAM 角色。
本文假定您使用的是安装了 Google Cloud CLI 的 Windows 机器。如果您使用的是其他操作系统,则需要调整一些步骤。
最后,请在开始之前收集以下信息:
- VPC 宿主项目和管理项目的项目名称。这两个项目将在部署中发挥核心作用,因此请选择易于识别的名称并遵循您企业的命名规则。
- 要在其中创建 VPC 宿主项目和管理项目的文件夹。如果您还没有合适的文件夹,请考虑为跨职能的资源和服务(例如 Active Directory)创建一个单独的子文件夹。
- 用于新 Active Directory 林的林根网域的 DNS 域名。
- 在其中部署资源的初始区域。请注意,您只能在某些区域部署托管式 Microsoft AD(这不会影响您的网域的一般可用性,网域在您的 VPC 所在的所有区域中都可用)。如果不确定哪个区域最适合您的需求,请参阅选择区域时的最佳做法。您可以在稍后将部署扩展到其他区域。
- 要创建的共享 VPC 的名称。由于 VPC 将在多个项目中共享,请确保选择一个易于识别的名称。
以下子网的子网范围:
- 托管式 Microsoft AD 子网:大小必须至少为 /24。
- 管理子网:需要容纳所有管理服务器。建议使用大小为 /28 或更大的子网范围。
- 资源子网:规划此子网的大小,使其可以容纳您计划在初始区域中部署的所有服务器。
确保您的子网不与任何本地子网重叠,并留出足够的增长空间。
费用
本教程使用 Google Cloud的以下收费组件:Compute Engine、Cloud DNS 和 Google Cloud Observability。使用价格计算器来计算完成本教程的费用。确保包括特定于您的部署的任何其他资源。
设置 VPC 网络
创建 VPC 宿主项目
VPC 宿主项目用于创建共享 VPC 并管理与网络相关的配置,例如子网、防火墙规则和路由。
在 Google Cloud 控制台中,打开管理资源页面。
在左上角的组织下拉列表中,选择您的组织。
点击创建项目,然后输入以下设置:
- 项目名称:您选择作为项目名称的 ID。
- 结算账号:您的结算账号。
- 位置:要在其中创建项目的文件夹。
点击创建。
防止项目被意外删除
删除项目会同时删除其中部署的所有代管式 Microsoft AD 网域。除了使用 IAM 政策限制对项目的访问权限外,您还应防止项目被意外删除。
在 Google Cloud 控制台中,打开 Cloud Shell。Cloud Shell 让您能够使用 Google Cloud 控制台中的命令行,并包含 Google Cloud 管理所需的 Google Cloud CLI 和其他工具。Cloud Shell 可能需要几分钟才能完成预配。
激活 Cloud Shell初始化变量以包含组织名称和 VPC 宿主项目的项目 ID:
ORG_NAME=[ORG-NAME] \ VPCHOST_PROJECT_ID=[PROJECT-ID]将
[ORG-NAME]替换为您的组织名称,并将[PROJECT-ID]替换为 VPC 宿主项目的 ID。例如:ORG_NAME=example.com VPCHOST_PROJECT_ID=ad-host-123运行以下命令以查找组织 ID,将
ORG-NAME替换为组织的名称(例如example.com):ORG_ID=$(gcloud organizations list \ --filter="DISPLAY_NAME=$ORG_NAME" \ --format=value\(ID\)) && \ echo "ID of $ORG_NAME is $ORG_ID"对组织实施
compute.restrictXpnProjectLienRemoval政策:gcloud resource-manager org-policies enable-enforce \ --organization $ORG_ID compute.restrictXpnProjectLienRemoval
删除默认 VPC
Compute Engine 会在您创建的每个项目中创建一个 default VPC。此 VPC 以自动模式进行配置,这意味着系统为每个区域预先分配一个子网并自动分配子网范围。
如果您计划将 VPC 连接到本地网络,则 Compute Engine 在自动模式下使用的预定义 IP 范围不太可能满足您的需求;它们可能会与现有 IP 范围重叠,或者大小不足。您应该删除默认 VPC,然后将其替换为自定义模式 VPC。
返回到现有的 Cloud Shell 会话。
在 VPC 宿主项目中启用