我在将文件上传到我的
AccessDenied: Access Denied
时收到 s3 bucket
。但一切都很完美locally
。
这是我在
cloudwatch
中看到的错误
AccessDenied: Access Denied
api
at throwDefaultError (/app/node_modules/@aws-sdk/client-s3/node_modules/@smithy/smithy-client/dist-cjs/index.js:838:20)
api
at /app/node_modules/@aws-sdk/client-s3/node_modules/@smithy/smithy-client/dist-cjs/index.js:847:5
api
at de_CommandError (/app/node_modules/@aws-sdk/client-s3/dist-cjs/index.js:4748:14)
api
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
api
at async /app/node_modules/@aws-sdk/client-s3/node_modules/@smithy/middleware-serde/dist-cjs/index.js:35:20
api
at async /app/node_modules/@aws-sdk/middleware-signing/dist-cjs/index.js:226:18
api
at async /app/node_modules/@aws-sdk/client-s3/node_modules/@smithy/middleware-retry/dist-cjs/index.js:320:38
api
at async /app/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js:174:18
api
at async /app/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:98:20
api
at async /app/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:121:14 {
api
'$fault': 'client',
api
'$metadata': {
api
httpStatusCode: 403,
api
requestId: 'Y9W345675765774JW',
api
extendedRequestId: 'LW2UXs3455646hiFZs0b/mU0UNisiXAfsdff43fdsgHOUH8s51OJklhRNU=',
api
cfId: undefined,
api
attempts: 1,
api
totalRetryDelay: 0
api
},
我还检查了
permissions in IAM
并且我已经给出了s3 full access
。我认为一定存在一些问题,因为 env
没有正确获取,所以我记录了所有内容。所有 env
均已正确获取。
这非常重要,对于陷入同样情况的未来开发人员很有用。
由于我使用的是
ECS Fargate
,所以我必须为s3 permissions
添加ecsTaskExecutionRole
。
此角色是您在创建任务定义时将使用的角色。
"Task execution role"
准确地说。
转到 IAM > 角色 > 选择
"ecsTaskExecutionRole"
(如果还没有,请创建一个)> 权限策略 > 添加所需的 S3 权限(我添加了 AmazonS3FullAccess
)。
而且成功了!