

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS 微软 AD 托管最佳实践
<a name="ms_ad_best_practices"></a>

以下是一些建议和指南，你应该考虑这些建议和指导方针，以避免出现问题并充分利用 AWS 托管 Microsoft AD。

**Topics**
+ [设置 AWS 托管 Microsoft AD 的最佳做法](#ms_ad_best_practices_set_up)
+ [使用 AWS 托管 Microsoft AD 目录时的最佳做法](#ms_ad_bp_using_directory)
+ [为 AWS 托管 Microsoft AD 编程应用程序时的最佳实践](#program_apps)

## 设置 AWS 托管 Microsoft AD 的最佳做法
<a name="ms_ad_best_practices_set_up"></a>

以下是设置 AWS Managed Microsoft AD 时的一些建议和指南：

**Topics**
+ [先决条件](#ms_ad_best_practices_prereq)
+ [创建你的 Microsoft AWS 托管广告](#ms_ad_best_practices_create)

### 先决条件
<a name="ms_ad_best_practices_prereq"></a>

创建目录之前请考虑以下这些准则。

#### 验证目录类型是否正确
<a name="choose_right_type"></a>

Directory Service 提供了多种与其他 AWS 服务Microsoft Active Directory配合使用的方式。您可以根据预算成本选择具有适当功能的目录服务以满足您的需求：
+ **AWS 微软目录服务 Active Directory** 是一款托管在云端的功能丰富的Microsoft Active Directory托管服务。 AWS AWS 如果您拥有超过 5,000 个用户，并且需要在托管目录和本地目录之间建立信任关系，那么 AWS 托管 Microsoft AD 是您的最佳选择。
+ **AD Con** nector 只需将您现有的本地活动目录连接到 AWS。当您想要将现有本地目录与 AWS 服务一起使用时，AD Connector 是您的最佳选择。
+ **Simple AD** 是一种小规模、低成本的目录，具有基础的 Active Directory 兼容性。其支持 5000 个或更少的用户、兼容 Samba 4 的应用程序，并支持 LDAP 感知型应用程序的 LDAP 兼容性。

有关 Directory Service 选项的更详细比较，请参阅[选择哪一个](what_is.md#choosing_an_option)。

#### 确保您的 VPCs 和实例配置正确
<a name="vpc_config"></a>

为了连接、管理和使用您的目录，必须正确配置与 VPCs 这些目录关联的。有关 VPC 安全和网络要求的信息，请参阅 [创建 AWS 托管 Microsoft AD 的先决条件](ms_ad_getting_started.md#ms_ad_getting_started_prereqs)、[AD Connector 先决条件](ad_connector_getting_started.md#prereq_connector) 或 [Simple AD 先决条件](simple_ad_getting_started.md#prereq_simple)。

如果要将实例添加到域，请确保您具有实例连接并且可以远程访问实例，如[将 Amazon EC2 实例加入您的 AWS 托管微软 AD 的方法](ms_ad_join_instance.md) 中所述。

#### 注意限制
<a name="aware_of_limits"></a>

了解特定目录类型的各种限制。对象的可用存储空间和总大小是可以存储在目录中的对象数量的唯一限制。有关所选目录的详细信息，请参阅 [AWS 托管微软 AD 配额](ms_ad_limits.md)、[AD Connector 配额](ad_connector_limits.md) 或 [Simple AD 限额](simple_ad_limits.md)。

#### 了解目录 AWS 的安全组配置并使用
<a name="understandsecuritygroup"></a>

AWS 创建[安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule)并将其附加到目录的域控制器[弹性网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)。此安全组可阻止流向域控制器的不必要流量，并允许 Active Directory 通信所需的流量。 AWS 将安全组配置为仅打开 Active Directory 通信所需的端口。在默认配置中，安全组接受来自 AWS 托管 Microsoft AD VPC IPv4 CIDR 地址的这些端口的流量。 AWS 将安全组附加到您的域控制器接口，这些接口可从您的对等设备内部进行访问或调整大小[VPCs](https://aws.amazon.com/vpc/)。即使您修改路由表、更改与 VPC 的网络连接以及配置 [NAT 网关服务](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html)，这些接口也无法从 Internet 访问。因此，只有具有指向 VPC 的网络路径的实例和计算机可以访问目录。这消除了配置特定地址范围的需求，从而简化了设置。而您只需要配置到 VPC 的路由和安全组，使其仅允许来自可信实例和计算机的流量。

##### 修改目录安全组
<a name="modifyingsecuritygroup"></a>

如果您希望提升目录安全组的安全性，可以修改它们，接受来自更严格控制的 IP 地址列表的流量。例如，您可以将接受的地址从您的 VPC IPv4 CIDR 范围更改为特定于单个子网或计算机的 CIDR 范围。同样，您可以选择将目标地址限制为您的域控制器可以与之通信的地址。只有在您完全了解安全组的筛选如何工作时，才进行这样的更改。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[适用于 Linux 实例的 Amazon EC2 安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)。不当的更改可能会导致与目标计算机和实例的通信中断。 AWS 建议您不要尝试为域控制器打开其他端口，因为这会降低目录的安全性。请仔细查看 [AWS 责任共担模型](https://aws.amazon.com/compliance/shared-responsibility-model/)。

**警告**  
从技术上来说，您可以将目录使用的安全组与您创建的其他 EC2 实例关联。但是， AWS 建议不要这样做。 AWS 可能有理由在不另行通知的情况下修改安全组，以满足托管目录的功能或安全需求。此类更改会影响目录安全组相关联的任何实例。此外，将目录安全组与您的 EC2 实例关联起来会导致 EC2 实例潜在的安全风险。目录安全组接受来自 AWS 托管微软 AD VPC IPv4 CIDR 地址的必需 Active Directory 端口上的流量。如果您将此安全组与 EC2 实例关联而该实例具有连接到 Internet 的公共 IP 地址，则 Internet 上的任意计算机都可以在开放端口上与 EC2 实例通信。

### 创建你的 Microsoft AWS 托管广告
<a name="ms_ad_best_practices_create"></a>

以下是您在创建 AWS 托管 Microsoft 广告时需要考虑的一些建议。

**Topics**
+ [记住管理员 ID 和密码](#ms_ad_remember_pw)
+ [创建 DHCP 选项集](#bp_create_dhcp_options_set)
+ [启用条件转发器设置](#bp_conditional_forwarder_settings)
+ [部署额外的域控制器](#bp_create_additional_dcs)
+ [了解 AWS 应用程序的用户名限制](#usernamerestrictions)

#### 记住管理员 ID 和密码
<a name="ms_ad_remember_pw"></a>

设置目录时，需要提供管理员账户的密码。该帐户 ID 是 AWS 托管 Microsoft AD 的*管理员*。请记住为此账户创建的密码；否则无法向您的目录中添加对象。

#### 创建 DHCP 选项集
<a name="bp_create_dhcp_options_set"></a>

我们建议您为 Directory Service 目录创建 DHCP 选项集，然后将 DHCP 选项集分配给您的目录所在的 VPC。这样，该 VPC 中的任何实例都可以指向指定域，并且 DNS 服务器可以解析其域名。

有关 DHCP 选项集的更多信息，请参阅 [为 AWS 托管的 Microsoft AD 创建或更改 DHCP 选项集](dhcp_options_set.md)。

#### 启用条件转发器设置
<a name="bp_conditional_forwarder_settings"></a>

 应启用以下条件转发设置“*将此条件转发器存储在 Active Directory 中，按如下方式复制：*”。启用这些设置可确保由于基础设施故障或过载故障而更换节点时，条件转发器设置保持不变。

应在一个启用先前设置的域控制器上创建条件转发器。这将允许复制到其他域控制器。

#### 部署额外的域控制器
<a name="bp_create_additional_dcs"></a>

默认情况下， AWS 创建两个存在于不同可用区域中的域控制器。在软件修补期间以及出现其他事件导致一个域控制器无法访问或不可用时，这提供了故障恢复能力。我们建议您[部署额外的域控制器](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_deploy_additional_dcs.html)，以进一步提高恢复能力，并在出现较长期事件影响对某个域控制器或某个可用区的访问时，确保向外扩展性能。

有关更多信息，请参阅 [使用 Windows DC 定位器服务](#program_dc_locator)。

#### 了解 AWS 应用程序的用户名限制
<a name="usernamerestrictions"></a>

Directory Service 支持大多数可用于构造用户名的字符格式。但是，对于用于登录 AWS 应用程序（例如、、Amazon WorkMail 或 Quick）的用户名有一些字符限制。 WorkSpaces WorkDocs这些限制要求不使用以下字符：
+ 空间
+ 多字节字符
+ \$1"\$1\$1%&'()\$1\$1,/:;<=>?@[\$1]^`\$1\$1\$1\$1

**注意**  
仅允许在 UPN 后缀之前使用 @ 符号。

## 使用 AWS 托管 Microsoft AD 目录时的最佳做法
<a name="ms_ad_bp_using_directory"></a>

在使用 AWS 托管 Microsoft AD 时，请记住以下建议。

**Topics**
+ [不要更改预定义用户、组和组织单位](#predefined_groups)
+ [自动加入域](#auto_join_domains)
+ [正确设置信任](#setup_trust_correctly)
+ [跟踪您的域控制器性能](#bp_scale_dcs)
+ [仔细规划架构扩展](#manage_schema_extensions)
+ [关于负载均衡器](#manage_load_balancer)
+ [创建实例的备份](#make_backups)
+ [设置 SNS 消息收发](#use_sns)
+ [应用目录服务设置](#ds-settings)
+ [在删除目录之前删除 Amazon Enterprise 应用程序](#remove_rds)
+ [使用 SMB 2.x 客户端来访问 SYSVOL 和 NETLON 共享](#use_smbv2)

### 不要更改预定义用户、组和组织单位
<a name="predefined_groups"></a>

使用 Directory Service 启动目录时， AWS 会创建一个包含目录中所有对象的组织单元 (OU)。此 OU (具有您在创建目录时键入的 NetBIOS 名称) 位于域根目录中。域根由所有和管理 AWS。还会创建几个组和一个管理用户。

不要移动、删除或以任何其他方式更改这些预定义对象。这样做会使您自己和 AWS您的目录都无法访问。有关更多信息，请参阅 [用你的 AWS 托管 Microsoft AD 创建了什么](ms_ad_getting_started_what_gets_created.md)。

### 自动加入域
<a name="auto_join_domains"></a>

启动要成为 Directory Service 域一部分的 Windows 实例时，通常最简单的方法是将域作为实例创建过程的一部分加入该域，而不是稍后手动添加实例。要自动加入域，只需在启动新实例时为 **Domain join directory** 选择正确的目录。可以在[将 Amazon EC2 Windows 实例加入您的 AWS 托管微软 AD 活动目录](launching_instance.md) 中找到详细信息。

### 正确设置信任
<a name="setup_trust_correctly"></a>

在你的 Microsoft AD AWS 托管目录与其他目录之间设置信任关系时，请记住以下准则：
+ 信任类型必须在两侧匹配（林或外部）
+ 如果使用单向信任（在信任域上传出、在信任域上传入），请确保正确设置信任方向。
+ 完全限定的域名 (FQDNs) 和 NetBIOS 名称在林/域之间必须是唯一的

有关设置信任关系的更多详细信息和特定说明，请参阅[在你的 Microsoft AWS 托管 AD 和自我管理的 AD 之间建立信任关系](ms_ad_setup_trust.md)。

### 跟踪您的域控制器性能
<a name="bp_scale_dcs"></a>

为了帮助优化扩展决策并提高目录弹性和性能，我们建议您使用 CloudWatch 指标。有关更多信息，请参阅 [CloudWatch 用于监控您的 AWS 托管 Microsoft AD 域控制器的性能](ms_ad_monitor_dc_performance.md)。

有关如何使用控制 CloudWatch 台设置域控制器指标的说明，请参阅 AWS 安全博客中的[如何根据利用率指标自动扩展 Microsoft AD AWS 托管](https://aws.amazon.com/blogs/security/how-to-automate-aws-managed-microsoft-ad-scaling-based-on-utilization-metrics/)。

### 仔细规划架构扩展
<a name="manage_schema_extensions"></a>

应用架构扩展时进行周全考虑，针对重要和频繁的查询为您的目录编制索引。慎重使用以免为目录过度地编制索引，因为索引将占用目录空间并且快速更改的索引值可能会导致性能问题。要添加索引，您必须创建一个轻型目录访问协议 (LDAP) 目录交换格式 (LDIF) 文件并扩展您的架构更改。有关更多信息，请参阅 [扩展你的 AWS 托管微软 AD 架构](ms_ad_schema_extensions.md)。

### 关于负载均衡器
<a name="manage_load_balancer"></a>

请勿在 AWS 托管 Microsoft AD 端点前使用负载平衡器。 Microsoft设计了 Active Directory (AD)，用于域控制器 (DC) 发现算法，该算法无需外部负载平衡即可找到响应速度最快的运行 DC。外部网络负载均衡器不准确地检测到活动状态， DCs 并可能导致您的应用程序被发送到即将启动但尚未准备就绪的 DC。有关更多信息，请参阅 Microsoft 上的[负载平衡器和 Active Directory](https://social.technet.microsoft.com/wiki/contents/articles/33547.load-balancers-and-active-directory.aspx) TechNet ，其中建议修复应用程序以正确使用 Active Directory，而不是实现外部负载均衡器。

### 创建实例的备份
<a name="make_backups"></a>

如果您决定手动向现有 Directory Service 域中添加实例，请先对该实例进行备份或拍摄快照。这在加入 Linux 实例时尤其重要。用于添加实例的某些过程如果执行不正确，可能使实例无法访问或不可用。有关更多信息，请参阅 [使用快照恢复你的 AWS 托管 Microsoft AD](ms_ad_snapshots.md)。

### 设置 SNS 消息收发
<a name="use_sns"></a>

通过 Amazon Simple Notification Service（Amazon SNS），您可以在目录状态发生变化时接收电子邮件或文本（SMS）消息。如果您的目录从 **Active** 状态变为 **Impaired** 或 **Inoperable** 状态，您将收到通知。当目录恢复为“活动”状态时，您也会收到通知。

另请记住，如果您有一个 SNS 主题接收来自的消息 Directory Service，则在从 Amazon SNS 控制台删除该主题之前，应将您的目录与其他 SNS 主题相关联。否则您可能错过重要的目录状态消息。有关如何设置 Amazon SNS 的信息，请参阅 [使用亚马逊简单通知服务启用 AWS 托管 Microsoft AD 目录状态通知](ms_ad_enable_notifications.md)。

### 应用目录服务设置
<a name="ds-settings"></a>

AWS 托管 Microsoft AD 允许你定制安全配置，以满足你的合规和安全要求。 AWS Microsoft AD 会将配置部署并维护到您目录中的所有域控制器，包括在添加新区域或其他域控制器时。您可以为所有新目录和现有目录配置和应用这些安全设置。您可以按照[编辑目录安全设置](ms_ad_directory_settings.md#edit-ds-settings)或通过 [UpdateSettingsAPI](https://docs.aws.amazon.com//directoryservice/latest/devguide/API_UpdateSettings.html) 中的步骤在控制台中执行此操作。

有关更多信息，请参阅 [编辑 AWS 托管的 Microsoft AD 目录安全设置](ms_ad_directory_settings.md)。

### 在删除目录之前删除 Amazon Enterprise 应用程序
<a name="remove_rds"></a>

在删除与一个或多个亚马逊企业应用程序（如亚马逊 WorkSpaces 应用程序管理器 WorkSpaces WorkDocs、亚马逊或亚马逊关系数据库服务 (A WorkMail mazon RDS)）关联的目录之前，必须先删除每个应用程序。 AWS 管理控制台有关如何删除这些应用程序的更多信息，请参阅[删除你的 Microsoft AWS 托管广告](ms_ad_delete.md)。

### 使用 SMB 2.x 客户端来访问 SYSVOL 和 NETLON 共享
<a name="use_smbv2"></a>

客户端计算机使用服务器消息块 (SMB) 访问托管的 M AWS icrosoft AD 域控制器上的 SYSVOL 和 NETLOGON 共享，以获取组策略、登录脚本和其他文件。 AWS 托管 Microsoft AD 仅支持 SMB 版本 2.0 (SMBv2) 及更高版本。

新版本 SMBv2 的协议增加了许多功能，这些功能可以提高客户端性能并提高域控制器和客户端的安全性。此更改遵循了[美国计算机应急准备小组](https://www.us-cert.gov/ncas/current-activity/2017/01/16/SMB-Security-Best-Practices)和 [Microsoft](https://blogs.technet.microsoft.com/filecab/2016/09/16/stop-using-smb1/) 提出的禁用建议 SMBv1。

**重要**  
如果您当前使用 SMBv1 客户端访问域控制器的 SYSVOL 和 NETLOGON 共享，则必须更新这些客户端才能使用或更新版本。 SMBv2 您的目录可以正常运行，但您的 SMBv1 客户端将无法连接到托管 AWS Microsoft AD 域控制器的 SYSVOL 和 NETLOGON 共享，也将无法处理组策略。

SMBv1 客户机将与您拥有的任何其他 SMBv1 兼容文件服务器配合使用。但是， AWS 建议您将所有 SMB 服务器和客户机更新为 SMBv2 或更新版本。[要了解有关在系统上禁用它 SMBv1 并将其更新到较新 SMB 版本的更多信息，请参阅 M [ic](https://blogs.technet.microsoft.com/filecab/2016/09/16/stop-using-smb1/) rosoft TechNet 和Microsoft文档上的这些帖子。](https://learn.microsoft.com/en-US/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3?tabs=server)

**跟踪 SMBv1 远程连接**

你可以远程查看连接到托管**微软 AD 域控制器的微软-Windows-SMBServer/**Audi AWS t Windows 事件日志，该日志中的任何事件都表示连接。 SMBv1 以下是您可能会在某个日志中看到的信息示例：

*SMB1 access*

*客户端地址：\$1\$1\$1.\$1\$1\$1.\$1\$1\$1.\$1\$1\$1*

*指南：*

*此事件表示客户端试图使用访问服务器 SMB1。要停止审核 SMB1 访问权限，请使用 PowerShell cmdlet Set-。SmbServerConfiguration*

## 为 AWS 托管 Microsoft AD 编程应用程序时的最佳实践
<a name="program_apps"></a>

在对应用程序进行编程使其与 AWS 托管 Microsoft AD 配合使用之前，请考虑以下几点：

**Topics**
+ [使用 Windows DC 定位器服务](#program_dc_locator)
+ [交付生产之前的负载测试](#program_load_test)
+ [使用高效的 LDAP 查询](#program_ldap_query)

### 使用 Windows DC 定位器服务
<a name="program_dc_locator"></a>

开发应用程序时，请使用 Windows DC 定位器服务或使用 AWS 托管 Microsoft AD 的动态 DNS (DDNS) 服务来定位域控制器 (DCs) ()。请勿使用 DC 的地址对应用程序进行硬编码。DC 定位器服务有助于确保分配目录负载，使您能够通过将域控制器添加到部署来利用水平扩展。如果您将应用程序绑定到固定的 DC，并且该 DC 正在进行修补或恢复，则您的应用程序将无法访问该 DC，而不是使用其余的 DC 之一。 DCs而且，DC 的硬编码可能导致在单一 DC 上出现热点。情况严重时，热点可能导致您的 DC 无法响应。此类情况还可能导致 AWS 目录自动化将目录标记为受损，并可能触发替换无响应的 DC 的恢复进程。

### 交付生产之前的负载测试
<a name="program_load_test"></a>

请务必对代表您的生产工作负载的对象和请求执行实验室测试，以确认目录将扩展至您的应用程序负载。如果您需要更多容量，请在两者之间分配请求 DCs 时使用其他容量进行测试 DCs。有关更多信息，请参阅 [为你的 AWS 托管 Microsoft AD 部署额外的域控制器](ms_ad_deploy_additional_dcs.md)。

### 使用高效的 LDAP 查询
<a name="program_ldap_query"></a>

对域控制器进行的针对数万个对象的广泛 LDAP 查询在单个 DC 中会产生明显的 CPU 周期消耗，从而导致热点。这可能影响在查询期间共享同一 DC 的应用程序。