部署 Active Directory 资源林

本系列文章将指导您使用托管式 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 EngineCloud DNSGoogle Cloud Observability。使用价格计算器来计算完成本教程的费用。确保包括特定于您的部署的任何其他资源。

设置 VPC 网络

创建 VPC 宿主项目

VPC 宿主项目用于创建共享 VPC 并管理与网络相关的配置,例如子网、防火墙规则和路由。

  1. 在 Google Cloud 控制台中,打开管理资源页面。

    打开“管理资源”页面

  2. 在左上角的组织下拉列表中,选择您的组织。

  3. 点击创建项目,然后输入以下设置:

    1. 项目名称:您选择作为项目名称的 ID。
    2. 结算账号:您的结算账号。
    3. 位置:要在其中创建项目的文件夹。
  4. 点击创建

防止项目被意外删除

删除项目会同时删除其中部署的所有代管式 Microsoft AD 网域。除了使用 IAM 政策限制对项目的访问权限外,您还应防止项目被意外删除

  1. Google Cloud 控制台中,打开 Cloud Shell。Cloud Shell 让您能够使用 Google Cloud 控制台中的命令行,并包含 Google Cloud 管理所需的 Google Cloud CLI 和其他工具。Cloud Shell 可能需要几分钟才能完成预配。
    激活 Cloud Shell

  2. 初始化变量以包含组织名称和 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
    
  3. 运行以下命令以查找组织 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"
    
  4. 对组织实施 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。

  1. 返回到现有的 Cloud Shell 会话。

  2. 在 VPC 宿主项目中启用