2017-02-14 55 views
0

我有javascript客戶端執行認證與提供者(Facebook,谷歌,Twitter等)的認證登錄。我可以看到它已成功獲取憑證:AWS認知同步管理器錯誤同步到雲

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同步經理合作,將多個用戶的信息存儲到雲:

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異常: 用戶: 阿爾恩:AWS:STS :: XXXXXXXXXXXX:assumed-角色/角色名稱/網絡身份 未被授權執行:資源上的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

有人能幫助我,好嗎?

回答

0

它已經解決了。我錯了替換我的IAM角色參數。一切都是對的,只有我的錯誤腳本。

謝謝