View a markdown version of this page

使用 Transfer Family 访问适用于 NetApp ONTAP 文件系统的 FSx - AWS Transfer Family

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

使用 Transfer Family 访问适用于 NetApp ONTAP 文件系统的 FSx

概述

Transfer Family 通过 S3 接入点支持适用于 NetApp ONTAP 的 Amazon FSx。适用于 NetApp ONTAP 的 Amazon FSx 是一项完全托管的服务,它基于广受欢迎的 ONTAP 文件系统提供高度可靠、可扩展、高性能和功能丰富的文件存储。 NetApp在使用 FSx 文件系统配置 Transfer Family 时,您的用户将使用标准文件传输客户端连接到 Transfer Family 端点。Transfer Family 通过连接到 FSx 卷的 S3 接入点路由文件操作,而您的数据则保留在 FSx 文件系统上。要了解有关 ONTAP 版 FSx 的更多信息,请参阅什么是 NetApp ONTAP 版 Amazon FSx? NetApp

此集成使您能够:

  • 使用 SFTP、FTPS 或 FTP 协议将文件传输到企业级文件存储

  • 通过多种协议(SFTP、NFS、SMB)访问相同的数据

  • 使用 FSx 功能,例如快照、备份和数据分层

重要

将 FSx 文件系统与 Transfer Family 配合使用时,不支持某些文件操作,包括重命名和追加操作。对于上传操作,文件大小限制为 5 GB。有关限制的完整列表,请参阅接入点兼容性

先决条件

在使用 Amazon FSx 配置 Transfer Family 之前,您必须满足以下要求。

符合 ONTAP 要求 NetApp 的 FSx

要将适用于 NetApp ONTAP 的 FSx 与 Transfer Family 配合使用,您需要:

  • 运行 ONTAP 版本 9.17.1 或更高版本的 NetApp ONTAP 文件系统的 FSx

  • 同一 AWS 区域中的文件系统和 S3 接入点

  • 同时拥有文件系统和接入点的同一个 AWS 帐户

要了解更多信息,请参阅适用于 ONTAP 的 Amazon FSx 入 NetApp 门

所需的 IAM 权限

您可以为每个 S3 接入点配置不同的权限和网络控制,S3 适用于使用该接入点发出的任何请求。S3 接入点支持 IAM 资源策略,您可以使用这些策略按资源、用户或其他条件控制接入点的使用。要使应用程序或用户通过接入点访问文件,接入点和底层卷都必须允许该请求。有关更多信息,请参阅 IAM 接入点策略

适用于 FSx 的 Amazon S3 接入点使用双层授权模型,将 IAM 权限与文件系统级权限相结合。这种方法可确保在 AWS 服务级别和底层文件系统级别对数据访问请求进行适当授权。

要使应用程序或用户成功地通过接入点访问数据,S3 接入点策略和底层 FSx 卷都必须允许该请求。

要创建和配置此集成,您需要以下权限:

  • fsx:CreateAndAttachS3AccessPoint

  • s3:CreateAccessPoint

  • s3:GetAccessPoint

  • s3:PutAccessPointPolicy(如果创建可选的接入点策略)

FSx 存储如何与 Transfer Family 配合使用

在使用 FSx 文件系统配置 Transfer Family 时,以下组件协同工作以启用文件传输:

  1. 用户使用 SFTP、FTPS 或 FTP 客户端连接到 Transfer Family 服务器。

  2. Transfer Family 使用服务托管身份、自定义身份提供者或对用户进行身份验证。 AWS Directory Service for Microsoft Active Directory经过身份验证后,Transfer Family 将担任与该用户关联的 IAM 角色。

  3. 对于每个文件操作,Transfer Family 都充当标准的 S3 API 客户端,使用用户假设的 IAM 角色向 S3 接入点发出请求,并根据 S3 接入点策略验证权限。

  4. FSx 文件系统验证与接入点关联的文件系统用户是否有权执行所请求的操作。然后在 FSx 卷上执行文件操作。

