CognitoのユーザープールにCSVを使ってユーザーを追加する
コンニチハ、千葉です。
Cognitoのユーザープールにユーザーを追加するときに、手動で1個1個追加するのは大変なので、CSVを使って一括登録を試してみました。
やってみた
まず、初めにユーザープール用のファイル(ヘッダが書かれているもの)をダウンロードします。「ユーザーをインポート」をクリックします。
「CSVヘッダーのダウンロード」からファイルをダウンロードします。
ファイルの中身はヘッダです。このファイルの2行目からユーザー情報を追記し、アプロードします。
$ cat headers.csv name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled,cognito:username
今回はメールアドレスだけあればokなので、以下のようにファイルを作成しました。エクセルで作って、CSVで出力します。 必要最低限の箇所だけ入力します。
- email:ユーザーのメールアドレス
- email_verified:メールアドレスは検証済みのためtrue
- phone_number_verified:電話番号は今回は利用しないのでfalse
- cognito:mfa_enabled:MFAは今回利用しないのでfalse
- cognito:username:ユーザーのメールアドレス
cat headers.csv name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled,cognito:username ,,,,,,,,,xxx@xxx.jp,TRUE,,,,,,FALSE,,,FALSE,xxx@xxx.jp
作成したCSVを指定してジョブを作成しインポートします。
ジョブ名、IAM、CSVファイルを指定してジョブを作成します。
インポートが成功し、ユーザーが登録されました。
インポートのログは、CloudWatch Logsで確認できます。何か エラー になった場合はこちらを確認しましょう。
最後に、ログイン画面からユーザーのパスワード変更を行います。実際の運用ではユーザーに、パスワードリセットしてという通知をし、ユーザーにリセット作業を実施してもらいましょう。
注意事項
インポート後のユーザーステータスは FORCE_CHANGE_PASSWORD
です。ユーザーがパスワードリセットをして初めて利用できます。CSVでのパスワードインポートはセキュリティ上サポートされていません。
基本的に、CSVでインポートしたユーザーはパスワードリセットをした後にログインできるようになります。また、Cognitoから何か通知されるわけではありません。そのため、CSVインポートする場合は以下の運用が必要になります。
- CSVでユーザーをインポート
- インポートしたユーザーに、ログインURL、ログインID、パスワードリセット手順を伝える
- ユーザーがパスワードリセット完了しているかステータスで確認
ユーザーのステータスの種類は以下です。
- FORCE_CHANGE_PASSWORD:パスワードのリセットが完了していない
- CONFIRMED:パスワードが変更されて利用可能な状態
さいごに
CognitoユーザープールへCSVを使ってユーザーを作成してみました。簡単にインポートできますね。他にも色々機能があるので触っていきます。