Managed Active Directory 使用入门

1. 概览

Managed Active Directory 是托管在 Google Cloud 上的高可用性 Microsoft Active Directory 网域即服务。

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

学习内容

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

所需条件

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

您打算如何使用本教程?

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

如何评价您的 Google Cloud Platform 使用体验?

<ph type="x-smartling-placeholder"></ph> 新手 中级 熟练

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 与我们项目 (VM) 中的资源连接的 VPC。现在可以设置受管理的网域控制器了。

创建代管式 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

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

  • 虚拟机上的本地管理员 - 必须拥有此权限,才能在虚拟机加入网域之前远程连接到虚拟机
  • Managed Domain Admin user - 将虚拟机加入网域以及执行所有网域管理操作所需的权限

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

在虚拟机上,使用 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 工具来管理“客户组织部门”下的网域。

3e548e3c8f88dbc1

10. 恭喜!

恭喜!您在 Google Cloud Platform 上成功创建了一个新的托管式 Active Directory。

后续步骤

.

11. 清理

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

删除 Windows 虚拟机

  • 在 GCP Console 中,转到“虚拟机实例”页面
  • 点击要删除的实例旁边的复选框
  • 点击“删除”删除实例。

删除 VPC 网络

  • 在 GCP Console 中,转到 VPC 网络页面
  • 选择您创建的 VPC 网络
  • 点击“删除”按钮。