演练 5:使用 DNS 别名访问您的文件系统 - Amazon FSx for Windows File Server
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

演练 5:使用 DNS 别名访问您的文件系统

适用于 Windows 文件服务器的 Amazon FSX 为每个文件系统提供默认域名系统 (DNS) 名称,您可以使用这些文件系统访问文件系统上的数据。您还可以使用您选择的 DNS 别名访问您的文件系统。借助 DNS 别名,您可以在将文件系统存储从本地迁移到 Amazon FSX 时继续使用现有 DNS 名称访问存储在 Amazon FSX 上的数据,而无需更新任何工具或应用程序。您可以随时将多达 50 个 DNS 别名与一个文件系统关联。

要使用 DNS 别名访问 Amazon FSX 文件系统,您必须执行以下三个步骤:

  1. 将 DNS 别名与您的 Amazon FSX 文件系统相关联。

  2. 为文件系统的计算机对象配置服务主体名称 (SPN)。当使用 DNS 别名访问您的文件系统时,需要这样才能获取 Kerberos 身份验证。)

  3. 更新或创建文件系统和 DNS 别名的 DNS 别名记录。

第 1 步:将 DNS 别名与您的 Amazon FSX 文件系统相关联

当您创建新文件系统时,以及使用 Amazon FSX 控制台、CLI 和 API 从备份中创建新文件系统时,您可以将 DNS 别名与 Windows 文件服务器现有 Amazon FSX 相关联。

此过程介绍如何在使用 Amazon FSX 控制台创建新文件系统时关联 DNS 别名。有关将 DNS 别名与现有文件系统相关联的信息以及有关使用 CLI 和 API 的详细信息,请参阅管理 DNS 别名

在创建新文件系统时关联 DNS 别名

  1. 打开 Amazon FSx 控制台https://console.aws.amazon.com/fsx/

  2. 按照创建新文件系统的步骤操作,如第 1 步:创建您的文件系统的 “入门” 一节中的。

  3. 访问-可选的 部分创建文件系统向导中,输入要与文件系统关联的 DNS 别名。

    “创建文件系统” 向导的 “访问” 部分用于输入要与新文件系统关联的 DNS 别名。

    指定 DNS 别名时请使用以下准则:

    • 必须格式化为完全限定域名 (FQDN)hostname.domain,例如,accounting.example.com

    • 可以包含字母数字字符和连字符 (‐)。

    • 不能以连字符开头或结尾处。

    • 可以从数字开始。

    对于 DNS 别名,Amazon FSX 会将字母字符存储为小写字母 (a-z),无论您指定将其存储为大写字母、小写字母还是转义码中的对应字母。

  4. 适用于维护首选项,进行所需的任何更改。

  5. 标签-可选部分,添加您需要的任何标签,然后选择下一步

  6. 查看创建文件系统页. 选择创建文件系统以创建文件系统。

    当您的新文件系统变为可用时,请继续执行步骤 2。

第 2 步:为 Kerberos 配置服务主体名称 (SPN)

我们建议您在通过 Amazon FSX 传输过程中使用基于 Kerberos 的身份验证和加密。Kerberos 为访问您的文件系统的客户端提供最安全的身份验证。

要为使用 DNS 别名访问 Amazon FSX 的客户端启用 Kerberos 身份验证,您必须在 Amazon FSX 文件系统的活动目录计算机对象上添加与 DNS 别名相对应的服务主体名称 (SPN)。SPN 一次只能与一个 Active Directory 计算机对象关联。如果您已为原始文件系统的 Active Directory 计算机对象配置了 DNS 名称的现有 SPN,则必须先删除它们。

Kerberos 身份验证有两个必需的 SPN:

HOST/alias HOST/alias.domain

如果别名为finance.domain.com,以下是两个所需的 SPN:

HOST/finance HOST/finance.domain.com
注意

在为 Amazon FSX 文件系统的活动目录 (AD) 计算机对象创建新的主机 SPN 之前,您需要删除与活动目录 (AD) 计算机对象上的 DNS 别名对应的任何现有主机 SPN。如果 AD 中存在 DNS 别名的 SPN,则尝试为您的 Amazon FSX 文件系统设置 SPN 将失败。

以下过程介绍如何执行以下操作:

  • 在原始文件系统的活动目录计算机对象上查找任何现有的 DNS 别名 SPN。

  • 删除找到的现有 SPN(如果有)。

  • 为亚马逊 FSX 文件系统的活动目录计算机对象创建新的 DNS 别名 SPN。

