【AWS IAM Identity Center 小ネタ】APIで作成したユーザーにメールでOTP(ワンタイムパスワード)を送るようにする
AWS IAM Identity Center のユーザー作成を、API(AWS CLIなど)を活用して 効率化したいケースがあると思います。
ただデフォルトの設定では、APIから作成されたユーザーは パスワードが設定されていないので、サインインできません。
これを解消するにはコンソールの [設定] > [認証] > [標準認証] > [E メールの OTP を送信] を有効化する必要があります。
…伝えたいことは以上ですが、これだけでは物足りないので 実際にその設定を有効化してみます。また、ユーザー作成時の挙動も確かめてみました。
設定の有効化
IAM Identity Center コンソールの [設定 > 認証] ページに 「標準認証」 という項目があります。そこの [設定] を選択します。
[E メールの OTP を送信] にチェックを入れて [保存] しましょう。
設定は以上です。
試してみる
AWS CLIで新規ユーザーを作成します。 以下のようなコマンドを実行しました。
EMAIL="kurameso.taro@example.com" FAMILY_NAME="Kurameso" GIVEN_NAME="Taro" USER_NAME="${EMAIL}" DISPLAY_NAME="${FAMILY_NAME}_${GIVEN_NAME}" STORE_ID=$(aws sso-admin list-instances --query "Instances[0].IdentityStoreId" --output text) # CreateUser aws identitystore create-user \ --identity-store-id "${STORE_ID}" \ --user-name "${USER_NAME}" \ --display-name "${DISPLAY_NAME}" \ --name FamilyName="${FAMILY_NAME}",GivenName="${GIVEN_NAME}" \ --emails Value="${EMAIL}",Type=work,Primary=true
その後、IAM Identity Center のAWSアクセスポータルへ接続します。 新規指定したユーザー名を入力しましょう。
すると「追加の検証が必要です」画面が出てきます。
この時点で該当メールアドレス宛にOTP(ワンタイムパスワード)が届いているはず。表示されたOTPを入力しましょう。 ※ OTPの有効期限は10分です。期限切れの場合は [コードを含むEメールを再送信] をクリックしてください。
「パスワードを選択」画面に遷移します。 Eメールアドレスは正常に検証されました
とでてくればOKです。 新規パスワードを設定してもらいましょう。
無事サインインできました。
おわりに
以上、AWS IAM Identity Center のOTP(ワンタイムパスワード)設定でした。 CreateUser APIを使って、ユーザー作成を効率化したい際には、有効化しておきたい項目です。