本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Active Directory 的最佳实践
以下是加入 Amazon FSx for NetApp ONTAP SVMs 加入自我管理的 Microsoft Active Directory 时应考虑的一些建议和指南。请注意,这些建议和指南是最佳实践,不是硬性要求。
主题
向您的 Amazon FSx 服务账户委派权限
请务必将您提供给 Amazon 的服务账户配置 FSx 为所需的最低权限。此外,将组织单元(OU)与其他域控制器问题分开。
要将 Amazon FSx SVMs 加入您的域名,请确保服务账户拥有委托权限。域管理员组的成员有足够的权限来执行此任务。但是,作为最佳实践,请使用仅具有此任务的最低执行权限的服务账户。以下过程演示如何仅将加入 FSx ONTAP 所需的权限委托 SVMs 给您的域。
您必须在已加入目录且已安装 Active Directory User and Computers MMC 管理单元的计算机上执行此过程。
为 Microsoft Active Directory 域创建服务账户
确保您以 Microsoft Active Directory 域的域管理员身份登录。
-
打开 Active Directory User and Computers MMC 管理单元。
在任务窗格中,展开域节点。
-
找到并打开您要修改的 OU 的上下文(右键单击)菜单,然后选择委派控制。
-
在委派控制向导页面上,选择下一步。
-
选择添加,在选定的用户和组中添加特定用户或特定组,然后选择下一步。
-
在要委派的任务页面上,选择创建要委派的自定义任务,然后选择下一步。
-
选择仅文件夹中的以下对象,然后选择计算机对象。
-
选择在此文件夹中创建选定对象和删除此文件夹中的选定对象。然后选择下一步。
-
在显示这些权限 下,确保选中常规和特定于属性。
-
在权限中,请选择以下选项:
-
重置密码
-
读取和写入账户限制
-
已验证写入 DNS 主机名
-
已验证写入服务主体名称
写下 MSD-SupportedEncryptionTypes
-
-
选择下一步,然后选择完成。
-
关闭 Active Directory User and Computers MMC 管理单元。
重要
FSx 创建计算机对象后,请勿移动 Amazon 在 OU 中创建 SVMs 的计算机对象。这样做会 SVMs 导致您的配置错误。
使用 Amazon 更新您的活动目录配置 FSx
要使您的 Amazon 不间断地使用 FSx SVMs,请在更改自我管理 AD 设置时更新 SVM 的自我管理活动目录 (AD) 配置。
例如,假设您的 AD 使用基于时间的密码重置策略。在这种情况下,密码重置后,请务必使用Amazon更新服务账户密码 FSx。为此,请使用亚马逊 FSx 控制台、亚马逊 FSx API 或 AWS CLI。同样,如果您的 Active Directory 域的 DNS 服务器 IP 地址发生变化,则一旦发生更改,请立即使用 Amazon 更新 DNS 服务器 IP 地址 FSx。
如果更新的自行管理 AD 配置存在问题,则 SVM 状态会切换为错误配置。在此状态下,控制台、API 和 CLI 中的 SVM 描述旁边会显示错误消息和推荐操作。如果您的 SVM 的 AD 配置存在问题,请务必对配置属性采取推荐的纠正操作。如果问题得到解决,请验证 SVM 的状态是否更改为已创建。
有关更多信息,请参阅使用 AWS 管理控制台、 AWS CLI和 API 更新现有 SVM Active Directory 配置和使用 ONTAP CLI 修改 Active Directory 配置。
使用安全组限制 VPC 内的流量
要限制虚拟私有云(VPC)内的网络流量,您可以在 VPC 中实施最低权限原则。换言之,您可以将权限限制为所需的最低权限。为此,请使用安全组规则。要了解更多信息,请参阅Amazon VPC 安全组。
为文件系统的网络接口创建出站安全组规则
为提高安全性,请考虑使用出站流量规则来配置安全组。这些规则应仅允许出站流量流向自行管理的 AD 域控制器或子网或安全组内部。将此安全组应用于与您的亚马逊 FSx 文件系统的 elastic network interface 关联的 VPC。要了解更多信息,请参阅使用 Amazon VPC 进行文件系统访问控制。
使用存储活动目录凭证 AWS Secrets Manager
你可以使用 AWS Secrets Manager 安全地存储和管理你的 Microsoft Active Directory 域加入服务帐户凭据。此方法无需在应用程序代码或配置文件中以明文形式存储敏感凭证,从而增强您的安全状况。
您还可以配置 IAM 策略,以管理对密钥的访问权限,并为密码设置自动轮换策略。
步骤 1:创建 KMS 密钥
创建 KMS 密钥,以在 Secrets Manager 中对 Active Directory 凭证进行加密和解密。
创建密钥
注意
对于加密密钥,请创建新密钥,不要使用 AWS 默认 KMS 密钥。请务必 AWS KMS key 在包含要加入 Active Directory 的 SVM 的同一个区域中创建。
在 https://console.aws.amazon.com /km AWS KMS s 处打开控制台
-
选择创建密钥。
-
对于密钥类型,选择对称。
-
对于密钥用法,选择加密和解密。
-
对于高级选项,执行以下操作:
-
对于密钥材料源,选择 KMS。
-
对于区域性,选择单区域密钥,然后选择下一步。
-
-
选择下一步。
-
对于别名,提供 KMS 密钥的名称。
-
(可选)对于描述,提供 KMS 密钥的描述。
-
(可选)对于标签,提供 KMS 密钥的标签,然后选择下一步。
-
(可选)对于密钥管理员,提供获授权管理此密钥的 IAM 用户和角色。
-
对于密钥删除,确保选中允许密钥管理员删除此密钥复选框,然后选择下一步。
-
(可选)对于密钥用户,提供获授权在加密操作中使用此密钥的 IAM 用户和角色。选择下一步。
-
对于密钥策略,选择编辑并在政策声明中包含以下内容以允许 Amazon FSx 使用 KMS 密钥,然后选择下一步。请务必将替换
us-west-2为文件系统的部署 AWS 区域 位置和您123456789012的 AWS 账户 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:ViaService": "secretsmanager.us-west-2.amazonaws.com", "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": [ "arn:aws:fsx:us-west-2:123456789012:file-system/*", "arn:aws:fsx:us-west-2:123456789012:storage-virtual-machine/fs-*/svm-*" ] } } } -
选择结束。
注意
通过修改 Resource 和 aws:SourceArn 字段,您可以设置更精细的访问控制,以针对特定的密钥和文件系统。
第 2 步:创建 AWS Secrets Manager 密钥
创建密钥
-
打开 Secrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/
。 -
选择存储新密钥。
-
对于密钥类型,请选择其他密钥类型。
-
对于键/值对,请执行以下操作以添加您的两个密钥:
-
对于第一个密钥,请输入
CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME。 -
对于第一个密钥的值,请仅输入 AD 用户的用户名(不带域前缀)。
-
对于第二个密钥,请输入
CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD。 -
对于第二个密钥的值,请输入您在域中为 AD 用户创建的密码。
-
-
对于加密密钥,输入上一步所创建 KMS 密钥的 ARN,然后选择下一步。
-
在密钥名称中,输入一个描述性名称,以便您稍后查找自己的密钥。
-
(可选)对于描述,输入密钥名称的描述。
-
对于资源权限,选择编辑。
在权限策略中添加以下策略以允许 Amazon FSx 使用该密钥,然后选择 Next。请务必将替换
us-west-2为文件系统的部署 AWS 区域 位置和您123456789012的 AWS 账户 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/*", "arn:aws:fsx:us-west-2:123456789012:storage-virtual-machine/fs-*/svm-*" ] } } } ] } -
(可选)您可以将 Secrets Manager 配置为自动轮换凭证。选择下一步。
-
选择结束。
步骤 1:创建 KMS 密钥
创建 KMS 密钥,以在 Secrets Manager 中对 Active Directory 凭证进行加密和解密。
要创建 KMS 密钥,请使用 AWS CLI 命令创建密钥。
在此命令中,设置 --policy 参数,以指定定义 KMS 密钥权限的密钥策略。该策略必须包含以下内容:
-
Amazon 的服务主体 FSx,即
fsx.amazonaws.com。 -
所需的 KMS 操作:
kms:Decrypt和kms:DescribeKey。 -
您的 AWS 区域 和账户的资源 ARN 模式。
-
限制密钥使用的条件键:
-
kms:ViaService,以确保请求通过 Secrets Manager 发出。 -
aws:SourceAccount,以限制您的账户。 -
aws:SourceArn仅限于特定的 Amazon FSx 文件系统。
-
以下示例创建了一个对称加密 KMS 密钥,其策略允许 Amazon FSx 使用该密钥进行解密和密钥描述操作。该命令会自动检索您的 AWS 账户 ID 和区域,然后使用这些值配置密钥策略,以确保亚马逊 FSx、Secrets Manager 和 KMS 密钥之间进行适当的访问控制。确保您的 AWS CLI 环境与将加入 Active Directory 的 SVM 位于同一区域。
# 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/*\", \"arn:aws:fsx:$REGION:$ACCOUNT_ID:storage-virtual-machine/fs-*/svm-*\"] } } } ] }" --query 'KeyMetadata.Arn' --output text) echo "KMS Key ARN: $KMS_KEY_ARN"
注意
通过修改 Resource 和 aws:SourceArn 字段,您可以设置更精细的访问控制,以针对特定的密钥和文件系统。
第 2 步:创建 AWS Secrets Manager 密钥
要为亚马逊 FSx 创建用于访问您的活动目录的密钥,请使用 c reate-secre AWS CLI t 命令并设置以下参数:
-
--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:您的 SVM 将在 AWS 区域 何处创建。如果AWS_REGION未设置,则默认为您配置的区域。
创建密钥后,使用put-resource-policy命令附加资源策略,并设置以下参数:
-
--secret-id:要附加策略的密钥的名称或 ARN。以下示例使用FSxSecret作为--secret-id。 -
--region: 和你的秘密 AWS 区域 一样。 -
--resource-policy:授予亚马逊访问密钥 FSx 权限的 JSON 政策文档。该策略必须包含以下内容:-
Amazon 的服务主体 FSx,即
fsx.amazonaws.com。 -
所需的 Secrets Manager 操作:
secretsmanager:GetSecretValue和secretsmanager:DescribeSecret。 -
您的 AWS 区域 和账户的资源 ARN 模式。
-
以下限制访问的条件键:
-
aws:SourceAccount,以限制您的账户。 -
aws:SourceArn仅限于特定的 Amazon FSx 文件系统。
-
-
以下示例创建了一个具有所需格式的密钥,并附加了允许 Amazon FSx 使用该密钥的资源策略。此示例会自动检索您的 AWS 账户 ID 和区域,然后使用这些值配置资源策略,以确保在 Amazon FSx 和密钥之间进行适当的访问控制。
确保使用您在步骤 1 中所创建密钥的 ARN 替换 KMS_KEY_ARN,并使用 Active Directory 服务账户凭证替换 CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME 和 CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD。此外,请验证您的 AWS CLI 环境是否配置为与将加入 Active Directory 的 SVM 相同的区域。
# 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/*\", \"arn:aws:fsx:$REGION:$ACCOUNT_ID:storage-virtual-machine/fs-*/svm-*\"] } } } ] }" echo "Resource policy attached successfully"
注意
通过修改 Resource 和 aws:SourceArn 字段,您可以设置更精细的访问控制,以针对特定的密钥和文件系统。