Managed Active Directory 使用入门

1. 概览

托管式 Active Directory 是一项以服务形式提供的高可用性 Microsoft Active Directory 网域,托管在 Google Cloud 上。

在本教程中,您将设置新的代管式 Active Directory,创建新的 Windows 虚拟机并将其加入新网域。您将了解如何使用您熟悉的管理工具设置网络、安全功能和管理网域。

学习内容

  • 如何在 Google Cloud 上创建 Managed Active Directory
  • 如何将 Windows 虚拟机加入网域
  • 如何在受管理的 Active Directory 中管理用户和计算机

所需条件

  • 一个浏览器,例如 ChromeFirefox
  • 安装了 gcloud 工具的机器

您打算如何使用本教程?

仅阅读教程内容 阅读并完成练习

您如何评价自己在 Google Cloud Platform 方面的经验水平?

新手水平 中等水平 熟练水平

2. 设置和要求

自定进度的环境设置

  1. 登录 Cloud 控制台,然后创建一个新项目或重复使用现有项目。 (如果您还没有 Gmail 或 G Suite 账号,则必须创建一个。)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

请记住项目 ID,它在所有 Google Cloud 项目中都是唯一的名称(上述名称已被占用,您无法使用,抱歉!)。它稍后将在此 Codelab 中被称为 PROJECT_ID

  1. 接下来,您需要在 Cloud 控制台中启用结算功能,才能使用 Google Cloud 资源。

运行此 Codelab 应该不会产生太多的费用(如果有费用的话)。请务必按照“清理”部分中的所有说明操作,该部分介绍了如何关停资源,以免产生超出本教程范围的结算费用。Google Cloud 的新用户符合参与 $300 USD 免费试用计划的条件。

启动 Cloud Shell

虽然您可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在 Google Cloud 中运行的命令行环境。

激活 Cloud Shell

  1. 在 Cloud Console 中,点击激活 Cloud ShellH7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJUlANnQF0iBuUyfp1RzVad_4nCa0Zz5LtwBlUZFXFCWFrmrWZLqg1MkZz2LdgUDQ

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb-IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFI4IRF0W7WZk6hFqZDUGXQQXrw21GuMm2ecHrbzQ

如果您以前从未启动过 Cloud Shell,将看到一个中间屏幕(在折叠下面),描述它是什么。如果是这种情况,请点击继续(您将永远不会再看到它)。一次性屏幕如下所示:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn-__DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4twUoewT1SUjd6Y3h81RG3rKIkqhoVlFR-G7w

预配和连接到 Cloud Shell 只需花几分钟时间。

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7yR1NseZKJvcxAZrPb8wRxoqyTpD-gbhA

这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证。只需使用一个浏览器或 Google Chromebook 即可完成本 Codelab 中的大部分(甚至全部)工作。

在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设置为您的项目 ID:

  1. 在 Cloud Shell 中运行以下命令以确认您已通过身份验证:
gcloud auth list

命令输出

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

命令输出

[core]
project = <PROJECT_ID>

如果不是上述结果,您可以使用以下命令进行设置:

gcloud config set project <PROJECT_ID>

命令输出

Updated property [core/project].

3. 初始化

初始化的 GCP 项目将用于托管所有已加入网域的 Windows 虚拟机和托管式 Active Directory 之间的 VPC 网络。

