为什么我无法将我的 EC2 Windows 实例无缝加入 AWS Managed Microsoft AD 目录?

3 分钟阅读
0

我无法将我的 Amazon Elastic Compute Cloud(Amazon EC2)Windows 实例无缝加入 AWS Directory Service for Microsoft Active Directory。

解决方法

若要解决无法将 EC2 Windows 实例无缝加入 AWS Managed Microsoft AD 目录的问题,请完成下列步骤。

**注意:**针对 AWS Systems Manager 的 Amazon Virtual Private Cloud(Amazon VPC)接口端点对将 Windows Server 实例加入域的请求进行了限制。有关详细信息,请参阅 VPC 端点限制和局限

验证您的操作系统和计算机类型

确认 AWS Systems Manager 支持您的操作系统(OS)和计算机类型

验证您的 IAM 角色策略

若要验证您的 AWS Identity and Access Management(IAM)角色是否附加了正确的托管策略,请完成下列步骤:

  1. 打开 IAM 控制台
  2. 在导航窗格中,选择角色
  3. 选择与您的实例关联的 IAM 角色的角色名称以打开摘要页面。
  4. 权限选项卡上,对于权限策略,确认已附加 AmazonSSMDirectoryServiceAccessAmazonSSMManagedInstanceCore 策略。
  5. 如果缺少权限策略,请选择添加权限附加策略。搜索策略名称,从搜索结果中选择正确的策略,然后选择添加权限

确认所需的端口已开放

确认目录的安全组中已开放端口 53、88 和 389。若要找到并查看目录的安全组,请完成下列步骤:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,选择安全组
  3. 安全组名称安全组列表进行排序,以查找 directoryid_controllers,其中 directoryid 是您的目录 ID。例如,d-1234567891_controllers
  4. 选择目录控制器安全组的安全组 ID
  5. 打开入站规则出站规则选项卡以查看端口信息。

**注意:**使用 Microsoft 的 PortQry 命令行工具测试域与所需端口的连接。

验证您的实例上的 DNS 服务器是否指向目录的 DNS 服务器

若要显示实例上的网络适配器配置,请运行下列 AWS 命令行界面(AWS CLI)命令:

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

ipconfig /all

若要找到目录的 DNS 服务器,请完成下列步骤:

  1. 打开 Directory Service 控制台
  2. 在导航窗格中,选择目录
  3. 选择目录 ID 以打开目录详细信息页面。
  4. 查看 DNS 地址。

确认您可以从实例解析域名

若要确认您可以从实例解析域名,请运行下面的其中一个命令:

**注意:**在您的命令中,将 domainname 替换为您的域名。

使用 PowerShell:

Resolve-DnsName domainname

使用命令提示符:

nslookup domainname

验证 DNS 服务器配置

若要验证您是否正确配置了实例的 DNS 服务器以及该实例是否可以访问 DNS 服务器,请运行下列 Nltest Windows 命令:

**注意:**在您的命令中,请将 domainname 替换为 DNS 名称,而不是 NetBIOS 名称。例如,如果您的域是 example.com,则 DNS 名称是 example.com,NetBIOS 名称就是示例。

nltest /dsgetdc:domainname /force

验证实例是否为托管实例

若要验证您的实例是否为托管实例,请完成下列步骤:

  1. 打开 Systems Manager 控制台
  2. 在导航窗格中,选择 Fleet Manager
  3. Fleet Manager 页面上,选择托管节点选项卡。
  4. 确认实例已列出且处于联机状态。

确认实例具有状态管理器关联

若要确认文档 awsconfig_Domain_directoryid_domainname 是否具有为该实例创建的状态管理器关联,请完成下列步骤:

**注意:**在文档名称中,directoryid 是您的目录 ID,domainname 是您的域名。

  1. 打开 Systems Manager 控制台
  2. 在导航窗格中,选择状态管理器
  3. 在搜索栏中,选择实例 ID等于,然后输入实例 ID。
  4. 选择关联 ID。
  5. 确认状态成功,然后选择执行历史记录以验证关联执行情况。
  6. 如果状态失败,请选择执行 ID输出,以查看输出详细信息并确定问题的原因。
  7. 如果状态待处理,请确认您已按照之前的所有故障排除步骤进行操作。然后,查看 EC2 实例上的日志,了解是否存在任何错误消息,以确定问题的原因。有关说明,请参阅查看日志以查找错误消息部分。

