1. ホーム
  2. javascript

[解決済み] AWS : 無効な ID プールの設定です。このプールに割り当てられているIAMロールを確認してください。

2022-02-07 03:21:09

質問

ユーザープールとアイデンティティプールを1つずつ作成しました。

javascript sdkを使用しています。

私は、サインアップ、確認コードの送信、およびjavascript sdkを使用してユーザーを確認することに成功しました。

しかし、authenticateメソッドでユーザーにサインインしようとすると、以下のコードで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プールの"Unauthenticated role" "Unauthenticated role" と私が使用している資格情報のユーザーに管理者アクセス権を与えました。

私はawsの初心者です。何が足りないのか、どなたか教えていただけませんか?

どんなことでもご相談ください。

解決方法は?

Cognito Identity Pools (Federated Identities) で割り当てたロールが、IDプールと信頼関係を持っていることを確認してください。

IDプールID+動作していないロール名を取得する . これを行うには

  • Cognitoへ移動します。
  • Manage Federated Identitiesを選択します。
  • IDプールを選択します。
  • IDプールの編集をクリックします(右上)
  • IDプールのIDをメモしておく
  • 動作していないロールの名前をメモしてください(例:Cognito_blahUnauth_Role

IAMで、ロールの信頼関係を確認します。 StringEquals 条件の値が ID プールの ID と一致することを確認します。 .

これを行うには

  • IAMにアクセスする
  • ロール」をクリックします。
  • 先ほどメモした役割の名前をクリックします。
  • 信頼関係」をクリックします。
  • 右側の「Conditions」で、「StringEquals」の条件に、前回指摘したIDプールのIDが含まれていることを確認します。

信頼関係を編集して修正します。