目标:获取文件
- 来自账户 A 中 ca-central-1 中的 Bucket 1
- 到账户 B 中 us-east-1 中的存储桶 2
- 使用具有正确 S3 读写权限的 IAM 角色从第三台机器使用 AWS CLI(假设除非不太可能)
我得到了错误:
ClientError:调用CopyObject操作时出错(AccessDenied):VPC端点不支持跨地域请求
这打破了我关于 S3 工作原理的心智模型。我认为 S3 不在任何 VPC 后面,VPC 端点只是私有子网中机器的备用路由路径(互联网除外)。
但是,如果您使用 CLI 并要求将文件从一个 S3 存储桶传输到另一个存储桶,那么 VPC 为什么会发挥作用呢?
我假设既然您说“使用 IAM 角色从第三台机器使用 AWS CLI”,那么您的“第三台机器”(为什么是第三台?)是 VPC 内的 EC2 实例。
EC2 实例位于 VPC 内部。如果该 VPC 具有 S3 VPC 终端节点,则 EC2 实例将使用它,因为终端节点的使用基于 DNS。您发现 VPC 终端节点不支持跨区域复制。
选项: