ユーザープールとIDプールを1つ作成しました。
私はjavascript sdkを使用しました。
サインアップして確認コードを送信し、JavaScript SDKでユーザーを正常に確認することができます。
しかし、認証方法でユーザーにサインインしようとして、以下のコードでidTokenを渡して、「CognitoIdentityCredentials」で資格情報を取得しようとすると、
logins[cognitoEndpoint + "/" + userPoolId] = jwtToken;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: identityPoolId,
Logins: logins
});
エラーの下に私を与えています
Error: Invalid identity pool configuration. Check assigned IAM roles for this pool.
at Request.extractError (aws-sdk.js:104063)
at Request.callListeners (aws-sdk.js:106060)
at Request.emit (aws-sdk.js:106034)
at Request.emit (aws-sdk.js:105121)
at Request.transition (aws-sdk.js:104843)
at AcceptorStateMachine.runTo (aws-sdk.js:108480)
at aws-sdk.js:108492
at Request.<anonymous> (aws-sdk.js:104859)
at Request.<anonymous> (aws-sdk.js:105123)
at Request.callListeners (aws-sdk.js:106070)
IDプールの「認証されていないロール」と「認証されていないロール」へのアクセス権と、資格情報を使用しているユーザーへのアクセス権を管理者に与えました。
私はawsが初めてです。誰か私に何が欠けているのか教えてもらえますか?
任意の助けいただければ幸いです。
Cognito IDプール(フェデレーションID)で割り当てたロールにIDプールとの信頼関係があることを確認してください。
IDプールID +機能していないロールの名前を取得。これをする:
IAMで、役割の信頼関係を確認します。 StringEquals条件値がIDプールIDと一致することを確認。
これをする:
修正する信頼関係を編集します。
ここでアクセスしようとしているのは、「Cognito Federated Identity」認証情報です。これは、「Cognitoユーザープール」とは別のAWS製品です。これらの資格情報を取得するには、ユーザープールをフェデレーションIDプールに接続する必要があります。
おそらくこのリンクが役立ちます: http://docs.aws.Amazon.com/cognito/latest/developerguide/Amazon-cognito-integrating-user-pools-with-identity-pools.html
また、私は認証されていないアクセス許可から管理者アクセスを削除します、それはあなたの詳細を持つ誰もがあなたのAWSアカウントを制御できることを意味します。
IAM
でロールを作成してIDプロバイダーを選択する場合は、ユーザープールIDを選択しないでください。代わりにIDプールIDを選択する必要があります。