Amazon Cognito のインポートプロセスにおける一般的なエラーをトラブルシューティングするにはどうすればよいですか?
Amazon Cognito のインポートプロセスにおける一般的なエラーをトラブルシューティングしたいと考えています。
簡単な説明
Amazon Cognito のインポートプロセスに関連する一般的なエラーは次のとおりです。
ユーザー移行 AWS Lambda トリガーのインポートエラー:
- 「AccessDeniedException」
- 「UserCodeSyntaxError」
- 「ResourceNotFoundException」
- 「ImportModuleError」
CSV ファイルのインポートエラー:
- 「Unexpected headers」(予期しないヘッダー)
- 「Failed/skipped user」(失敗/スキップされたユーザー)
- 「Import job expired」(インポートジョブの有効期限が切れました)
- 「Invalid attribute value」(無効な属性値)
- 「CloudWatch Logs role missing permission」(CloudWatch Logs のロールに許可がありません)
解決方法
CSV ファイルまたは Lambda トリガーを使用して Amazon Cognito にインポートすると、エラーは Amazon CloudWatch Logs にログ記録されます。AWS アカウントでこれらのエラーを参照および検索します。
ユーザー移行 Lambda トリガーのインポートエラー
「AccessDeniedException」:
このエラーは、Amazon Cognito アクションを実行するための AWS Identity and Access Management (IAM) 許可が Lambda ロールに付与されていない場合にログ記録されます。例えば、AdminInitiateAuth です。「AccessDeniedException」エラーは次のように表示されます。
An error occurred (AccessDeniedException) when calling the AdminInitiateAuth operation: User: arn:aws:sts::ACCOUNT_ID:assumed-role/TestingMigration-role/TestingMigration is not authorized to perform: cognito-idp:AdminInitiateAuth on resource: arn:aws:cognito-idp:eu-central-1:ACCOUNT_ID:userpool/eu-central-1_YYYYOOOO because no identity-based policy allows the cognito-idp:AdminInitiateAuth action
「AccessDeniedException」エラーを解決するには、次を実行します。
- IAM コンソールを開きます。
- ナビゲーションペインで [Roles] (ロール) を選択し、Lambda 実行ロールを検索します。
- IAM ロールの [Permissions] (許可) タブを選択します。
- 許可ポリシーを展開して、ユーザーに関連付けられている許可を表示します。
- 次のパラメータがポリシーに含まれていることを確認してください。
cognito-idp:AdminInitiateAuth ([Actions] (アクション) リスト内)
[Effect] (効果) に [Allow] (許可)。 - ポリシーにこのパラメータが含まれていない場合は、ポリシーを更新してこれらを含めます。
-または-
パラメータに従う新しいポリシーを作成し、そのポリシーを IAM ロールにアタッチします。詳細については、「カスタマー管理ポリシーの編集 (コンソール)」を参照してください。
「UserCodeSyntaxError」:
このエラーは、Lambda コードにコードの問題が見つかった場合にログ記録されます。例えば、インデントの問題です。
「UserCodeSyntaxError」エラーは次のように表示されます。
[ERROR] Runtime.UserCodeSyntaxError: Syntax error in module 'lambda_function': unexpected indent
このエラーを解決するには、コード内の正しい構文の使用方法を確認してください。
「ResourceNotFoundException」:
このエラーは、Lambda コードで参照されているリソースが AWS アカウントまたは AWS リージョンで見つからない場合にログ記録されます。例えば、Amazon Cognito アプリクライアントです。
「ResourceNotFoundException」エラーは次のように表示されます。
[ERROR] ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the AdminInitiateAuth operation: User pool client 52rXXXXXXXXXXXXXXXXXXge does not exist.
このエラーを解決するには、問題のリソースが AWS アカウントおよびリージョンに存在することを確認します。その後、Lambda コードで、ID、名前、または Amazon リソースネーム (ARN) が正しく指定されていることを確認します。
「ImportModuleError」:
このエラーは、Lambda コードに存在しないモジュールをインポートまたは参照しようとしたときにログ記録されます。
「ImportModuleError」エラーは次のように表示されます。
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named lambda_function
このエラーを解決するには、コードでインポートしようとしているモジュールに入力ミスや存在しないモジュール参照が含まれていないことを確認します。
CSV ファイルのインポートエラー
「Unexpected headers」(予期しないヘッダー):
このエラーは、CSV ファイルに指定されたヘッダーがないか、または正しくフォーマットされていないという問題がある場合にログ記録されます。
「Unexpected headers」(予期しないヘッダー) エラーは次のように表示されます。
The header in the CSV file does not match the expected headers. Use the GetCSVHeader API to get the expected headers.
このエラーを解決するには、次を実行します。
次のコマンドを実行して、正しいヘッダーのリストを取得します。USER_POOL_ID は、ユーザーをインポートするユーザープールです。
aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"
Amazon Cognito コンソールを使用して CSV ファイルのヘッダーをダウンロードすることもできます。詳細については、「.csv ファイルヘッダーのダウンロード (コンソール)」を参照してください。
「Failed or skipped user」(失敗したユーザーまたはスキップされたユーザー)
このエラーは、重複ユーザー参照の問題がある場合や、CSV ファイルに必須フィールドがない場合にログ記録されます。例えば、email_verified または cognito:mfa_enabled です。
「Failed or skipped user」(失敗したユーザーまたはスキップされたユーザー) エラーは次のように表示されます。
Too many users have failed or been skipped during the import.
このエラーを解決するには、必ず CSV ファイルから重複ユーザーを削除し、必須属性が指定されていることを確認してください。詳細については、「ユーザーインポート .csv ファイルの作成」を参照してください。
「Import job expired」(インポートジョブの有効期限が切れました):
このエラーは、ジョブを作成したときにログ記録されます、ただし、24~48 時間以内にジョブを開始しないでください。
「Import job expired」(インポートジョブの有効期限が切れました) エラーは次のように表示されます。
The user import job has expired.
この問題を解決するには、次のコマンドを実行してユーザーインポートジョブを開始します。
aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Amazon Cognito コンソールを使用してジョブを開始することもできます。詳細については、「.csv ファイルからのユーザーのインポート (コンソール)」を参照してください。
注: アカウントごとに一度にアクティブにできるインポートジョブは 1 つだけです。
「Invalid attribute value」(無効な属性値):
このエラーは、CSV ファイルの属性に無効な値が指定されていることを示します。
「Invalid Attribute value」(無効な属性値) エラーは次のように表示されます。
The User Record contains an invalid value for [attribute].
この問題を解決するには、属性に指定されている値を確認します。電話番号の適切な形式など、属性値の詳細については、「ユーザープール属性」を参照してください。
「CloudWatch Logs role missing permission」(CloudWatch Logs のロールに許可がありません):
このエラーは、CSV インポートプロセスのために指定された CloudWatch Logs ロールに次のいずれかの問題があることを示しています。
- ロググループやストリームの作成などの許可がない。
- プリンシパルとの信頼関係ポリシーが無効である。
「CloudWatch Logs role missing permission」(CloudWatch Logs のロールに許可がありません) というエラーは次のように表示されます。
設定された CloudWatch Logs ロールに許可がないか、信頼ポリシーが無効です。
この問題を解決するには、CloudWatch アクションのために ID 許可が付与されていることを確認してください。また、cognito-idp.amazonaws.com が信頼関係ポリシーでサービスプリンシパルとして許可されていることを確認します。詳細については、「CloudWatch Logs IAM ロールの作成」を参照してください。
関連するコンテンツ
- 質問済み 1ヶ月前lg...
- 質問済み 1年前lg...
- 質問済み 9ヶ月前lg...
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前
- AWS公式更新しました 7ヶ月前