要使文件操作成功,两个授权层都必须允许该请求。

注意

将 S3 接入点连接到 FSx 卷并不会改变该卷在直接通过 NFS 或 SMB 访问时的行为。现有文件协议访问权限继续保持不变。

文件系统用户身份

每个接入点都使用您在创建接入点时指定的文件系统用户身份。此身份授权通过该接入点发出的所有文件访问请求。文件系统用户是底层 Amazon FSx 文件系统上的用户账户。如果文件系统用户具有只读访问权限,则只有使用访问点发出的读取请求才会获得授权,并且写入请求会被阻止。如果文件系统用户具有读写访问权限,则使用访问点对连接的卷发出的读取和写入请求都将获得授权。

为 FSx 创建 S3 接入点

在配置 Transfer Family 之前,必须创建一个连接到 FSx 卷的 S3 接入点。S3 接入点被命名为连接到数据源的网络终端节点,例如存储桶或适用于 ONTAP 卷的 Amazon FSx。您可以使用 Amazon FSx 控制台、CLI 或 AP AWS I 创建接入点并将其连接到适用于 NetApp ONTAP 的 FSx。附加后,可以使用 S3 对象 API 来访问文件数据。数据将继续位于 Amazon FSx 文件系统上,并且对于您现有的工作负载而言,这些数据将继续可供直接访问。您可以继续使用所有 FSx for NetApp ONTAP 存储管理功能管理存储,包括备份、快照、用户和组配额以及压缩。

有关更多信息,请参阅创建接入点

接入点命名

命名接入点时,请遵循以下准则:

  • 接入点名称在您的 AWS 账户和地区内必须是唯一的。

  • 名称不能以-ext-s3alias(为别名保留)结尾。

  • 避免在名称中包含敏感信息,因为这些信息是在 DNS 中发布的。

有关命名规则的完整列表,请参阅接入点命名规则、限制和限制

为 ONTAP 的 FSx 创建接入点 NetApp

使用以下步骤为 FSx for NetApp ONTAP 卷创建 S3 接入点。

创建接入点(控制台)
  1. 打开 Amazon FSx 控制台,网址为。https://console.aws.amazon.com/fsx/

  2. 在导航窗格中选择文件系统

  3. 选择适用于 NetApp ONTAP 文件系统的 FSx。

  4. 选择选项卡。

  5. 选择要连接的音量。

  6. 在 “操作” 中,选择 “创建 S3 接入点”。

  7. 接入点名称中,输入描述性名称(例如transfer-family-ap)。

  8. 对于文件系统用户身份类型,请选择以下选项之一:

    • UNIX 身份-适用于具有 UNIX 安全风格的卷

    • Windows 身份-适用于具有 NTFS 安全风格的卷

  9. (可选)在接入点策略中,输入一个 IAM 策略,该策略定义了哪些 IAM 委托人可以对通过此接入点访问的对象执行哪些操作。有关更多信息,请参阅管理接入点接入

  10. 选择创建

  11. 创建后,记下接入点别名以便在 Transfer Family 配置中使用。

注意

代表连接的 SFTP/FTPS 用户 AWS Transfer Family 访问 S3 资源时,请求来自 AWS Transfer Family 基础架构,而不是来自您的 VPC。因此,配置有 VPC 网络源的 S3 接入点将拒绝这些请求。但是,即使您使用配置了互联网网络来源的接入点,Transfer Family 和接入点之间的所有流量仍保持私密性,并通过 AWS 主干网络传输,它不会通过公共互联网。

配置文件系统权限

您指定的文件系统用户决定了 Transfer Family 用户可以执行的操作。您必须在 FSx 卷上配置适当的权限。

UNIX 示例:

# Create a directory for Transfer Family users mkdir -p /vol1/transfer-users # Set ownership to match the access point user chown 1001:1001 /vol1/transfer-users # Set permissions chmod 755 /vol1/transfer-users

Windows 示例:

