Amazon web services 如何授予桶所有者访问Lambda的权限?
当我尝试在AWS Lambda函数中执行以下代码时,它被成功执行Amazon web services 如何授予桶所有者访问Lambda的权限?,amazon-web-services,amazon-s3,aws-lambda,aws-sdk-js,Amazon Web Services,Amazon S3,Aws Lambda,Aws Sdk Js,当我尝试在AWS Lambda函数中执行以下代码时,它被成功执行 s3.getBucketAnalyticsConfiguration(params, function(err, data) { if (err) { console.log(err, err.stack); } else { console.log(data); } }); 然而,当我尝试按如下方式获取bucket版本控制时,失败了。它没有打印错误/数据 s3.getBucketVersioning(par
s3.getBucketAnalyticsConfiguration(params, function(err, data) {
if (err) {
console.log(err, err.stack);
}
else {
console.log(data);
}
});
然而,当我尝试按如下方式获取bucket版本控制时,失败了。它没有打印错误/数据
s3.getBucketVersioning(params, function(err, data) {
if (err) {
console.log(err, err.stack);
}
else {
console.log(data);
}
});
我在aws javascript sdk文档中阅读了以下内容:
To retrieve the versioning state of a bucket, you must be the bucket owner.
我可以知道如何授予桶所有者访问Lambda或其执行角色的权限吗
注意:现有设置如下所示:
我怀疑这意味着Amazon S3存储桶必须属于与您的IAM凭据关联的AWS帐户。例如,我可以对我的帐户中的一个bucket运行版本控制命令,但如果您对我的bucket运行该命令(从您自己的AWS帐户),则该命令将不起作用。您正在引用的bucket是否与您正在使用的凭据属于同一个帐户?是的,bucket属于同一个帐户。这看起来确实很奇怪。你能临时创建一个新的bucket并在该bucket上试用吗?另外,仅供参考,如果您已经通过IAM角色(#2)授予Lambda函数权限,那么您不需要也通过Bucket策略(#3)授予它访问权限。如果我通过VS代码执行代码,getBucketVersioning会起作用。只有当我通过控制台测试Lambda时,它才会失败。VS代码和Lambda函数是否都使用相同的IAM凭据(例如相同的IAM角色)?