在生产中的 S3 存储桶中上传时出现访问被拒绝 403 错误(本地工作)

问题描述 投票:0回答:1

我在将文件上传到我的

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
均已正确获取。

amazon-web-services amazon-s3 file-upload amazon-iam http-status-code-403
1个回答
0
投票

这非常重要,对于陷入同样情况的未来开发人员很有用。

由于我使用的是

ECS Fargate
,所以我必须为
s3 permissions
添加
ecsTaskExecutionRole

此角色是您在创建任务定义时将使用的角色。

"Task execution role"
准确地说。

转到 IAM > 角色 > 选择

"ecsTaskExecutionRole"
(如果还没有,请创建一个)> 权限策略 > 添加所需的 S3 权限(我添加了
AmazonS3FullAccess
)。

而且成功了!

© www.soinside.com 2019 - 2024. All rights reserved.