解决跨区域传输问题 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

解决跨区域传输问题

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

解决跨区域转移权限问题

说明

尝试使用 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 指标监控传输绩效以识别瓶颈