AWS cognito同步管理器错误同步到云

时间:2017-02-14 03:25:59

标签: synchronization amazon-cognito

我有javascript客户端与提供商(Facebook,谷歌,Twitter等)执行aws cognito认证登录。我可以看到它获得Credential的成功:

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控制台,池ID已在联合身份池中列出/记录为经过身份验证的提供者登录。

获取凭据后,我希望使用Cognito Sync Manager将多个用户信息存储到云中:

var syncManager = new AWS.CognitoSyncManager();
syncManager.openOrCreateDataset('profileSet', function(err, dataset) {
   // dataset.get
   // dataset.put
   // dataset.remove
});

所有方法(get,put,remove)运行良好,但我遇到运行方法同步的问题。例如,在放入新数据集之后:

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:   用户:   阿尔恩:AWS:STS :: XXXXXXXXXXXX:假设角色/ ROLENAME /网络身份   无权执行:cognito-sync:资源上的ListRecords:   ARN:AWS:cognito同步:AP-东北-1:XXXXXXXXXXXX:identitypool / AP-东北-1:c8250ce6-XXXX-XXXX-XXXX-XXXXXXXXXXXX /同一性/ AP-东北-1:653aeca2-XXXX-XXXX-XXXX- XXXXXXXXXXXX /数据集/ 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”,   “声明”:[     {       “行动”:“认知同步:”,       “效果”:“允许”,       “资源”:“”     }   ] }

我遵循链接中的参考:

Amazon Cognito Sync Manager for JavaScript

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

它已经解决了。我更换了我的IAM角色参数时错了。一切都是对的,只有我的错误脚本。

谢谢