我正在尝试创建一个 AWS Lambda 函数,该函数处理上传到第一个存储桶的文件,然后将其保存到第二个存储桶,然后删除输入文件。
问题是,当我尝试删除文件时,我得到了
{
"message": "Access Denied",
"code": "AccessDenied",
"time": "2015-02-09T22:08:45.926Z",
"statusCode": 403,
"retryable": false,
"retryDelay": 30
}
尝试删除文件的代码片段是
s3.deleteObject({
Bucket: inputBucket,
Key: inputKey
}, function(a, b) {
if (a) {
console.error("Error on delete");
console.error(a);
} else {
console.log("Deleted successfully");
}
});
lambda 无法删除文件(S3 对象)的可能原因可能是 Lambda 的执行角色。
解决此问题的步骤
- 导航到 AWS 管理控制台中的 IAM
- 查找 lambda 使用(或创建)的 IAM 角色(如果是默认值,则为 lambda_exec_role )
- 转到附加角色策略 -> 自定义策略并添加以下 IAM 策略文档
{
"Statement": [
{
"Sid": "Stmt1423535846414",
"Action": [
"s3:DeleteObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
}
]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)