IAM Identity Center のユーザー・グループの名前からIDを取得するCLIコマンド
AWSのマルチアカウント管理で役立つノウハウ、 [マルチアカウントTIPS] をお届けします。
今回は IAM Identity Center 周りの運用効率化です。
IAM Identity Center 周りの操作を CLI/SDKで行う際に、 何かとユーザーIDやグループIDが必要になってきます。 これらIDはランダムで長い文字列です。
これらIDをユーザーフレンドリーな情報(名前やメールアドレス)から取得する方法を紹介します。
前提
IAM Identity Center の独自IDストア上で試した結果を紹介します。
また、以下環境のCloudShell上で動作するbashスクリプトを記載していきます。
$ aws --version aws-cli/2.12.3 Python/3.11.4 Linux/4.14.255-314-253.539.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/off
ユーザー名からユーザーIDを取得する
ユーザーIDは get-user-id で取得できます。 --alternate-identifier
オプションに代わりの識別子(ユーザー名もしくはメールアドレス)を指定します。
以下、サンプルスクリプトです。
USER_NAME="kurameso.taro" ##### 以降編集不要 STORE_ID=$(aws sso-admin list-instances --query "Instances[0].IdentityStoreId" --output text --no-paginate) USER_ID=$(aws identitystore get-user-id --output text \ --identity-store-id "${STORE_ID}" \ --alternate-identifier "{\"UniqueAttribute\":{\"AttributePath\":\"userName\",\"AttributeValue\":\"${USER_NAME}\"}}" \ --query "UserId") echo "user_name(${USER_NAME}) ID: ${USER_ID}" # 出力サンプル: user_name(kurameso.taro) ID: f123456-80f1-70c1-b66c-example
ユーザーのメールアドレスからユーザーIDを取得する
同じく get-user-id で取得します。
以下、サンプルスクリプトです。
USER_EMAIL="kawahara.masahiro@classmethod.jp" ##### 以降編集不要 STORE_ID=$(aws sso-admin list-instances --query "Instances[0].IdentityStoreId" --output text --no-paginate) USER_ID=$(aws identitystore get-user-id --output text \ --identity-store-id "${STORE_ID}" \ --alternate-identifier "{\"UniqueAttribute\":{\"AttributePath\":\"emails.value\",\"AttributeValue\":\"${USER_EMAIL}\"}}" \ --query "UserId") echo "e_mail(${USER_EMAIL}) ID: ${USER_ID}" # 出力サンプル: e_mail(kurameso.taro@example.com) ID: f123456-80f1-70c1-b66c-example
グループ名からグループIDを取得する
グループIDは get-group-id で取得できます。 --alternate-identifier
オプションに代わりの識別子(グループ表示名)を指定します。
以下、サンプルスクリプトです。
GROUP_NAME="EXAMPLE_GROUP" ##### 以降編集不要 STORE_ID=$(aws sso-admin list-instances --query "Instances[0].IdentityStoreId" --output text --no-paginate) GROUP_ID=$(aws identitystore get-group-id --output text \ --identity-store-id "${STORE_ID}" \ --alternate-identifier "{\"UniqueAttribute\":{\"AttributePath\":\"displayName\",\"AttributeValue\":\"${GROUP_NAME}\"}}" \ --query "GroupId") echo "group_name(${GROUP_NAME}) ID: ${GROUP_ID}" # group_name(EXAMPLE_GROUP) ID: 27example-5081-70a5-63f9-a8fe93c81ac9
おわりに
以上、IAM Identity Center のCLI運用でチョット役に立つTIPSでした。