Amazon web services AWS Lambda-拒绝访问错误-GetObject
我是AWS Lambda的新手。我正在尝试从中学习教程。当用户将jpg上传到名为greetingsproject的S3 bucket时,会触发lambda函数 错误:9a62ff86-3e24-491d-852e-DED2C2CF5D94Amazon web services AWS Lambda-拒绝访问错误-GetObject,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,我是AWS Lambda的新手。我正在尝试从中学习教程。当用户将jpg上传到名为greetingsproject的S3 bucket时,会触发lambda函数 错误:9a62ff86-3e24-491d-852e-DED2C2CF5D94 信息:获取对象时出错=拒绝访问:拒绝访问 我在以下代码段中遇到拒绝访问错误: try { console.log("srcBucket=" + srcBucket); console.log("sr
信息:获取对象时出错=拒绝访问:拒绝访问 我在以下代码段中遇到拒绝访问错误:
try {
console.log("srcBucket=" + srcBucket);
console.log("srcKey=" + srcKey);
const params = {
Bucket: srcBucket,
Key: srcKey
};
var origimage = await s3.getObject(params).promise();
} catch (error) {
console.log("error while getting object = " + error);
return;
}
我的角色政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"logs:CreateLogGroup",
"logs:CreateLogStream"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::greetingsproject"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::greetingsproject",
"arn:aws:s3:::greetingsproject/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::greetingsproject",
"arn:aws:s3:::greetingsproject/*"
]
}
]
}
不确定我需要向策略添加哪些其他权限。Marcin关于Lambda执行角色的评论使我走上了正确的道路。 我之前遵循了以下步骤:
不确定,如果AWS是这样工作的,或者我遗漏了什么。lambda函数和s3 bucket是否在同一个AWS帐户中?“角色策略”-哪个角色?Lambda执行角色?您已将greetingsProjectPolicy附加到greetingsProjectRole。您可以检查角色中的受信任实体吗?对于lambda,应该是lambda.amazonaws.com。我认为您让Lambda创建执行角色而不是选择您的角色(或者您的角色没有Lambda.amazonaws.com是真实的实体)greetingsProjectRole的受信任实体为Lambda.amazonaws.com。但是(如上所述),当我分配greetingsProject角色时,AWS创建了greetingsProject-role-zhcbt61o并将其设置为默认值。但是,我可以单击“编辑”按钮并将其更改为我的原始角色(greetingsProjectRole),并且不再出现拒绝访问错误。