web-dev-qa-db-ja.com

AWS:無効なIDプール構成。このプールに割り当てられたIAMロールを確認する

ユーザープールと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が初めてです。誰か私に何が欠けているのか教えてもらえますか?

任意の助けいただければ幸いです。

25
Ankur Akvaliya

Cognito IDプール(フェデレーションID)で割り当てたロールにIDプールとの信頼関係があることを確認してください。

IDプールID +機能していないロールの名前を取得。これをする:

  • コグニートに行く
  • [フェデレーションIDの管理]を選択します
  • IDプールを選択します
  • (IDプールの編集)をクリックします(右上)
  • IDプールIDを書き留めます
  • 機能していない役割の名前を書き留めます(例:Cognito_blahUnauth_Role)

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

これをする:

  • IAMに移動
  • ロールをクリックします
  • 以前にメモした役割の名前をクリックします
  • 信頼関係をクリックします
  • 右側の[Conditions]で、以前にメモしたIDプールIDが含まれているStringEquals条件を確認します。

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

51
Alex Hague

ここでアクセスしようとしているのは、「Cognito Federated Identity」認証情報です。これは、「Cognitoユーザープール」とは別のAWS製品です。これらの資格情報を取得するには、ユーザープールをフェデレーションIDプールに接続する必要があります。

おそらくこのリンクが役立ちます: http://docs.aws.Amazon.com/cognito/latest/developerguide/Amazon-cognito-integrating-user-pools-with-identity-pools.html

また、私は認証されていないアクセス許可から管理者アクセスを削除します、それはあなたの詳細を持つ誰もがあなたのAWSアカウントを制御できることを意味します。

2
David Kelley

IAMでロールを作成してIDプロバイダーを選択する場合は、ユーザープールIDを選択しないでください。代わりにIDプールIDを選択する必要があります。

1
xwa130