1. 概览
Managed Active Directory 是托管在 Google Cloud 上的高可用性 Microsoft Active Directory 网域即服务。
在本教程中,您将设置一个新的代管式 Active Directory,创建一个新的 Windows 虚拟机,并将其加入新网域。您将了解如何使用自己熟悉的管理工具来设置网络、安全设置和管理网域。
学习内容
- 如何在 Google Cloud 上创建代管式 Active Directory
- 如何将 Windows 虚拟机添加到网域
- 如何管理 Managed Active Directory 中的用户和计算机
所需条件:
您打算如何使用本教程?
如何评价您的 Google Cloud Platform 使用体验?
<ph type="x-smartling-placeholder">2. 设置和要求
自定进度的环境设置
请记住项目 ID,它在所有 Google Cloud 项目中都是唯一的名称(上述名称已被占用,您无法使用,抱歉!)。它稍后将在此 Codelab 中被称为 PROJECT_ID
。
- 接下来,您需要在 Cloud 控制台中启用结算功能,才能使用 Google Cloud 资源。
运行此 Codelab 应该不会产生太多的费用(如果有费用的话)。请务必按照“清理”部分部分,其中会指导您如何关停资源,以免产生超出本教程范围的结算费用。Google Cloud 的新用户符合参与 $300 USD 免费试用计划的条件。
启动 Cloud Shell
虽然 Google Cloud 可以通过笔记本电脑远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在 Google Cloud 中运行的命令行环境。
激活 Cloud Shell
- 在 Cloud Console 中,点击激活 Cloud Shell
。
如果您以前从未启动过 Cloud Shell,将看到一个中间屏幕(在折叠下面),描述它是什么。如果是这种情况,请点击继续(您将永远不会再看到它)。一次性屏幕如下所示:
预配和连接到 Cloud Shell 只需花几分钟时间。
这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证。只需使用一个浏览器或 Google Chromebook 即可完成本 Codelab 中的大部分(甚至全部)工作。
在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设置为您的项目 ID:
- 在 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)
- 决定在哪个区域为代管式网域创建网域控制器
- 确定虚拟机名称、防火墙规则和网络名称。
目前支持以下区域:
- “us-west1”
- “us-west2”
- “us-central1”
- “us-east1”
- “us-east4”
- “europe-north1”
- “europe-west1”
- “europe-west4”
- “asia-east1”
- “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:
输入本地用户和密码。此操作会将您连接到您创建的 Windows 虚拟机。
在虚拟机上,使用 Powershell 打开提升权限的命令提示符:
在提升权限的 Powershell 中,输入:
$ add-computer –domainname your-domain -Credential your-domain\miadmin -restart –force
系统会要求您提供受管理的管理员密码,然后虚拟机将加入您的受管网域并重启。等待 2 分钟,然后进入下一步。
此时,您的虚拟机已加入网域,但您无权使用受管理的网域管理员用户连接到该虚拟机。您需要将受管理的网域管理员用户添加为该虚拟机的本地管理员。
使用本地管理员用户再次连接到虚拟机(说明与上文相同)。
如果出现这种情况,请按照警告说明操作。之所以发生这种情况,是因为我们将虚拟机加入了网域。
请使用本地管理员用户重新尝试重新连接,然后打开提升权限的 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 工具来管理“客户组织部门”下的网域。
10. 恭喜!
恭喜!您在 Google Cloud Platform 上成功创建了一个新的托管式 Active Directory。
后续步骤
- 代管式 Active Directory 文档
- 详细了解如何在 GCP 上使用 Windows 虚拟机。
- 详细了解如何连接到 Windows 虚拟机。
- 详细了解如何在 GCP 上部署容错 Active Directory
- 详细了解 Google Cloud Platform 上的 .NET。
.
11. 清理
您可以删除 Windows 虚拟机和 VPC 网络。
删除 Windows 虚拟机
- 在 GCP Console 中,转到“虚拟机实例”页面。
- 点击要删除的实例旁边的复选框
- 点击“删除”删除实例。
删除 VPC 网络
- 在 GCP Console 中,转到 VPC 网络页面
- 选择您创建的 VPC 网络
- 点击“删除”按钮。