解决跨区域传输问题 - AWS Transfer Family

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

解决跨区域传输问题

本节介绍与跨界传输文件相关的问题的可能解决方案 AWS 区域。

解决跨区域转移权限问题

描述

尝试使用 Transfer Family 工作流程在不同区域的 Amazon S3 存储桶之间传输文件时,您会遇到以下错误:

{ "type": "StepErrored", "details": { "errorType": "BAD_REQUEST", "errorMessage": "Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied)", "stepType": "COPY", "stepName": "cross_region_copy" } }

原因

跨区域传输需要源存储桶和目标存储桶的特定的 IAM 权限。您的 Transfer Family 服务器或工作流程使用的 IAM 角色可能没有足够的权限访问其他区域的存储桶。

解决方案

要解决跨区域转移权限问题,请执行以下操作:

  1. 确保您的 IAM 角色同时拥有源存储桶和目标存储桶的权限:

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::source-bucket-name/*" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" } ] }
  2. 如果使用 KMS 加密,请为源 KMS 密钥和目标 KMS 密钥添加权限:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:source-region:account-id:key/source-key-id", "arn:aws:kms:destination-region:account-id:key/destination-key-id" ] }
  3. 确认两个区域的存储桶策略都允许从您的 Transfer Family 服务器的 IAM 角色进行访问

  4. 对于跨账户转账,请确保配置了正确的跨账户权限

解决跨区域传输性能问题

描述

跨区域传输比预期慢得多,或者在大型文件传输期间会超时。

原因

跨区域传输本质上会涉及更大的延迟,并且可能会受到网络条件、文件大小和服务限制的影响。大文件或大量的小文件可能会导致性能下降。

解决方案

要提高跨区域传输性能,请执行以下操作:

  • 对于大型文件,可以考虑使用 Amazon S3 Transfer Acceleration:

    aws s3 cp --source-region us-east-1 --region us-west-2 \ s3://source-bucket/large-file.zip s3://destination-bucket/large-file.zip \ --acl bucket-owner-full-control --s3-accelerate
  • 对于多个小文件,请在传输之前将它们一起批处理:

    • 使用压缩来合并多个文件

    • 使用 Amazon S3 批量操作进行大规模传输

  • 考虑使用具有适当超时设置的 Transfer Family SFTP 连接器进行大型传输

  • 对于重复传输,请考虑使用 Amazon S3 跨区域复制 (CRR) 而不是临时传输来复制数据

  • 使用 Amazon CloudWatch 指标监控传输绩效以识别瓶颈