标识池未被授予我指定的权限



我设置了一个aws身份池,并附加了以下策略:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "iam:*",
"Resource": "*"
}
]
}

然而,当我尝试调用"getuser"方法时,我会得到以下错误:

AccessDenied: User: {/*the identitypool*/} is not authorized to perform: iam:GetUser on resource: user foo

这是代码:

var AWS = require('aws-sdk');
AWS.config.update({ region: 'us-west-2' });
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'my user pool id' });
var iam = new AWS.IAM({ apiVersion: '2010-05-08' });
var params = {
UserName: "foo"
};
iam.getUser(params, function (err, data) {
if (err && err.code === 'NoSuchEntity') {
console.log("no such entity");
} else {
console.log("err, data", err, data);
}

我错过了什么?我是AWS的新手,所以我们非常感谢您的帮助。提前感谢!

看起来您正在使用增强流。您必须在身份池中启用基本身份验证流。我真的不确定代码(不是JS的人(,但如果你使用的是Unath角色,这就是错误背后的原因。

"为了获得额外的安全保护,Amazon Cognito对GetCredentialForIdentity提供的凭据应用范围缩小策略,以防止未经身份验证的用户访问大多数服务">

看看这里的医生:https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-政策

相关内容

  • 没有找到相关文章

最新更新