gpt4 book ai didi

javascript - S3 :HeadObject - returns 403 response

转载 作者:行者123 更新时间:2023-12-05 00:34:53 25 4
gpt4 key购买 nike

我在 serverless.yml 文件中有一个使用以下配置运行的无服务器服务:

service: tableau-export-rest

custom:
dev:
tableauBookmarksBucket: tmt-${self:provider.stage}-tableau-bookmarks
qa:
tableauBookmarksBucket: tmt-${self:provider.stage}-tableau-bookmarks
prod:
tableauBookmarksBucket: tmt-${self:provider.stage}-tableau-bookmarks

provider:
name: aws
runtime: nodejs12.x
region: eu-west-1
stage: ${opt:stage, 'dev'}
timeout: 900
memorySize: 3008
environment:
TABLEAU_BOOKMARKS_BUCKET: ${self:custom.${self:provider.stage}.tableauBookmarksBucket}
iamRoleStatements:
- Effect: Allow
Action:
- s3:PutObject
- s3:GetObject
- s3:ListBucket
Resource: "arn:aws:s3:::${self:custom.${self:provider.stage}.tableauBookmarksBucket}/*"
- Effect: Allow
Action:
- lambda:InvokeFunction
Resource: "arn:aws:lambda:*"

functions:
saveBookmark:
handler: index.saveBookmark
timeout: 30
events:
- http:
path: /save-bookmark
method: post
cors:
origin: '*'
saveBookmark函数看起来像这样:
  const params = {
Bucket: process.env.TABLEAU_BOOKMARKS_BUCKET,
Key: 'ABC123'
}

s3.headObject(params, (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
}
})
出于某种原因,我在尝试 HEAD 存储桶中不存在的文件时收到 403 错误。在查看问题后,我发现我应该添加权限 s3:ListBucket到无服务器权限列表以允许我所做的 headObject 方法。这似乎没有任何影响,因为我在尝试引导桶中的对象时仍然得到 403。
存储桶不公开,当我尝试使用 putObject将文件上传到存储桶中的方法可以正常工作。此外,当文件存在于存储桶中时,headObject 方法与 403 一起工作得很好。
当存储桶中不存在文件时,为什么我会得到 403 而不是 404?
谢谢

最佳答案

尝试从

iamRoleStatements:
- Effect: Allow
Action:
- s3:PutObject
- s3:GetObject
- s3:ListBucket
Resource: "arn:aws:s3:::${self:custom.${self:provider.stage}.tableauBookmarksBucket}/*"
iamRoleStatements:
- Effect: Allow
Action:
- s3:PutObject
- s3:GetObject
Resource: "arn:aws:s3:::${self:custom.${self:provider.stage}.tableauBookmarksBucket}/*"
- Effect: Allow
Action: s3:ListBucket
Resource: "arn:aws:s3:::${self:custom.${self:provider.stage}.tableauBookmarksBucket}"

关于javascript - S3 :HeadObject - returns 403 response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63155434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com