安装所需的 PowerShell 活动目录模块

  1. 登录到已加入 Amazon FSX 文件系统的活动目录的 Windows 实例。

  2. 以管理员身份打开 PowerShell。

  3. 使用以下命令安装 PowerShell 活动目录模块。

    Install-WindowsFeature RSAT-AD-PowerShell

查找和删除原始文件系统的活动目录计算机对象上的现有 DNS 别名 SPN

  1. 使用以下命令查找任何现有的 SPN。Replacealias_fqdn中的文件系统关联的 DNS 别名步骤 1

    ## Find SPNs for original file system's AD computer object $ALIAS = "alias_fqdn" SetSPN /Q ("HOST/" + $ALIAS) SetSPN /Q ("HOST/" + $ALIAS.Split(".")[0])
  2. 使用以下示例脚本删除上一步中返回的现有主机 SPN。

    • Replacealias_fqdn与您与文件系统关联的完整 DNS 别名步骤 1

    • Replacefile_system_DNS_name替换为原始文件系统的 DNS 名称。

    ## Delete SPNs for original file system's AD computer object $Alias = "alias_fqdn" $FileSystemDnsName = "file_system_dns_name" $FileSystemHost = (Resolve-DnsName ${FileSystemDnsName} | Where Type -eq 'A')[0].Name.Split(".")[0] $FSxAdComputer = (Get-AdComputer -Identity ${FileSystemHost}) SetSPN /D ("HOST/" + ${Alias}) ${FSxAdComputer}.Name SetSPN /D ("HOST/" + ${Alias}.Split(".")[0]) ${FSxAdComputer}.Name
  3. 对中与文件系统关联的每个 DNS 别名重复上述步骤。步骤 1

在亚马逊 FSX 文件系统的活动目录计算机对象上设置 SPN

  1. 通过运行以下命令为您的 Amazon FSX 文件系统设置新的 SPN。

    • Replacefile_system_DNS_name替换为 Amazon FSX 分配给文件系统的 DNS 名称。

      要在 Amazon FSX 控制台上查找文件系统的 DNS 名称,请选择文件系统,选择您的文件系统,然后选择网络和安全性窗格中的文件系统详细信息页面。

      您还可以在DescribeFileSystemsAPI 操作。

    • Replacealias_fqdn与您与文件系统关联的完整 DNS 别名步骤 1

    ## Set SPNs for FSx file system AD computer object $FSxDnsName = "file_system_DNS_name" $Alias = "alias_fqdn" $FileSystemHost = (Resolve-DnsName $FSxDnsName | Where Type -eq 'A')[0].Name.Split(".")[0] $FSxAdComputer = (Get-AdComputer -Identity $FileSystemHost) Set-AdComputer -Identity $FSxAdComputer -Add @{"msDS-AdditionalDnsHostname"="$Alias"} SetSpn /S ("HOST/" + $Alias.Split('.')[0]) $FSxAdComputer.Name SetSpn /S ("HOST/" + $Alias) $FSxAdComputer.Name
    注意

    如果原始文件系统计算机对象的 AD 中存在 DNS 别名的 SPN,则为 Amazon FSX 文件系统设置 SPN 将失败。有关查找和删除现有 SPN 的信息,请参阅查找和删除原始文件系统的活动目录计算机对象上的现有 DNS 别名 SPN

  2. 使用以下示例脚本验证是否为 DNS 别名配置了新的 SPN。确保响应包括两个主机 SPN,HOST/aliasHOST/alias_fqdn,如本过程中前面的中所述。

    Replacefile_system_DNS_name替换为 Amazon FSX 分配给您的文件系统的 DNS 名称。要在 Amazon FSX 控制台上查找文件系统的 DNS 名称,请选择文件系统,选择您的文件系统,然后选择网络和安全性窗格中的文件系统详细信息页面。

    您还可以在DescribeFileSystemsAPI 操作。

    ## Verify SPNs on FSx file system AD computer object $FileSystemDnsName = "file_system_dns_name" $FileSystemHost = (Resolve-DnsName ${FSxDnsName} | Where Type -eq 'A')[0].Name.Split(".")[0] $FSxAdComputer = (Get-AdComputer -Identity ${FileSystemHost}) SetSpn /L ${FSxAdComputer}.Name
  3. 对中与文件系统关联的每个 DNS 别名重复上述步骤。步骤 1

有关如何强制客户端在连接到 Amazon FSX 文件系统时使用 Kerberos 身份验证和加密的信息,请参阅使用 GPO 强制执行 Kerberos 身份验证

第 3 步:更新或创建文件系统的 DNS 别名记录

为文件系统正确配置 SPN 后,您可以切换到 Amazon FSX,方法是将解析为 Amazon FSX 文件系统默认 DNS 名称的 DNS 记录替换为解析为原始文件系统的每个 DNS 记录。

