amazon-web-services - ListObjectV2 在 AWS Lambda 中获取拒绝访问错误
问题描述
我不确定我是否获得了正确的权限,但我试图listObjectsV2
在我的 lambda 函数中使用,但我得到了access denied error
. 我正在使用无服务器。
这是我的 iAMRoleStatement
iamRoleStatements:
- Effect: "Allow"
Action:
- s3:GetObject
- s3:ListBucket
Resource:
- "arn:aws:s3:::${self:custom.bucket1}/*"
- "arn:aws:s3:::${self:custom.bucket2}/*"
它给了我这样的回应:
{
"errorMessage": "Access Denied",
"errorType": "AccessDenied",
"stackTrace": [
"Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/s3.js:577:35)",
"Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20)",
"Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)",
"Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
"Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
"AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
"/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
"Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
"Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
"Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:115:18)"
]
}
这是功能
const AWS = require('aws-sdk')
const apiVersion = '2006-03-01'
module.exports.index = async (event, context) => {
const s3 = new AWS.S3({ apiVersion })
const { path: { bucket_name } } = event
const params = {
Bucket: 'ml-chips-result'
}
return new Promise((resolve, reject) => {
s3.listObjectsV2(params, (err, data) => {
if (err) reject(err)
else resolve(data)
})
})
.then(data => {
return {
data,
event
}
})
}
根据我在文档中找到的示例,正确的权限是 ListBuckets。但这似乎不起作用。
解决方案
尝试添加ListBuckets
访问存储桶根目录的权限:
Resource:
- "arn:aws:s3:::${self:custom.bucket1}"
- "arn:aws:s3:::${self:custom.bucket1}/*"
- "arn:aws:s3:::${self:custom.bucket2}"
- "arn:aws:s3:::${self:custom.bucket2}/*"
推荐阅读
- python - 如何“pip install”一个只忽略一些特定依赖项的包?
- c# - 如何在每 10 条记录后将新行插入 JSON 值?
- python - 为什么在建立 mysql 到 python 连接时出现错误?
- javascript - 如何开玩笑地模拟@ViewChild MatTabGroup?
- python - 如何将字符串序列化为列表?
- c# - 将字符数组列表转换为字符串列表
- node.js - 找不到与 @storybook/react-native@^5.0.6 匹配的版本
- angular - 错误为无法读取属性“订阅”。在单元测试时以 7 角激活路线
- dart - 在颤振中访问设备短信
- javascript - 如何在 gatsby 中对用户进行身份验证