确认您可以手动将实例加入域

确认您的账户具有向域中添加计算机对象所需的权限。有关详细信息,请参阅为 AWS Managed Microsoft AD 委派目录加入权限

**注意:**若要创建新的 EC2 Windows 实例,请使用 Microsoft 工具 Sysprep 创建标准化的亚马逊机器映像(AMI)

确认成功无缝加入域

若要验证故障排除步骤是否解决了您的问题,请尝试重新加入域:

  1. 打开 Systems Manager 控制台
  2. 在导航窗格中,选择状态管理器
  3. 选择您为加入域而创建的关联,然后选择立即应用关联
  4. 验证状态是否为成功

查看日志以查找错误消息

如果您仍然无法加入域,请查看实例上的以下日志,以查找错误消息。

使用 SSM Agent 日志:

若要查看 AWS Systems Manager Agent(SSM Agent)日志,请前往 %PROGRAMDATA%\Amazon\SSM\Logs\。

使用 Netsetup.log 文件:

若要打开日志文件,请在命令提示符中运行下列命令:

%windir%\debug\netsetup.log

NetSetup.log 输出中每个端口的预期错误代码和行为

TCP 88 - Kerberos 身份验证:

NetUseAdd to \\serverDC1.example.com\IPC$ returned 64
NetpJoinDomainOnDs: status of connecting to dc '\\serverDC1.example.com':0x40
NetpJoinDomainOnDs: Function exits with status of: 0x40
NetpResetIDNEncoding: DnsDisableIdnEncoding(RESETALL) on 'example.com' returned 0x0
NetpJoinDomainOnDs: NetpResetIDNEncoding on 'example.com': 0x0
NetpDoDomainJoin: status: 0x40

TCP 389 – LDAP:

NetpLdapBind: ldap_bind failed on serverDC1.example.com: 81: Server Down
NetpJoinCreatePackagePart: status:0x3a.
NetpJoinDomainOnDs: Function exits with status of: 0x3a
NetpJoinDomainOnDs: status of disconnecting from '\\serverDC1.example.com': 0x0
NetpResetIDNEncoding: DnsDisableIdnEncoding(RESETALL) on 'example.com' returned 0x0
NetpJoinDomainOnDs: NetpResetIDNEncoding on 'example.com': 0x0
NetpDoDomainJoin: status: 0x3a

UDP 389 – LDAP:

NetpCheckDomainNameIsValid [ Exists ] for 'example.com' returned 0x54b
NetpJoinDomainOnDs: Domain name is invalid,
NetpValidateName returned: 0x54b
NetpJoinDomainOnDs: Function exits with status of: 0x54b
NetpJoinDomainOnDs: NetpResetIDNEncoding on '(null)': 0x0
NetpDoDomainJoin: status: 0x54b

UDP 53 – DNS:

如果不允许 UDP DNS 流量,则域加入工作流不会在 NetSetup.log 文件中创建任何输出。若要测试 DNS 服务器,请运行下列 PowerShell 命令:

**注意:**在您的命令中,请将 YourIPAddress 替换为您的 DNS 服务器的 IP 地址。

Test-DnsServer -IPAddress YourIPAddress

有关 NetSetup.log 错误代码的信息,请参阅 Microsoft 网站上的如何解决将基于 Windows 的计算机加入域时出现的错误

使用事件查看器日志:

  1. 在 Windows 任务栏上,选择搜索,输入“事件查看器”,然后选择事件查看器以打开该工具。
  2. 在导航窗格中,展开 Windows 日志,然后选择系统
  3. 查看日期和时间列,以确定域加入操作期间发生的事件。

相关信息

将 EC2 实例加入您的 AWS Managed Microsoft AD 目录

AWS 官方
AWS 官方已更新 1 年前