为 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 模块
-
登录已加入您的 Amazon FSx 文件系统所加入的 Active Directory 的 Windows 实例。
以管理员身份打开 PowerShell。
使用以下命令安装 PowerShell Active Directory 模块。
Install-WindowsFeature RSAT-AD-PowerShell
查找并删除原始文件系统 Active Directory 计算机对象上的现有 DNS 别名 SPN
如果您为已分配给 Active Directory 中某个计算机对象上的另一个文件系统的 DNS 别名配置了 SPN,则必须先删除这些 SPN,然后再将 SPN 添加到文件系统的计算机对象。
使用以下命令查找所有现有 SPN。将
替换为在步骤 1 中与文件系统关联的 DNS 别名。alias_fqdn
## Find SPNs for original file system's AD computer object $ALIAS = "
alias_fqdn
" SetSPN /Q ("HOST/" + $ALIAS) SetSPN /Q ("HOST/" + $ALIAS.Split(".")[0])使用以下示例脚本,删除上一步中返回的现有 HOST SPN。
将
替换为在步骤 1 中与文件系统关联的完整 DNS 别名。alias_fqdn
将
替换为原始文件系统的 DNS 名称。file_system_DNS_name
## 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-
对在步骤 1 中与文件系统关联的每个 DNS 别名重复上述步骤。
为 Amazon FSx 文件系统的 Active Directory 计算机对象设置 SPN
运行以下命令,为 Amazon FSx 文件系统设置新的 SPN。
将
替换为 Amazon FSx 分配给文件系统的 DNS 名称。file_system_DNS_name
要在 Amazon FSx 控制台上查找文件系统的 DNS 名称,请选择文件系统,选择您的文件系统,然后选择文件系统详细页面上的网络与安全窗格。
您也可以在 API 操作 DescribeFileSystems 的响应中找到 DNS 名称。
将
替换为在步骤 1 中与文件系统关联的完整 DNS 别名。alias_fqdn
## 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。
-
使用以下示例脚本验证是否为 DNS 别名配置了新 SPN。确保响应中包括两个主机 SPN
HOST/
和alias
HOST/
,如本过程前面所述。alias_fqdn
将
替换为 Amazon FSx 分配给文件系统的 DNS 名称。要在 Amazon FSx 控制台上查找文件系统的 DNS 名称,请选择文件系统,选择您的文件系统,然后选择文件系统详细页面上的网络与安全窗格。file_system_DNS_name
您也可以在 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 -
对在步骤 1 中与文件系统关联的每个 DNS 别名重复上述步骤。