Amazon Cognito のアイデンティティとアクセスのトラブルシューティング
以下の情報は、Amazon Cognito と IAM の使用時に発生する可能性がある一般的な問題の診断と修正に役立ちます。
トピック
Amazon Cognito でアクションを実行する権限がない
「I am not authorized to perform an action in Amazon Bedrock」というエラーが表示された場合、そのアクションを実行できるようにポリシーを更新する必要があります。
次のエラー例は、mateojackson
IAM ユーザーがコンソールを使用して、ある
リソースに関する詳細情報を表示しようとしたことを想定して、その際に必要なmy-example-widget
cognito-identity:
アクセス許可を持っていない場合に発生するものです。GetWidget
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: cognito-identity:GetWidget
on resource:my-example-widget
この場合、cognito-identity:
アクションを使用して GetWidget
リソースへのアクセスを許可するように、my-example-widget
mateojackson
ユーザーのポリシーを更新する必要があります。
サポートが必要な場合は、AWS 管理者に問い合わせてください。サインイン認証情報を提供した担当者が管理者です。
iam:PassRole を実行する権限がありません
iam:PassRole
アクションを実行する権限がないというエラーが表示された場合は、Amazon Cognito にロールを渡すことを許可するようにポリシーを更新する必要があります。
一部の AWS のサービスでは、新しいサービスロールやサービスリンクロールを作成せずに、既存のロールをサービスに渡すことができます。そのためには、サービスにロールを渡す権限が必要です。
次の例では、marymajor
という名前の IAM ユーザーがコンソールを使用して Amazon Cognito でアクションを実行しようとした際に、エラーが発生しています。ただし、このアクションをサービスが実行するには、サービスロールから付与された権限が必要です。メアリーには、ロールをサービスに渡す許可がありません。
User: arn:aws:iam::123456789012:user/
marymajor
is not authorized to perform: iam:PassRole
この場合、Mary のポリシーを更新してメアリーに iam:PassRole
アクションの実行を許可する必要があります。
サポートが必要な場合は、AWS 管理者に問い合わせてください。サインイン認証情報を提供した担当者が管理者です。
管理者として Amazon Cognito へのアクセスを他のユーザーに許可したい
他のユーザーが Amazon Cognito にアクセスできるようにするには、アクセスが必要なユーザーまたはアプリケーションに許可を付与する必要があります。AWS IAM Identity Center を使用してユーザーとアプリケーションを管理する場合は、アクセスレベルを定義する許可セットをユーザーまたはグループに割り当てます。許可セットにより、自動的に IAM ポリシーが作成され、ユーザーまたはアプリケーションに関連付けられている IAM ロールに割り当てられます。詳細については、「AWS IAM Identity Center ユーザーガイド」の「許可セット」を参照してください。
IAM アイデンティティセンターを使用していない場合は、アクセスが必要なユーザーまたはアプリケーション用に IAM エンティティ (ユーザーまたはロール) を作成する必要があります。次に、Amazon Cognito で適切なアクセス許可を付与するポリシーをエンティティにアタッチする必要があります。許可が付与されたら、ユーザーまたはアプリケーション開発者に認証情報を提供します。AWS へのアクセスにはこの認証情報を使用します。IAM ユーザー、グループ、ポリシー、許可の作成の詳細については、「IAM ユーザーガイド」の「IAM アイデンティティ」と「IAM のポリシーと許可」を参照してください。
自分の Amazon Cognito リソースへのアクセスを、自分の AWS アカウント外のユーザーに許可したい
他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。
詳細については、以下を参照してください。
-
Amazon Cognito がこれらの機能をサポートしているかどうかについては、「Amazon Cognito で IAM が機能する仕組み」を参照してください。
-
所有している AWS アカウント 全体のリソースへのアクセス権を提供する方法については、IAM ユーザーガイドの所有している別の AWS アカウント アカウントへのアクセス権を IAM ユーザーに提供を参照してください。
-
サードパーティーの AWS アカウント にリソースへのアクセス権を提供する方法については、「IAM ユーザーガイド」の「サードパーティが所有する AWS アカウント へのアクセス権を付与する」を参照してください。
-
ID フェデレーションを介してアクセスを提供する方法については、IAM ユーザーガイドの外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可を参照してください。
-
クロスアカウントアクセスにおけるロールとリソースベースのポリシーの使用方法の違いについては、「IAM ユーザーガイド」の「IAM でのクロスアカウントのリソースへのアクセス」を参照してください。