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

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

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

概述

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

此集成使您能够:

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

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

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

重要

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

先决条件

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

FSx 针对 NetApp ONTAP 的要求

要使用带有 T FSx ransfer Family 的 NetApp ONTAP,您需要:

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

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

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

要了解更多信息,请参阅亚马逊 FSx NetApp ONTAP 版入门

所需的 IAM 权限

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

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

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

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

  • fsx:CreateAndAttachS3AccessPoint

  • s3:CreateAccessPoint

  • s3:GetAccessPoint

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

Trans FSx fer 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 文件系统上的用户账户。如果文件系统用户具有只读访问权限,则只有使用访问点发出的读取请求才会获得授权,写入请求会被阻止。如果文件系统用户具有读写访问权限,则使用访问点对连接的卷发出的读取和写入请求都将获得授权。

为创建 S3 接入点 FSx

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

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

接入点命名

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

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

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

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

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

为 NetApp ONTAP 创建接入点 FSx

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

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

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

  3. FSx 为 NetApp ONTAP 文件系统选择你的。

  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"

将 S3 接入点别名与 FSx

在 Transfer Family 中使用 FSx 文件系统时,必须使用 S3 接入点别名。Transfer Family 不支持使用接入点 ARNs 或其他参考方法进行 FSx 存储。

重要

AWS Transfer Family 仅在使用 FSx 文件系统时支持 S3 接入点别名。您不能使用接入点 ARNs 或 virtual-hosted-style URIs。

重要

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

关于接入点别名

当您创建连接到 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

配置 Transfer Family 以进行 FSx 存储

创建 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 默认使用临时重命名功能,S3 接入点不支持该功能。 FSx

警告

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

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

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

  3. 选择 Advanced(高级)。

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

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

  6. 选择确定保存设置。

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

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

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

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

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

  5. 选择确定

其他 SFTP 客户端

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

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

  • 使用临时文件恢复传输

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

  • 上传的追加模式

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

FSx 存储疑难解答

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

文件操作问题

权限被拒绝

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

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

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

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

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

使用 WinSCP 上传失败

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

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

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

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

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

文件上传失败

如果文件上传失败:

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

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

  3. 监控限制 CloudWatch 指标。