这些区域有:dnsserveractivedirectory运行本节中介绍的命令需要 Windows 模块。

安装所需的 PowerShell 命令管理器命令

  1. 登录到加入到活动目录的 Windows 实例,您的 Amazon FSX 文件系统作为具有 DNS 管理权限的组成员加入该活动目录(AmazonAmazon域名系统委托管理员在AmazonManaged Active Directory 和Domain Admins或您在自我管理的活动目录中委派 DNS 管理权限的另一个组)。

    有关更多信息,请参阅 。连接到您的 Windows 实例中的Windows 实例 Amazon EC2 用户指南

  2. 以管理员身份打开 PowerShell。

  3. 要执行此过程中的说明,需要使用 PowerShell DNS 服务器模块。使用以下命令进行安装。

    Install-WindowsFeature RSAT-DNS-Server

更新或创建自定义 DNS 名称到您的 Amazon FSX 文件系统

  1. 作为具有 DNS 管理权限的组成员的用户 Connect 到您的 Amazon EC2 实例 (Amazon域名系统委托管理员在AmazonManaged Active Directory 和Domain Admins或您在自我管理的活动目录中委派 DNS 管理权限的另一个组)。

    有关更多信息,请参阅 。连接到您的 Windows 实例中的Windows 实例 Amazon EC2 用户指南

  2. 在命令提示符下,运行以下脚本。此脚本将任何现有 DNS 别名记录迁移到您的 Amazon FSX 文件系统中。如果没有找到,它会为 DNS 别名创建一个新的 DNS 别名记录alias_fqdn,它将解析为 Amazon FSX 文件系统的默认 DNS 名称。

    要运行脚本,请执行以下操作:

    • Replacealias_fqdn与您与文件系统关联的 DNS 别名。

    • Replacefile_system_DNS_name替换为 Amazon FSX 已分配给文件系统的 DNS 名称。

    $Alias="alias_fqdn" $FSxDnsName="file_system_dns_name" $AliasHost=$Alias.Split('.')[0] $ZoneName=((Get-WmiObject Win32_ComputerSystem).Domain) $DnsServerComputerName = (Resolve-DnsName $ZoneName -Type NS | Where Type -eq 'A' | Select -ExpandProperty Name)[0] Add-DnsServerResourceRecordCName -Name $AliasHost -ComputerName $DnsServerComputerName -HostNameAlias $FSxDnsName -ZoneName $ZoneName
  3. 对中与文件系统关联的每个 DNS 别名重复上一步。步骤 1

您现在已为您的 Amazon FSX 文件系统添加了一个 DNS 别名值,其中包含 DNS 别名。您现在可使用 DNS 别名访问您的数据。

注意

将 DNS 别名记录更新为指向先前指向另一个文件系统的 Amazon FSX 文件系统时,客户端可能在短时间内无法连接到文件系统。当客户端 DNS 缓存刷新时,它们应该能够使用 DNS 别名进行连接。有关更多信息,请参阅 无法使用 DNS 别名访问文件系统

使用 GPO 强制执行 Kerberos 身份验证

通过在活动目录中设置以下组策略对象 (GPO),可以在访问文件系统时强制执行 Kerberos 身份验证:

  • 限制 NTLM: 传出 NTLM 流量到远程服务器-使用此策略设置拒绝或审核从计算机到运行 Windows 操作系统的任何远程服务器的传出 NTLM 流量。

  • 限制 NTLM: 为 NTLM 身份验证添加远程服务器例外-使用此策略设置创建允许客户端设备使用 NTLM 身份验证的远程服务器的例外列表,如果网络安全性:限制 NTLM: 传出 NTLM 流量到远程服务器策略设置。

  1. 登录到加入到活动目录的 Windows 实例,您的 Amazon FSX 文件系统将以管理员身份加入到该活动目录中。

  2. 选择启动中,选择管理工具,然后选择组策略管理

  3. 选择组策略对象

  4. 查找网络安全性:限制 NTLM: 传出 NTLM 流量到远程服务器策略。在本地安全性设置选项卡上,打开上下文 (右键单击) 菜单,然后选择属性

  5. 选择全部拒绝

  6. 选择Apply保存安全性设置。

  7. 若要为客户端的特定远程服务器的 NTLM 连接设置例外,请找到网络安全性:限制 NTLM: 添加远程服务器例外

    打开上下文 (右键单击) 菜单,然后选择属性中的本地安全性设置选项卡。

  8. 输入要添加到例外列表中的任何服务器的名称。

  9. 选择Apply保存安全性设置。