# Create a directory for Transfer Family users New-Item -Path "D:\vol1\transfer-users" -ItemType Directory # Set permissions for the file system user associated with the access point # Replace DOMAIN\TransferUser with your Windows user identity icacls "D:\vol1\transfer-users" /grant "DOMAIN\TransferUser:(OI)(CI)M" /T # Verify permissions icacls "D:\vol1\transfer-users"

在 FSx 中使用 S3 接入点别名

当你将 FSx 文件系统与 Transfer Family 一起使用时,必须使用 S3 接入点别名。Transfer Family 不支持使用接入点 ARN 或其他参考方法来存储 FSx。

重要

AWS Transfer Family 仅在使用 FSx 文件系统时支持 S3 接入点别名。您不能使用接入点 ARN 或虚拟托管式 URI。

重要

接入点必须与卷位于同一区域。

关于接入点别名

当您创建连接到 FSx 卷的 S3 接入点时,Amazon S3 会自动生成接入点别名。此别名是一个唯一标识符,您可以在任何使用 S3 存储桶名称的地方使用该标识符。

对于连接到 FSx 卷的接入点,别名使用以下格式:

access-point-name-metadata-ext-s3alias

别名示例:

my-fsx-ap-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias
注意

-ext-s3alias缀保留给 FSx 接入点别名。您不能在接入点名称中使用此后缀。

查找您的接入点别名

您可以在创建接入点之后找到接入点别名。

查找接入点别名(控制台)
  1. 打开 Amazon FSx 控制台,网址为。https://console.aws.amazon.com/fsx/

  2. 在导航窗格中选择文件系统

  3. 选择文件系统。

  4. 选择 “” 选项卡,然后选择您为其创建接入点的卷。

  5. 转到 S3 接入点详细信息列。

  6. 别名显示在 “别名” 列中。

查找接入点别名 (CLI)

使用 describe-s3-access-point-attachments 命令。

aws fsx describe-s3-access-point-attachments \ --filters Name=file-system-id,Values=fs-0123456789abcdef0

响应中包含别名:

{ "S3AccessPointAttachments": [ { "S3AccessPoint": { "ResourceARN": "arn:aws:s3:us-east-1:111122223333:accesspoint/my-fsx-ap", "Alias": "my-fsx-ap-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias" } } ] }

配置 Transfer Family 用户时,请在主目录映射中使用接入点别名。

主目录格式:

/access-point-alias/path/to/directory

示例

/my-fsx-ap-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias/users/jsmith

为 FSx 存储配置 Transfer Family

创建 S3 接入点后,将 Transfer Family 服务器配置为使用该接入点。

创建 IAM 角色

您必须创建一个 IAM 角色来授予 Transfer Family 对 S3 接入点的访问权限。

重要

IAM 策略要求使用接入点 ARN 格式,而不是别名。使用 IAM 策略资源声明arn:aws:s3:region:account-id:accesspoint/access-point-name中的格式。接入点别名(结尾为-ext-s3alias)仅用于主目录映射。

创建 IAM 角色
  1. 使用 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在导航窗格中,选择角色,然后选择创建角色

  3. 可信实体类型中选择 AWS 服务

  4. 对于 “用例”,选择 “传输”。

  5. 选择下一步

  6. 选择创建策略并输入您的政策(参见下面的示例政策)。

  7. 将策略附加到角色并选择创建角色

