使用自行管理的 Microsoft Active Directory
如果您的组织在本地或云端使用自行管理的 Active Directory 管理身份和设备,您可以在创建时将 FSx for Windows File Server 文件系统加入您的 Active Directory 域。
当您将文件系统加入自行管理的 Active Directory 时,您的 FSx for Windows File Server 文件系统与您的用户和现有资源(包括现有文件服务器)位于同一个 Active Directory 林(包含域、用户和计算机的 Active Directory 配置中的顶层逻辑容器)和同一个 Active Directory 域中。
注意
您可以将您的资源(包括您的 Amazon FSx 文件系统)隔离到与用户所在林分开的 Active Directory 林中。为此,请将您的文件系统加入 Amazon 托管的 Microsoft Active Directory,并在您创建的 Amazon 托管的 Microsoft Active Directory 和现有的自行管理的 Active Directory 之间建立单向林信任关系。
-
Active Directory 域中服务账户的用户名和密码,供 Amazon FSx 用于将文件系统加入您的 Active Directory 域中。您可以将这些凭证以纯文本形式提供,也可以将其存储在 Amazon Secrets Manager 中并提供密钥 ARN(推荐)。
-
(可选)您希望将文件系统加入其中的域中的组织单元(OU)。
-
(可选)您要委派授权,使其对文件系统执行管理操作的域组。例如,此域组可以管理 Windows 文件共享、管理文件系统根文件夹上的访问控制列表(ACL)、获取文件和文件夹的所有权等。如果您未指定此组,Amazon FSx 会默认将此授权委派给 Active Directory 域中的域管理员组。
注意
您提供的域组名称在 Active Directory 中必须是唯一的。在以下情况下,FSx for Windows File Server 不会创建域组:
如果已经存在一个名称由您指定过的群组
如果未指定名称,Active Directory 中已经存在一个名为“域管理员”的群组。
有关更多信息,请参阅 将 Amazon FSx 文件系统加入到自行管理的 Microsoft Active Directory 域。
主题
先决条件
在 FSx for Windows File Server 文件系统加入自行管理的 Microsoft Active Directory 域之前,请查看以下先决条件,以帮助确保 Amazon FSx 文件系统能够成功加入自行管理的 Active Directory。
本地配置
这些是您在本地或云端将 Amazon FSx 文件系统加入的自行管理的 Microsoft Active Directory 的先决条件。
-
Active Directory 域控制器:
必须具有 Windows Server 2008 R2 或更高版本的域功能级别。
必须可写入。
至少有一个可访问的域控制器必须是林的全局目录。
-
DNS 服务器必须能够解析如下所示的名称:
在要加入文件系统的域中
在林的根域中
-
DNS 服务器和 Active Directory 域控制器的 IP 地址满足以下要求,这些地址根据 Amazon FSx 文件系统的创建时间而不同:
对于 2020 年 12 月 17 日之前创建的文件系统 对于 2020 年 12 月 17 日之后创建的文件系统 IP 地址必须在 RFC 1918
私有 IP 地址范围内: 10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
IP 地址可以位于任何范围内,但以下情况除外:
IP 地址与文件系统所处的 Amazon Web Services 区域 中 Amazon Web Services 拥有的 IP 地址冲突。有关按区域划分的 Amazon 拥有的 IP 地址列表,请参阅 Amazon IP 地址范围。
IP 地址在以下 CIDR 数据块范围内:198.19.0.0/16
如果您需要使用非私有 IP 地址范围访问 2020 年 12 月 17 日之前创建的 FSx for Windows File Server 文件系统,则可以通过恢复文件系统的备份来创建新的文件系统。有关更多信息,请参阅 将备份还原至新文件系统。
-
自行管理的 Active Directory 的域名必须满足以下要求:
该域名未采用单标签域(SLD)格式。Amazon FSx 不支持 SLD 域。
对于单可用区 2 和所有多可用区文件系统,域名不得超过 47 个字符。
-
您定义的任何 Active Directory 站点必须满足以下先决条件:
VPC 中与文件系统关联的子网必须在 Active Directory 站点中进行定义。
VPC 子网与任何 Active Directory 站点子网之间没有产生冲突。
Amazon FSx 需要连接到已在 Active Directory 环境中定义的域控制器或 Active Directory 站点。Amazon FSx 将忽略任何在端口 389 上阻止 TCP 和 UDP 的域控制器。对于 Active Directory 中剩余的域控制器,请确保这些控制器满足 Amazon FSx 的连接要求。此外,确认对服务账户所做的任何更改均已传播到所有这些域控制器。
重要
创建文件系统后,请勿移动 Amazon FSx 在 OU 中创建的计算机对象。这样做会导致您的文件系统配置错误。
您可以使用 Amazon FSx Active Directory 验证工具验证您的 Active Directory 配置,包括测试多个域控制器的连接。要限制需要连接的域控制器的数量,您还可以在本地域控制器和 Amazon Managed Microsoft AD 之间建立信任关系。有关更多信息,请参阅 使用资源林隔离模型。
重要
只有当您使用 Microsoft DNS 作为默认 DNS 服务时,Amazon FSx 才会注册文件系统的 DNS 记录。如果您使用的是第三方 DNS,则需要在创建文件系统后手动设置文件系统的 DNS 记录条目。
网络配置
本节介绍了将文件系统加入自行管理的 Active Directory 的网络配置要求。在尝试将文件系统加入自行管理的 Active Directory 之前,我们强烈建议使用 Amazon FSx Active Directory 验证工具测试网络设置。
确保防火墙规则允许 Active Directory 域控制器与 Amazon FSx 之间的 ICMP 流量。
-
必须在您要在其中创建文件系统的 Amazon VPC 与自行管理的 Active Directory 之间配置连接。您可以使用 Amazon Direct Connect、Amazon Virtual Private Network、VPC 对等连接或 Amazon Transit Gateway 来设置此连接。
-
用于默认 Amazon VPC 的默认 VPC 安全组必须使用 Amazon FSx 控制台添加到文件系统。确保要在其中创建文件系统的子网的安全组和 VPC 网络 ACL 在端口上允许有下图所示方向的流量。
下表明确了协议、端口及其角色。
协议
端口
角色
TCP/UDP
53
域名系统(DNS)
TCP/UDP
88
Kerberos 身份验证
TCP/UDP
464
更改/设置密码
TCP/UDP
389
轻型目录访问协议(LDAP)
UDP 123 网络时间协议(NTP)
TCP 135 分布式计算环境/端点映射器(DCE/EPMAP)
TCP
445
目录服务 SMB 文件共享
TCP
636
基于 TLS/SSL 的轻型目录访问协议(LDAPS)
TCP
3268
Microsoft 全局目录
TCP
3269
基于 SSL 的 Microsoft 全局目录
TCP
5985
WinRM 2.0(Microsoft Windows 远程管理)
TCP
9389
Microsoft Active Directory DS Web 服务、PowerShell
重要
单可用区 2 和多可用区文件系统部署都需要允许 TCP 端口 9389 上的出站流量。
TCP
49152 - 65535
RPC 的临时端口
这些流量规则也需要镜像到适用于每个 Active Directory 域控制器、DNS 服务器、FSx 客户端和 FSx 管理员的防火墙上。
注意
如果您使用的是 VPC 网络 ACL,则还必须允许来自文件系统的动态端口(49152-65535)上的出站流量。
重要
虽然 Amazon VPC 安全组要求仅在发起网络流量的方向打开端口,但大多数 Windows 防火墙和 VPC 网络 ACL 要求双向打开端口。
服务账户权限
您需要在自行管理的 Microsoft Active Directory 中有一个服务账户,该账户具有将计算机对象加入该自行管理的 Microsoft Active Directory 域的委派权限。服务账户是自行管理的 Active Directory 中的一个用户账户,该账户已被委派某些任务。
下面是文件系统所加入的 OU 中的 Amazon FSx 服务账户必须获得的最低权限集:
如果使用 Active Directory 用户和计算机 MMC 中的委派控制:
-
重置密码
-
读取和写入账户限制
-
已验证写入 DNS 主机名
-
已验证写入服务主体名称
-
-
如果使用 Active Directory 用户和计算机 MMC 中的高级功能:
-
修改权限
-
创建计算机对象
-
删除计算机对象
-
有关更多信息,请参阅主题为错误:当已委派控制的非管理员用户尝试将计算机加入域控制器时,访问被拒绝
有关设置所需权限的更多信息,请参阅 向 Amazon FSx 服务账户或组委托权限。
使用自行管理 Active Directory 时的最佳实践
我们建议在将适用于 Windows File Server 的 Amazon FSx 文件系统加入自行管理的 Microsoft Active Directory 时实施以下最佳实践。这些最佳实践有助于您保持文件系统的持续、不间断的可用性。
- 为 Amazon FSx 使用单独的服务账户
-
使用单独的服务账户向 Amazon FSx 委派所需的权限,以完全管理已加入自行管理的 Active Directory 的文件系统。我们不建议为此使用域管理员。
- 使用 Active Directory 组
使用 Active Directory 组管理与 Amazon FSx 服务账户关联的 Active Directory 权限和配置。
- 隔离组织单元(OU)
-
为便于查找和管理 Amazon FSx 计算机对象,我们建议将用于 FSx for Windows File Server 文件系统的组织单元(OU)与其他域控制器问题分开。
- 更新 Active Directory 配置
当发生任何更改时,务必及时更新文件系统的 Active Directory 配置。例如,如果自行管理的 Active Directory 使用基于时间的密码重置策略,则在密码重置后,应立即更新文件系统上的服务账户密码。有关更多信息,请参阅 更新自行管理的 Active Directory 配置。
- 更改 Amazon FSx 服务账户
-
如果您使用新服务账户更新文件系统,则此账户必须拥有加入 Active Directory 的所需权限和特权,并对与文件系统关联的现有计算机对象拥有完全控制权限。有关更多信息,请参阅 更改 Amazon FSx 服务账户。
- 将子网分配给单个 Microsoft Active Directory 站点
-
如果您的 Active Directory 环境有大量域控制器,请使用 Active Directory 站点和服务,将 Amazon FSx 文件系统使用的子网分配给可用性和可靠性最高的单个 Active Directory 站点。确保 VPC 安全组、VPC 网络 ACL、DC 上的 Windows 防火墙规则以及 Active Directory 基础设施中的任何其他网络路由控制允许 Amazon FSx 通过所需端口进行通信。这允许 Windows 在无法使用分配的 Active Directory 站点时还原至其他域控制器。有关更多信息,请参阅 使用 Amazon VPC 进行文件系统访问控制。
- 使用安全组规则限制流量
使用安全组规则在虚拟私有云(VPC)中实现最低权限原则。可以使用 VPC 安全组规则限制文件允许的入站和出站网络流量的类型。例如,我们建议仅允许出站流量流向自行管理的 Active Directory 域控制器或所用子网或安全组内部。有关更多信息,请参阅 使用 Amazon VPC 进行文件系统访问控制。
- 请勿移动 Amazon FSx 创建的计算机对象
重要
创建文件系统后,请勿移动 Amazon FSx 在 OU 中创建的计算机对象。这样做会导致您的文件系统配置错误。
- 验证 Active Directory 配置
在尝试将 FSx for Windows File Server 文件系统加入 Active Directory 之前,我们强烈建议您使用 Amazon FSx Active Directory 验证工具来验证 Active Directory 配置。
使用 Amazon Secrets Manager 存储 Active Directory 凭证
您可以使用 Amazon Secrets Manager,以便安全地存储和管理 Microsoft Active Directory 域加入服务账户凭证。此方法无需在应用程序代码或配置文件中以明文形式存储敏感凭证,从而增强您的安全状况。
您还可以配置 IAM 策略,以管理对密钥的访问权限,并为密码设置自动轮换策略。
步骤 1:创建 KMS 密钥
创建 KMS 密钥,以在 Secrets Manager 中对 Active Directory 凭证进行加密和解密。
创建密钥
注意
对于加密密钥,请创建新密钥,而非使用 Amazon 默认 KMS 密钥。确保在包含要加入 Active Directory 的文件系统的同一区域中创建 Amazon KMS key
从 https://console.aws.amazon.com/kms 打开 Amazon KMS 控制台。
-
选择创建密钥。
-
对于密钥类型,选择对称。
-
对于密钥用法,选择加密和解密。
-
对于高级选项,执行以下操作:
-
对于密钥材料源,选择 KMS。
-
对于区域性,选择单区域密钥,然后选择下一步。
-
-
选择下一步。
-
对于别名,提供 KMS 密钥的名称。
-
(可选)对于描述,提供 KMS 密钥的描述。
-
(可选)对于标签,提供 KMS 密钥的标签,然后选择下一步。
-
(可选)对于密钥管理员,提供获授权管理此密钥的 IAM 用户和角色。
-
对于密钥删除,确保选中允许密钥管理员删除此密钥复选框,然后选择下一步。
-
(可选)对于密钥用户,提供获授权在加密操作中使用此密钥的 IAM 用户和角色。选择下一步。
-
对于密钥策略,选择编辑,并在策略声明中包含以下内容以允许 Amazon FSx 使用 KMS 密钥,然后选择下一步。确保将
us-west-2替换为 Amazon Web Services 区域(文件系统的部署位置),将123456789012替换为 Amazon Web Services 账户 ID。{ "Sid": "Allow FSx to use the KMS key", "Version": "2012-10-17", "Effect": "Allow", "Principal": { "Service": "fsx.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key:*", "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:*", "kms:ViaService": "secretsmanager.us-west-2.amazonaws.com", "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:fsx:us-west-2:123456789012:file-system/*" } } } -
选择完成。
注意
通过修改 Resource 和 aws:SourceArn 字段,您可以设置更精细的访问控制,以针对特定的密钥和文件系统。
步骤 2:创建 Amazon Secrets Manager 密钥
创建密钥
-
通过 https://console.aws.amazon.com/secretsmanager/
打开 Secrets Manager 控制台。 -
选择存储新密钥。
-
对于密钥类型,请选择其他密钥类型。
-
对于键/值对,请执行以下操作以添加您的两个密钥:
-
对于第一个密钥,请输入
CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME。 -
对于第一个密钥的值,请仅输入 AD 用户的用户名(不带域前缀)。
-
对于第二个密钥,请输入
CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD。 -
对于第二个密钥的值,请输入您在域中为 AD 用户创建的密码。
-
-
对于加密密钥,输入上一步所创建 KMS 密钥的 ARN,然后选择下一步。
-
在密钥名称中,输入一个描述性名称,以便您稍后查找自己的密钥。
-
(可选)对于描述,输入密钥名称的描述。
-
对于资源权限,选择编辑。
在权限策略中添加以下策略,以允许 Amazon FSx 使用密钥,然后选择下一步。确保将
us-west-2替换为 Amazon Web Services 区域(文件系统的部署位置),将123456789012替换为 Amazon Web Services 账户 ID。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "fsx.amazonaws.com" }, "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:us-west-2:123456789012:secret:*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:fsx:us-west-2:123456789012:file-system/*" } } } ] }注意
通过修改
Resource和aws:SourceArn字段,您可以设置更精细的访问控制,以针对特定的密钥和文件系统。 -
(可选)您可以将 Secrets Manager 配置为自动轮换凭证。选择下一步。
-
选择完成。
步骤 1:创建 KMS 密钥
创建 KMS 密钥,以在 Secrets Manager 中对 Active Directory 凭证进行加密和解密。
要创建 KMS 密钥,请使用 Amazon CLI 命令 create-key。
在此命令中,设置 --policy 参数,以指定定义 KMS 密钥权限的密钥策略。该策略必须包含以下内容:
-
Amazon FSx 的服务主体,即
fsx.amazonaws.com。 -
所需的 KMS 操作:
kms:Decrypt和kms:DescribeKey。 -
Amazon Web Services 区域 和账户的资源 ARN 模式。
-
限制密钥使用的条件键:
-
kms:ViaService,以确保请求通过 Secrets Manager 发出。 -
aws:SourceAccount,以限制您的账户。 -
aws:SourceArn,以限制特定的 Amazon FSx 文件系统。
-
以下示例创建对称加密 KMS 密钥,其策略允许 Amazon FSx 使用密钥进行解密和密钥描述操作。该命令会自动检索 Amazon Web Services 账户 ID 和区域,然后使用这些值配置密钥策略,以确保在 Amazon FSx、Secrets Manager 和 KMS 密钥之间实现适当的访问控制。确保 Amazon CLI 环境与将加入 Active Directory 的文件系统位于同一区域。
# Set region and get Account ID REGION=${AWS_REGION:-$(aws configure get region)} ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text) # Create Key KMS_KEY_ARN=$(aws kms create-key --policy "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"Enable IAM User Permissions\", \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::$ACCOUNT_ID:root\" }, \"Action\": \"kms:*\", \"Resource\": \"*\" }, { \"Sid\": \"Allow FSx to use the KMS key\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"fsx.amazonaws.com\" }, \"Action\": [ \"kms:Decrypt\", \"kms:DescribeKey\" ], \"Resource\": \"*\", \"Condition\": { \"StringEquals\": { \"kms:ViaService\": \"secretsmanager.$REGION.amazonaws.com\", \"aws:SourceAccount\": \"$ACCOUNT_ID\" }, \"ArnLike\": { \"aws:SourceArn\": \"arn:aws:fsx:$REGION:$ACCOUNT_ID:file-system/*\" } } } ] }" --query 'KeyMetadata.Arn' --output text) echo "KMS Key ARN: $KMS_KEY_ARN"
注意
通过修改 Resource 和 aws:SourceArn 字段,您可以设置更精细的访问控制,以针对特定的密钥和文件系统。
步骤 2:创建 Amazon Secrets Manager 密钥
要创建用于 Amazon FSx 访问 Active Directory 的密钥,请使用 Amazon CLI 命令 create-secret,并设置以下参数:
-
--name:密钥的标识符。 -
--description:密钥用途的描述。 -
--kms-key-id:您在步骤 1 中创建的 KMS 密钥 ARN,用于加密静态密钥。 -
--secret-string:包含 AD 凭证的 JSON 字符串,格式如下:-
CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME:不带域前缀的 AD 服务账户用户名,例如svc-fsx。请勿提供域前缀,例如CORP\svc-fsx。 -
CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD:AD 服务账户密码。
-
-
--region:Amazon Web Services 区域,即 Amazon FSx 文件系统创建的位置。如果AWS_REGION未设置,则默认为您配置的区域。
创建密钥后,使用 put-resource-policy 命令附加资源策略,并设置以下参数:
-
--secret-id:要附加策略的密钥的名称或 ARN。以下示例使用FSxSecret作为--secret-id。 -
--region:与密钥相同的 Amazon Web Services 区域。 -
--resource-policy:JSON 策略文档,授予 Amazon FSx 访问密钥的权限。该策略必须包含以下内容:-
Amazon FSx 的服务主体,即
fsx.amazonaws.com。 -
所需的 Secrets Manager 操作:
secretsmanager:GetSecretValue和secretsmanager:DescribeSecret。 -
Amazon Web Services 区域 和账户的资源 ARN 模式。
-
以下限制访问的条件键:
-
aws:SourceAccount,以限制您的账户。 -
aws:SourceArn,以限制特定的 Amazon FSx 文件系统。
-
-
以下示例创建格式符合要求的密钥,并附加允许 Amazon FSx 使用该密钥的资源策略。此示例会自动检索 Amazon Web Services 账户 ID 和区域,然后使用这些值配置资源策略,以确保在 Amazon FSx 和密钥之间实现适当的访问控制。
确保使用您在步骤 1 中所创建密钥的 ARN 替换 KMS_KEY_ARN,并使用 Active Directory 服务账户凭证替换 CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME 和 CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD。此外,验证 Amazon CLI 环境是否配置为与将加入 Active Directory 的文件系统位于同一区域。
# Set region and get account ID REGION=${AWS_REGION:-$(aws configure get region)} ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text) # Replace with your KMS key ARN from Step 1 KMS_KEY_ARN="arn:aws:kms:us-east-2:123456789012:key/1234542f-d114-555b-9ade-fec3c9200d8e" # Replace with your Active Directory credentials AD_USERNAME="Your_Username" AD_PASSWORD="Your_Password" # Create the secret SECRET_ARN=$(aws secretsmanager create-secret \ --name "FSxSecret" \ --description "Secret for FSx access" \ --kms-key-id "$KMS_KEY_ARN" \ --secret-string "{\"CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"$AD_USERNAME\",\"CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"$AD_PASSWORD\"}" \ --region "$REGION" \ --query 'ARN' \ --output text) echo "Secret created with ARN: $SECRET_ARN" # Attach the resource policy with proper formatting aws secretsmanager put-resource-policy \ --secret-id "FSxSecret" \ --region "$REGION" \ --resource-policy "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"fsx.amazonaws.com\" }, \"Action\": [ \"secretsmanager:GetSecretValue\", \"secretsmanager:DescribeSecret\" ], \"Resource\": \"$SECRET_ARN\", \"Condition\": { \"StringEquals\": { \"aws:SourceAccount\": \"$ACCOUNT_ID\" }, \"ArnLike\": { \"aws:SourceArn\": \"arn:aws:fsx:$REGION:$ACCOUNT_ID:file-system/*\" } } } ] }" echo "Resource policy attached successfully"
注意
通过修改 Resource 和 aws:SourceArn 字段,您可以设置更精细的访问控制,以针对特定的密钥和文件系统。
Amazon FSx 服务账户
加入自行管理的 Active Directory 的 Amazon FSx 文件系统在整个生命周期内需要一个有效的服务账户。Amazon FSx 使用此服务账户来完全管理文件系统,并执行需要将计算机对象取消加入并重新加入 Active Directory 域的管理任务。这些任务包括更换出现故障的文件服务器并给 Microsoft Windows Server 软件打补丁。要让 Amazon FSx 执行这些任务,Amazon FSx 服务账户必须至少拥有委派给它的一组权限,如 服务账户权限 所述。
尽管域管理员组的成员拥有足够的权限来执行这些任务,但我们强烈建议使用单独的服务账户向 Amazon FSx 委派所需的权限。
有关如何使用 Active Directory 用户和计算机 MMC 管理单元中的委派控制或高级功能功能来委派权限的更多信息,请参阅 向 Amazon FSx 服务账户或组委托权限。
如果您使用新服务账户更新文件系统,新服务账户必须拥有加入 Active Directory 的所需权限和特权,并对与文件系统关联的现有计算机对象拥有完全控制权限。有关更多信息,请参阅 更改 Amazon FSx 服务账户。
我们建议将您的 Active Directory 服务账户凭证存储在 Amazon Secrets Manager 中,以增强安全性。这样就无需以明文形式存储敏感凭证,且符合安全最佳实践。有关更多信息,请参阅 使用自行管理的 Microsoft Active Directory。