【AWS IAM Identity Center 小ネタ】APIで作成したユーザーにメールでOTP(ワンタイムパスワード)を送るようにする

2023.01.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS IAM Identity Center のユーザー作成を、API(AWS CLIなど)を活用して 効率化したいケースがあると思います。

ただデフォルトの設定では、APIから作成されたユーザーは パスワードが設定されていないので、サインインできません。

img

これを解消するにはコンソールの [設定] > [認証] > [標準認証] > [E メールの OTP を送信] を有効化する必要があります。

…伝えたいことは以上ですが、これだけでは物足りないので 実際にその設定を有効化してみます。また、ユーザー作成時の挙動も確かめてみました。

設定の有効化

IAM Identity Center コンソールの [設定 > 認証] ページに 「標準認証」 という項目があります。そこの [設定] を選択します。

img

[E メールの OTP を送信] にチェックを入れて [保存] しましょう。

img

設定は以上です。

試してみる

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アクセスポータルへ接続します。 新規指定したユーザー名を入力しましょう。

img

すると「追加の検証が必要です」画面が出てきます。

img

この時点で該当メールアドレス宛にOTP(ワンタイムパスワード)が届いているはず。表示されたOTPを入力しましょう。 ※ OTPの有効期限は10分です。期限切れの場合は [コードを含むEメールを再送信] をクリックしてください。

img

「パスワードを選択」画面に遷移します。 Eメールアドレスは正常に検証されました とでてくればOKです。 新規パスワードを設定してもらいましょう。

img

無事サインインできました。

img

おわりに

以上、AWS IAM Identity Center のOTP(ワンタイムパスワード)設定でした。 CreateUser APIを使って、ユーザー作成を効率化したい際には、有効化しておきたい項目です。

参考