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

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

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

FSx for Windows File Server 为每个文件系统提供了一个默认域名系统(DNS)名称,可以用于访问文件系统上的数据。您也可以使用自行选择的 DNS 别名访问您的文件系统。DNS 别名使您能够在将文件系统存储从本地迁移到 Amazon FSx 时,继续使用现有 DNS 名称访问存储在 Amazon FSx 上的数据。每次最多可以将 50 个 DNS 别名与一个文件系统关联。

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

  1. 将 DNS 别名关联到 Amazon FSx 文件系统。

  2. 为文件系统的计算机对象配置服务主体名称(SPN)。(这是在使用 DNS 别名访问文件系统时,获得 Kerberos 身份验证的必需条件。)

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

步骤 1:将 DNS 别名关联到 Amazon FSx 文件系统

在使用 Amazon FSx 控制台、CLI 和 API 创建新文件系统以及从备份创建新文件系统时,可以将 DNS 别名与现有 FSx for Windows File Server 相关联。如果您要使用其他域名创建别名,请输入包括父域名在内的全名以关联别名。

此过程将介绍如何在使用 Amazon FSx 控制台创建新文件系统时关联 DNS 别名。有关将 DNS 别名关联到现有文件系统的信息,以及有关使用 CLI 和 API 的详细信息,请参阅 管理 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 文件系统的 Active Directory 计算机对象上添加与 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 文件系统的 Active Directory(AD)计算机对象创建新的主机 SPN 之前,您需要删除所有与 Active Directory 计算机对象上的 DNS 别名对应的现有主机 SPN。如果 AD 中存在 DNS 别名的 SPN,则为 Amazon FSx 文件系统设置 SPN 的尝试将会失败。

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

  • 查找原始文件系统 Active Directory 计算机对象上的所有现有 DNS 别名 SPN。

  • 若查找到现有 SPN,则将其删除。

  • 为 Amazon FSx 文件系统的 Active Directory 计算机对象创建新的 DNS 别名 SPN。

安装所需的 PowerShell Active Directory 模块
  1. 登录已加入您的 Amazon FSx 文件系统所加入的 Active Directory 的 Windows 实例。

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

  3. 使用以下命令安装 PowerShell Active Directory 模块。

    Install-WindowsFeature RSAT-AD-PowerShell
查找并删除原始文件系统 Active Directory 计算机对象上的现有 DNS 别名 SPN
  1. 使用以下命令查找所有现有 SPN。将 alias_fqdn 替换为在步骤 1 中与文件系统关联的 DNS 别名。

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

    • alias_fqdn 替换为在步骤 1 中与文件系统关联的完整 DNS 别名。

    • file_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. 对在步骤 1 中与文件系统关联的每个 DNS 别名重复上述步骤。

为 Amazon FSx 文件系统的 Active Directory 计算机对象设置 SPN
  1. 运行以下命令,为 Amazon FSx 文件系统设置新的 SPN。

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

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

      您也可以在 API 操作 DescribeFileSystems 的响应中找到 DNS 名称。

    • alias_fqdn 替换为在步骤 1 中与文件系统关联的完整 DNS 别名。

    ## 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) ##Use one of the following commands, not both: Set-AdComputer -Identity $FSxAdComputer -Add @{"msDS-AdditionalDnsHostname"="$Alias"} ##Or SetSpn /S ("HOST/" + $Alias.Split('.')[0]) $FSxAdComputer.Name SetSpn /S ("HOST/" + $Alias) $FSxAdComputer.Name
    注意

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

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

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

    您也可以在 API 操作 DescribeFileSystems 的响应中找到 DNS 名称。

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

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

步骤 3:更新或创建文件系统的 DNS CNAME 记录

为文件系统正确配置 SPN 后,可以通过以下方式割接到 Amazon FSx:将解析为原始文件系统的每个 DNS 记录替换为解析为 Amazon FSx 文件系统默认 DNS 名称的 DNS 记录。

要运行本节中介绍的命令,则必须配备 dnsserveractivedirectory Windows 模块。

安装所需的 PowerShell cmdlet
  1. 以具有 DNS 管理权限的组(对于 Amazon 托管的 Active Directory,为 AmazonAmazon 委派的域名系统管理员;对于自行管理的 Active Directory,为域管理员或您已委派 DNS 管理权限的其他组)的成员用户身份登录到已加入您的 Amazon FSx 文件系统所加入的 Active Directory 的 Windows 实例。

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

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

  3. 按照此过程中的说明操作需要 PowerShell DNS 服务器模块。使用以下命令安装该模块。

    Install-WindowsFeature RSAT-DNS-Server
要为 Amazon FSx 文件系统更新或创建自定义 DNS 名称
  1. 以具有 DNS 管理权限的组(对于 Amazon 托管的 Active Directory,为 Amazon 委派的域名系统管理员;对于自行管理的 Active Directory,为域管理员或您已委派 DNS 管理权限的其他组)的成员用户身份连接到您的 Amazon EC2 实例。

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

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

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

    • alias_fqdn 替换为与文件系统关联的 DNS 别名。

    • file_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) | Select -First 1 foreach ($computer in $DnsServerComputerName) { Add-DnsServerResourceRecordCName -Name $AliasHost -ComputerName $computer -HostNameAlias $FSxDnsName -ZoneName $ZoneName }
  3. 对在步骤 1 中与文件系统关联的每个 DNS 别名重复上一步操作。

现已使用 DNS 别名为您的 Amazon FSx 文件系统添加了 DNS CNAME 值。现在,您可以使用 DNS 别名来访问数据。

注意

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

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

通过在 Active Directory 中设置以下组策略对象(GPO),您可以强制要求在访问文件系统时使用 Kerberos 身份验证:

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

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

  1. 以管理员身份登录已加入您的 Amazon FSx 文件系统所加入的 Active Directory 的 Windows 实例。如果您正在配置自行管理的 Active Directory,请将这些步骤直接应用于 Active Directory。

  2. 依次选择开始管理工具组策略管理

  3. 选择组策略对象

  4. 若不存在组策略对象,请执行创建操作。

  5. 找到现有的网络安全:限制 NTLM:向远程服务器传出 NTLM 流量策略。(若不存在现有策略,请创建新策略。) 在本地安全设置选项卡中,打开上下文(右键单击)菜单,然后选择属性

  6. 选择全部拒绝

  7. 选择应用即可应用设置。

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

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

  9. 输入所有要添加到例外列表的服务器的名称。

  10. 选择应用即可应用设置。