red*_* 87 11 javascript amazon-s3 amazon-web-services serverless
我有一个无服务器服务,在 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: '*'
Run Code Online (Sandbox Code Playgroud)
该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);
}
})
Run Code Online (Sandbox Code Playgroud)
由于某种原因,当我尝试将不存在的存储桶中的文件设为 HEAD 时,出现 403 错误。研究问题后,我发现我应该将权限添加s3:ListBucket到无服务器权限列表中,以允许我所做的 headObject 方法。这似乎没有任何效果,因为当我尝试将对象放入桶中时,仍然收到 403 错误。
该存储桶不是公开的,当我尝试使用该putObject方法将文件上传到存储桶时,它工作正常。此外,当文件存在于存储桶中时,headObject 方法可以正常处理 403。
当存储桶中不存在文件时,为什么我会收到 403 而不是 404?
谢谢
jel*_*csc 16
尝试从
iamRoleStatements:
- Effect: Allow
Action:
- s3:PutObject
- s3:GetObject
- s3:ListBucket
Resource: "arn:aws:s3:::${self:custom.${self:provider.stage}.tableauBookmarksBucket}/*"
Run Code Online (Sandbox Code Playgroud)
到
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}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23420 次 |
| 最近记录: |