You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS S3 Node.js SDK调用copyObject时出现Access Denied错误

S3同桶复制对象触发Access Denied,配置全权限策略仍未解决

问题详情

在同一S3存储桶内复制已有对象到新路径时出现Access Denied错误,但可正常列出桶内所有对象、创建新对象。

相关代码

//configuring parameters
const AWS = require("aws-sdk");

AWS.config.update({
  accessKeyId: //iam user's access key,
  secretAccessKey: //iam user's secret key,
});

var s3 = new AWS.S3();
var params = {
  Bucket: `mybucket`,
  CopySource: `filepath`,
  Key: `filenewpath`,
};

const result = await s3.copyObject(params).promise();

已尝试操作

开放存储桶全访问权限,配置了以下存储桶策略,但问题未解决:

{
    "Version": "2012-10-17",
    "Id": "Policy1682423703415",
    "Statement": [
        {
            "Sid": "Stmt1682423694567",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::832462061628:user/developer1"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::salesforcecvfiles"
        }
    ]
}

原因分析与解决方案

1. CopySource参数格式错误

CopySource需要完整的「存储桶名+对象路径」格式,正确写法为mybucket/source-object-key(不要以斜杠开头)。如果你的filepath仅为对象键、未包含桶名,会直接导致权限验证失败。

2. 存储桶策略资源范围不完整

当前策略的Resource仅指定了存储桶本身(arn:aws:s3:::salesforcecvfiles),但S3对象的资源ARN格式是arn:aws:s3:::salesforcecvfiles/*。复制操作需要同时对源对象和目标对象拥有权限,需修改策略的Resource字段:

"Resource": [
    "arn:aws:s3:::salesforcecvfiles",
    "arn:aws:s3:::salesforcecvfiles/*"
]

3. IAM用户权限缺失

除了存储桶策略,需确认IAM用户developer1的权限策略中包含s3:GetObject(读取源对象)和s3:PutObject(写入目标对象)权限,或直接授予s3:*权限覆盖对象层级。

4. 源对象存在额外权限限制

如果源对象设置了对象级ACL,即使桶策略开放权限,也可能导致无法读取源对象。可通过S3控制台查看源对象的权限设置,确保当前IAM用户拥有读取权限。

修正后的代码示例

//configuring parameters
const AWS = require("aws-sdk");

AWS.config.update({
  accessKeyId: "your-iam-access-key",
  secretAccessKey: "your-iam-secret-key",
});

var s3 = new AWS.S3();
var params = {
  Bucket: "mybucket",
  CopySource: "mybucket/source-file-path", // 修正为桶名+源对象完整路径
  Key: "new-file-path",
};

const result = await s3.copyObject(params).promise();

内容的提问来源于stack exchange,提问作者Mridul Kapil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:22:58