我们将设置几个变量,以便稍后更轻松地编写脚本。

  • 确定域名(例如:ad.yourcompany.com
  • 确定要为受管网域创建网域控制器的区域
  • 确定虚拟机名称、防火墙规则和网络名称。

目前支持以下地区:

  1. “us-west1”
  2. “us-west2”
  3. “us-central1”
  4. “us-east1”
  5. “us-east4”
  6. “europe-north1”
  7. “europe-west1”
  8. “europe-west4”
  9. “asia-east1”
  10. “asia-southeast1”

设置变量

如果是在 Linux 上运行,请键入

$ PROJECT_ID="YOUR_PROJECT_ID"
$ VPC="adtutorialvpc"
$ FIREWALL_VPC_RULE="adtutorialvpcrule"
$ REGION="us-west1"
$ ZONE="us-west1-a"
$ DOMAIN_NAME="ad.tutorial"
$ VM_NAME="tutorial1"

如果是在 Windows 上运行,请在 PowerShell 终端中输入

PS> $PROJECT_ID=YOUR_PROJECT_ID
PS> $VPC=adtutorialvpc
PS> $FIREWALL_VPC_RULE=adtutorialvpcrule
PS> $REGION=us-west1
PS> $ZONE=us-west1-a
PS> $DOMAIN_NAME=ad.tutorial
PS> $VM_NAME=tutorial1

设置当前项目 ID,以便所有后续操作都在正确的云项目上下文中进行:

$ gcloud config set project $PROJECT_ID

启用 Cloud API

为了启用受管 Active Directory,我们需要启用两个 API:DNS 和受管身份。

启用 DNS API

$ gcloud services enable dns.googleapis.com

启用 Managed Identities API

$ gcloud services enable managedidentities.googleapis.com

4. 创建虚拟私有云网络

为了在受管理的 Active Directory 域控制器与 Windows 虚拟机之间建立连接,我们需要创建虚拟私有云网络。

创建 VPC 网络

$ gcloud compute networks create $VPC --subnet-mode=auto --bgp-routing-mode=global

创建防火墙规则,以允许 Windows 虚拟机与网域控制器之间建立连接

$ gcloud compute firewall-rules create $FIREWALL_VPC_RULE --network $VPC --allow tcp,udp,icmp --source-ranges=0.0.0.0/0

5. 创建网域控制器

我们设置了将托管式 AD 与项目中的资源(虚拟机)连接起来的 VPC。现在,您可以设置受管理的网域控制器了。

创建 Managed Active Directory

(此操作预计需要大约 1 小时)

$ gcloud active-directory domains create $DOMAIN_NAME --reserved-ip-range=10.0.1.0/24 --region=$REGION --authorized-networks=projects/$PROJECT_ID/global/networks/$VPC

在部署期间或任何时候,您都可以验证网域的配置状态。

支持以下 3 种状态:

正在创建

已开始创建 AD 网域,正在进行中。

准备就绪

AD 网域创建完成,网域已可供使用。

维护中

AD 网域仍然可用,但正在进行更新(升级网域控制器、添加区域等)

验证部署状态

$ gcloud active-directory domains describe $DOMAIN_NAME

网域创建完成后,此命令应报告 READY 状态。

6. 将 Windows 虚拟机添加到受管理的网域

在 Google Compute Engine 上创建新的 Windows 虚拟机

$ gcloud beta compute instances create $VM_NAME --zone=$ZONE --machine-type=n1-standard-2 --subnet=$VPC --network-tier=PREMIUM --scopes=https://www.googleapis.com/auth/cloud-platform --image=windows-server-2016-dc-v20181009 --image-project=windows-cloud --boot-disk-size=50GB --boot-disk-type=pd-standard

创建一条防火墙规则,以允许远程桌面连接到 Windows 虚拟机

$ gcloud compute firewall-rules create allow-rdp --allow tcp:3389

在连接到虚拟机并将其添加到网域之前,我们需要确定两个用户及其凭据:

  • 虚拟机的本地管理员 - 这是在虚拟机加入网域之前能够远程连接到虚拟机的必要条件
  • 受管理的网域管理员用户 - 需要此用户才能将虚拟机加入网域并执行所有网域管理操作

7. 获取受管网域管理员凭据

确定受管理的网域管理员用户名

$ gcloud active-directory domains describe $DOMAIN_NAME

此操作将输出管理员用户名。默认情况下,它称为 miadmin

重置受管网域管理员的密码

$ gcloud active-directory domains reset-managed-identities-admin-password $DOMAIN_NAME

您必须确认 (Y/N) 该操作,因为该操作会以明文形式显示密码。在终端中。

保存用户和密码 - 我们稍后会用到。

8. 加入网域

生成 Windows 本地用户和密码

您需要提供 Windows 本地用户和密码,才能远程连接到您创建的虚拟机。您可以使用 gcloud 生成这些文件。

$ gcloud compute reset-windows-password --user=usr1 $VM_NAME

此命令将创建一个名为“usr1”的本地用户并生成其密码

使用 Chrome RDP 连接到 Windows 实例

在新浏览器窗口中打开以下网址:https://console.cloud.google.com/compute/instancesDetail/zones/your-zone/instances/your-vm-name?project=your-project-name

点击 RDP 打开 ChromeRDP:

d0bd7a5329d27723.png

输入本地用户和密码。这会将您连接到您创建的 Windows 虚拟机。

23fbff0f7c180f62.png

在虚拟机上,使用 PowerShell 打开提升权限的命令提示符:

c5c876d4424217e7.png

在提升权限的 PowerShell 中,输入以下内容:

$ add-computer –domainname your-domain -Credential your-domain\miadmin -restart –force

系统会要求您提供受管管理员密码,然后虚拟机会加入您的受管网域并重启。等待 2 分钟,然后继续执行下一步。

此时,您的虚拟机已加入网域,但您无权使用托管网域管理员用户连接到该虚拟机。您需要将受管理的网域管理员用户添加为相应虚拟机的本地管理员。

使用本地管理员用户再次连接到虚拟机(与上述说明相同)。

b2c98b9784dd421e.png

如果出现这种情况,请按照警告说明操作。这是因为我们将虚拟机加入了网域。

尝试使用本地管理员用户再次连接,并打开提升权限的 PowerShell 命令提示符。

添加托管网域管理员用户,使其成为虚拟机上的本地管理员

$ net localgroup administrators /add your-domain-name\miadmin

现在,您可以断开与虚拟机的连接。

9. Active Directory 工具

虚拟机加入网域后,您可以使用熟悉的 Active Directory 工具来管理用户、群组、计算机和组策略。

使用受管网域管理员的凭据连接到虚拟机(方法与上文所述相同)。打开提升权限的 PowerShell 命令提示符:

$ Install-WindowsFeature -Name "RSAT-AD-Tools" -IncludeAllSubFeature -IncludeManagementTools -Confirm

系统会要求您确认,然后安装 Active Directory 管理工具。

安装完成后,您可以使用 dsa.msc(Active Directory 用户和计算机)以及其他熟悉的 Active Directory 工具来管理“客户 OU”下的网域

3e548e3c8f88dbc1.png

10. 恭喜!

恭喜,您已成功在 Google Cloud Platform 上创建新的受管 Active Directory。

后续步骤

11. 清理

您可以删除 Windows 虚拟机和 VPC 网络。

删除 Windows 虚拟机

  • 在 GCP Console 中,前往虚拟机实例页面
  • 点击要删除的实例旁边的复选框
  • 点击页面顶部的“删除”按钮以删除实例。

删除 VPC 网络

  • 在 GCP 控制台中,前往 VPC 网络页面
  • 选择您创建的 VPC 网络
  • 点击页面顶部的“删除”按钮。