drf*_*nce 16 amazon-web-services amazon-javascript-sdk amazon-cognito
我正在使用AWS Javascript API并尝试获取指定的cognito id:
AWS.config.credentials.get(function(err) {
if (!err) {
console.log("Cognito Identity Id: " + AWS.config.credentials.identityId);
}
});
Run Code Online (Sandbox Code Playgroud)
为什么这会导致下面的消息出现400错误?
{"__type":"InvalidIdentityPoolConfigurationException","message":"Invalid identity pool configuration. Check assigned IAM roles for this pool."}
Run Code Online (Sandbox Code Playgroud)
我为经过身份验证和未经身份验证的用户配置了IAM角色.
{
"Version": "2012-10-17",
"Statement": [{
"Action": [
"mobileanalytics:PutEvents",
"cognito-sync:*"
],
"Effect": "Allow",
"Resource": [
"*"
]
}]
}
Run Code Online (Sandbox Code Playgroud)
kox*_*xon 23
经过一番挖掘后,我意识到您必须将RoleArn和AccountId添加到您的凭据中.
即使大多数文档都提到这个就足够了:
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:xxxxx-a87e-46ed-9519-xxxxxxx',
});
Run Code Online (Sandbox Code Playgroud)
这还不够.
我不得不这样做:
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:xxxxx-a87e-46ed-9519-xxxxx',
RoleArn: 'arn:aws:iam::xxxxx:role/Cognito_xxxxUsersUnauth_Role',
AccountId: 'xxxxxxxxx', // your AWS account ID
});
Run Code Online (Sandbox Code Playgroud)
您必须为您的身份池提及您的角色的ARN.
唯一提到它的医生就是这个.
错误的:
也许我错过了一些东西,但这肯定令人困惑.
检查分配给您的身份池、身份验证用户的角色的“信任关系”部分。确保您拥有定义对 Cognito 池的访问权限的策略。
获取需求策略声明的最简单方法是,
| 归档时间: |
|
| 查看次数: |
17692 次 |
| 最近记录: |