IAM 策略示例:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFileOperations", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:us-east-2:111122223333:accesspoint/my-fsx-ap/object/*" }, { "Sid": "AllowDirectoryOperations", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:us-east-2:111122223333:accesspoint/my-fsx-ap" } ] }

管理 FSx 存储的用户

使用使用 S3 接入点别名的主目录映射创建 Transfer Family 用户。

创建用户

在为 FSx 存储创建用户时,请在主目录映射中使用接入点别名。

创建服务托管用户(控制台)
  1. 打开 AWS Transfer Family 控制台,网址为https://console.aws.amazon.com/transfer/

  2. 在导航窗格中,选择服务器

  3. 请选择您的服务器。

  4. 在用户部分中,选择添加用户

  5. 对于用户名,输入用户名。

  6. 对于角色,选择您创建的 IAM 角色。

  7. 对于 “主目录”,选择 “受限”。

  8. 对于主目录映射,请使用接入点别名添加映射:

    [{"Entry": "/", "Target": "/my-fsx-ap-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias/users/jsmith"}]

创建用户 (CLI)

使用 create-user 命令。用您的别名替换接入点别名。

aws transfer create-user \ --server-id s-0123456789abcdef0 \ --user-name jsmith \ --role arn:aws:iam::111122223333:role/TransferFamilyFSxRole \ --home-directory-type LOGICAL \ --home-directory-mappings '[ { "Entry": "/", "Target": "/my-fsx-ap-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias/users/jsmith" } ]'

配置多个目录映射

您可以将多个虚拟目录映射到 FSx 卷上的不同路径。

示例:单独的上传和下载目录

aws transfer create-user \ --server-id s-0123456789abcdef0 \ --user-name jsmith \ --role arn:aws:iam::111122223333:role/TransferFamilyFSxRole \ --home-directory-type LOGICAL \ --home-directory-mappings '[ { "Entry": "/inbox", "Target": "/my-fsx-ap-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias/users/jsmith/inbox" }, { "Entry": "/outbox", "Target": "/my-fsx-ap-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias/users/jsmith/outbox" } ]'

配置文件传输客户端

在 Transfer Family 中使用 FSx 文件系统时,必须将文件传输客户端配置为禁用不支持的功能。

WinSCP 配置

默认情况下,WinSCP 使用临时重命名功能,FSX 的 S3 接入点不支持该功能。

警告

如果您不在 WinSCP 中禁用临时重命名功能,文件上传将失败。

在 WinSCP 中禁用临时重命名
  1. 打开 WinSCP。

  2. 在 “登录” 对话框中,选择 “编辑” 以修改您的会话设置。

  3. 选择 Advanced(高级)。

  4. 在左侧导航栏的传输下,选择耐力

  5. 对于 “允许传输 resume/transfer 到临时文件名”,选择 “禁用”。

  6. 选择确定保存设置。

或者,您可以为现有会话禁用此设置:

  1. 连接到你的 Transfer Family 服务器。

  2. 选择选项,然后选择首选项

  3. 选择传输,然后选择耐力

  4. 对于 “允许传输 resume/transfer 到临时文件名”,选择 “禁用”。

  5. 选择确定

其他 SFTP 客户端

对于其他 SFTP 客户端,请禁用以下功能(如果有):

  • 上传临时文件(上传到临时文件,然后重命名)

  • 使用临时文件恢复传输

  • 使用重命名操作进行原子上传

  • 上传的追加模式

有关具体的配置步骤,请查阅您的客户端文档。

对 FSx 存储进行故障排除

本节介绍如何识别和解决将 Transfer Family 与 FSx 文件系统配合使用时的常见问题。

文件操作问题

权限被拒绝

如果您收到权限被拒绝的错误:

  1. 验证 IAM 角色是否具有接入点别名的正确权限。您可以通过直接使用 S3 API 进行测试来做到这一点。

  2. 检查接入点策略是否允许 IAM 角色。

  3. 验证文件系统用户是否具有目标路径的权限。

  4. 确认主目录映射使用正确的接入点别名。

使用 WinSCP 上传失败

如果使用 WinSCP 上传文件失败,请禁用临时重命名:

  1. 在 WinSCP 中,选择选项,然后选择首选项。

  2. 选择传输,然后选择耐力

  3. 对于 “允许传输 resume/transfer 到临时文件名”,选择 “禁用”。

有关更多信息,请参阅 配置文件传输客户端

文件上传失败

如果文件上传失败:

  1. 验证文件大小是否低于 5 GB。

  2. 检查 FSx 卷是否有足够的可用存储空间。

  3. 监控限制 CloudWatch 指标。