У меня есть клиент javascript для выполнения аутентичного входа aws cognito с провайдером (Facebook, Google, Twitter и т. Д.). Я вижу, что успешно получить Учетные данные от:AWS cognito sync manager error синхронизировать с облаком
var cognitoParam = {
'IdentityPoolId': 'ap-northeast-1:c8250ce6-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'RoleArn': 'arn:aws:iam::xxxxxxxxxxxx:role/roleName'
'Logins': {
'accounts.google.com': response.detail.id_token
}
};
var cognitoCred = new AWS.CognitoIdentityCredentials(cognitoParam);
Он возвращает все объекты учетных данных. И я также проверил на консоли AWS, идентификатор пула был указан/зарегистрирован в пуле объединенных идентификаторов как аутентифицированный вход с поставщиком.
После ПОЛУЧИТЬ верительных, я хочу работать с Cognito Sync Manager для хранения нескольких пользователей Информация для облака:
var syncManager = new AWS.CognitoSyncManager();
syncManager.openOrCreateDataset('profileSet', function(err, dataset) {
// dataset.get
// dataset.put
// dataset.remove
});
Все методы (GET, PUT, удалить) работают хорошо, но у меня есть вопрос, чтобы запустить метод синхронизации. В примере, после того, как поставил новый набор данных:
dataset.put("keyTes", "english", function(err,record){
if(!err){
dataset.synchronize({
onSuccess: function(dataset, newRecords) {
console.log(newRecords);
},
onFailure: function(err) {
console.log("Error while synchronizing data to the cloud: " + err);
}
});
}
});
Это показывает сообщение об ошибке:
Ошибка при синхронизации данных в облаке: AccessDeniedException: Пользователь: ARN: AWS: петл :: ХХХХХХХХХХХХ: assumed- role/roleName/web-identity не имеет права на выполнение: cognito-sync: ListRecords на ресурсе: arn: aws: cognito-sync: ap-northeast-1: xxxxxxxxxxxx: identitypool/ap-northeast-1: c8250ce6-xxxx -xxxx-xxxx-xxxxxxxxxxxx/identity/ap-northeast-1: 653aeca2-xxxx-xxxx-xxxx-xxxxxxxxxxxx/dataset/profileSet
В моих IAM ролей, я поставил на:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "default"
},
"ForAnyValue:StringLike": {
"cognito-identity.amazonaws.com:amr": "authenticated"
}
}
}
]
}
и политику:
{ "Версия": "2012-10-17", "Заявление": [ { "Действие": "Cognito-синхронизация: ", "Эффект": "Разрешить", "ресурс": "" } ] }
Я следую ссылку по ссылке:
Amazon Cognito Sync Manager for JavaScript
Любой человек может помочь мне, пожалуйста?