使用 Amazon EFS 配置 AWS DataSync 传输
要将数据传入到您的 Amazon EFS 文件系统或从中传出数据,您必须创建一个 AWS DataSync 传输位置。DataSync 可以将此位置用作传输数据的源或目标。
向 DataSync 提供访问 Amazon EFS 文件系统的权限
创建位置需要了解 DataSync 如何访问您的存储。对于 Amazon EFS,DataSync 会使用网络接口,以根用户身份从虚拟私有云(VPC)挂载文件系统。
确定挂载目标的子网和安全组
创建位置时,指定子网和安全组,以允许 DataSync 连接到 Amazon EFS 文件系统中的一个挂载目标。
指定的子网必须位于:
-
文件系统所在的相同 VPC 中。
-
文件系统至少一个挂载目标所在的相同可用区中。
注意
您无需指定包含文件系统挂载目标的子网。
您指定的安全组必须允许网络文件系统(NFS)端口 2049 上的入站流量。有关为挂载目标创建和更新安全组的信息,请参阅 Amazon EFS 用户指南。
- 指定与挂载目标相关联的安全组
-
您可以指定与文件系统挂载目标之一相关联的安全组。从网络管理的角度来看,我们推荐这种方法。
- 指定与挂载目标无关联的安全组
-
您还可以指定与文件系统的挂载目标无关联的安全组。但是,此安全组必须能够与挂载目标的安全组进行通信。
例如,您可以通过以下方式,在安全组 D(用于 DataSync)和安全组 M(用于挂载目标)之间创建关系:
-
您在创建位置时指定的安全组 D 必须具有一条规则,允许 NFS 端口 2049 上与安全组 M 的出站连接。
-
与挂载目标相关联的安全组 M 必须允许安全组 D 通过 NFS 端口 2049 进行的入站访问。
-
查找挂载目标的安全组
以下说明可以帮助您确定 Amazon EFS 文件系统挂载目标的安全组,以便让 DataSync 使用它进行传输。
-
在 AWS CLI 中,运行以下
describe-mount-targets命令。aws efs describe-mount-targets \ --regionfile-system-region\ --file-system-idfile-system-id此命令将返回有关文件系统挂载目标的信息(与以下示例输出类似)。
{ "MountTargets": [ { "OwnerId": "111222333444", "MountTargetId": "fsmt-22334a10", "FileSystemId": "fs-123456ab", "SubnetId": "subnet-f12a0e34", "LifeCycleState": "available", "IpAddress": "11.222.0.123", "NetworkInterfaceId": "eni-1234a044" } ] } -
记下要使用的
MountTargetId值。 -
使用
MountTargetId运行以下describe-mount-target-security-groups命令,查看挂载目标的安全组。aws efs describe-mount-target-security-groups \ --regionfile-system-region\ --mount-target-idmount-target-id
在创建位置时,指定此安全组。
访问受限文件系统
对于通过接入点和 IAM 策略限制访问的 Amazon EFS 文件系统,DataSync 也可以向其传输或从中传出数据。
注意
如果 DataSync 通过对用户身份进行强制验证的接入点来访问目标文件系统,那么,如果您将 DataSync 任务配置为复制所有权,源数据的 POSIX 用户和组 ID 将不会保留。相反,传输的文件和文件夹会被设置为接入点的用户和组 ID。发生这种情况时,任务验证会失败,因为 DataSync 检测到源位置和目标位置的元数据不匹配。
为文件系统访问创建 DataSync IAM 角色
如果您的 Amazon EFS 文件系统通过 IAM 策略限制访问,您可以创建一个 IAM 角色,为 DataSync 提供从该文件系统读取数据或向其写入数据的权限。然后,您可能需要在文件系统策略中指定该角色。
创建 DataSync IAM 角色
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在左侧导航窗格的访问管理下,选择角色,然后选择创建角色。
-
在选择可信实体中的可信实体类型下,选择自定义信任策略。
-
将以下 JSON 粘贴到策略编辑器中:
-
选择下一步。在添加权限页面上,选择下一步。
-
输入角色名称,然后选择创建角色。
请在创建位置时指定此角色。
允许 DataSync 访问的文件系统策略示例
以下文件系统策略示例展示了如何限制对 Amazon EFS 文件系统(在策略中标识为 fs-)的访问,但仍允许通过名为 1234567890abcdef0 的 IAM 角色为 DataSync 提供访问权限:MyDataSyncRole
-
Principal:指定一个 IAM 角色,该角色授予 DataSync 访问文件系统的权限。 -
Action:授予 DataSync 根访问权限,并允许其读取和写入文件系统。 -
aws:SecureTransport:要求 NFS 客户端在连接到文件系统时使用 TLS。 -
elasticfilesystem:AccessPointArn:仅允许通过特定的接入点访问文件系统。
Amazon EFS 传输的网络注意事项
与 DataSync 一起使用的 VPC 必须具有默认租赁。不支持具有专用租赁的 VPC。
Amazon EFS 传输的性能注意事项
Amazon EFS 文件系统的吞吐量模式可能会在传输期间影响传输持续时长和文件系统性能。请考虑以下事项:
-
为了获得最佳效果,建议使用弹性吞吐量模式。如果不使用弹性吞吐量模式,传输可能需要更长的时间。
-
如果使用突增吞吐量模式,文件系统应用程序的性能可能会受到影响,因为 DataSync 会消耗文件系统的突增点数。
-
配置 DataSync 以验证传输数据的方式可能会影响文件系统的性能和数据访问成本。
有关更多信息,请参阅《Amazon Elastic File System 用户指南》中的 Amazon EFS 性能,以及 Amazon EFS 定价
创建您的 Amazon EFS 传输位置
要创建传输位置,您需要一个现有的 Amazon EFS 文件系统。如果您还没有 Amazon EFS 文件系统,请参阅《Amazon Elastic File System 用户指南》中的 Amazon EFS 入门。
打开 AWS DataSync 控制台,地址:https://console.aws.amazon.com/datasync/
。 在左侧导航窗格中,展开数据传输,然后选择 位置和 创建位置。
-
对于位置类型,请选择 Amazon EFS 文件系统。
您可在稍后将此位置配置为源或目标。
-
对于文件系统,选择要用作端点的 Amazon EFS 文件系统。
-
对于挂载路径,输入 Amazon EFS 文件系统的挂载路径。
这将指定 DataSync 在文件系统上读取或写入数据的位置(取决于是源位置还是目标位置)。
默认情况下,DataSync 使用根目录(或者,如果您为 EFS 接入点设置提供了接入点,则使用接入点)。也可以使用正斜杠指定子目录(例如,
/path/to/directory)。 -
对于子网,选择您希望 DataSync 在其中创建网络接口以管理数据传输流量的子网。
子网必须位于:
-
文件系统所在的相同 VPC 中。
-
与至少一个文件系统挂载目标位于同一可用区中。
注意
您无需指定包含文件系统挂载目标的子网。
-
-
对于安全组,选择与您的 Amazon EFS 文件系统的挂载目标相关联的安全组。您可以选择多个安全组。
注意
您指定的安全组必须允许 NFS 端口 2049 上的入站流量。有关更多信息,请参阅 确定挂载目标的子网和安全组。
-
对于传输中加密,请选择当 DataSync 将数据传输到文件系统或从文件系统传输数据时,您是否希望 DataSync 使用传输层安全性协议(TLS)加密。
注意
您必须启用此设置,才能在您的 Amazon EFS 位置配置接入点、IAM 角色或两者。
-
(可选)对于 EFS 接入点,请选择 DataSync 可以用来挂载文件系统的接入点。
有关更多信息,请参阅 访问受限文件系统。
-
(可选)对于 IAM 角色,请指定一个允许 DataSync 访问您的文件系统的角色。
有关创建该角色的信息,请参阅为文件系统访问创建 DataSync IAM 角色。
-
(可选)选择添加标签来标记您的文件系统。
标签是帮助您管理、筛选和搜索位置的键值对。
-
选择创建位置。
-
复制以下
create-location-efs命令:aws datasync create-location-efs \ --efs-filesystem-arn 'arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id' \ --subdirectory/path/to/your/subdirectory\ --ec2-config SecurityGroupArns='arn:aws:ec2:region:account-id:security-group/security-group-id',SubnetArn='arn:aws:ec2:region:account-id:subnet/subnet-id' \ --in-transit-encryption TLS1_2 \ --access-point-arn 'arn:aws:elasticfilesystem:region:account-id:access-point/access-point-id' \ --file-system-access-role-arn 'arn:aws:iam::account-id:role/datasync-efs-access-role -
对于
--efs-filesystem-arn,指定要向其传输数据或从中传出数据的 Amazon EFS 文件系统的 Amazon 资源名称(ARN)。 -
对于
--subdirectory,指定文件系统的挂载路径。这是 DataSync 在文件系统上读取或写入数据的位置(取决于是源位置还是目标位置)。
默认情况下,DataSync 使用根目录(或者,如果您使用
--access-point-arn提供了接入点,则使用接入点)。也可以使用正斜杠指定子目录(例如,/path/to/directory)。 -
对于
--ec2-config,执行以下操作:-
对于
,指定与文件系统挂载目标相关联的安全组 ARN。您可以指定多个安全组。SecurityGroupArns注意
您指定的安全组必须允许 NFS 端口 2049 上的入站流量。有关更多信息,请参阅 确定挂载目标的子网和安全组。
-
对于
SubnetArn,指定您希望 DataSync 在其中创建网络接口,以管理数据传输流量的子网 ARN。子网必须位于:
-
文件系统所在的相同 VPC 中。
-
与至少一个文件系统挂载目标位于同一可用区中。
注意
您无需指定包含文件系统挂载目标的子网。
-
-
-
对于
--in-transit-encryption,指定在 DataSync 在向文件系统或从文件系统传输数据时,您是否希望其使用传输层安全性协议(TLS)加密。注意
您必须将其设置为
TLS1_2,才能在您的 Amazon EFS 位置配置接入点、IAM 角色或两者。 -
(可选)对于
--access-point-arn,指定 DataSync 可用于挂载文件系统的接入点 ARN。有关更多信息,请参阅 访问受限文件系统。
-
(可选)对于
--file-system-access-role-arn,指定允许 DataSync 访问文件系统的 IAM 角色 ARN。有关创建该角色的信息,请参阅为文件系统访问创建 DataSync IAM 角色。
-
运行
create-location-efs命令。如果命令成功,您将收到一条响应,显示您创建位置的 ARN。例如:
{ "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0b3017fc4ba4a2d8d" }