0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IAM要素解析(10/24週)

Last updated at Posted at 2023-11-01

はじめに

10/24-10/27までの1週間は、JAWS-UG CLI専門支部よりIAM要素解析のイベントが開催されました。
(仕事の都合上、全ての枠には参加ができませんでしたが、)12:00-13:00枠なので、お昼ご飯を食べながら参加しました。ふり返りを兼ね、アウトプットとしてまとめます。

ハンズオン事前作業

IAMユーザを作成する必要があります。

aws iam create-user \
 --user-name XXXXXXXX

20231024 アクセスキー

アクセスキーは、IAMが持つ「認証」の機能です。

  • 1ユーザ当たり、2つのアクセスキーを作成できます。
  • アクセスキーIDとシークレットアクセスキーで構成されています。
  • アクセスキーIDは、アクセスキーに固有名を割り当てます。(IAMにより自動割り当て)AKIA~から始まる最大128文字の文字列です。
  • シークレットアクセスキーは、アクセスキーを作成したときにしか取得できません。
    「アクセスキーの状態」は変更が可能です。(ActiveもしくはInactive)
    ※Inactiveは一時的に無効・ローテーションする際に利用されることが多い。

ハンズオンの備忘録

※アクセスキーを保存するディレクトリ名を指定する(ハンズオン時)

ls -d ${HOME}/environment/conf-handson-cli-iam > /dev/null
2>&1 \
 || mkdir -p ${HOME}/environment/conf-handson-cli-iam

IAMアクセスキーを作成する(ハンズオン時に、上記で指定したディレクトリへ保存)

aws iam create-access-key \
 --user-name XXXXXXXX \
 > ${HOME}/environment/conf-handson-cli-iam/handson-cli-iamuser-token-0.json \
 && cat ${HOME}/environment/conf-handson-cli-iam/handsoncli-iam-user-token-0.json

アクセスキーの一覧を出力する

 --user-name XXXXXXXX

アクセスキーのIDを出力させる


iam_access_key_id=$( \
 aws iam list-access-keys \
 --user-name XXXXXXXX \
 --query 'AccessKeyMetadata[].AccessKeyId' \
 --output text \
) \
 && echo ${iam_access_key_id}

アクセスキーの情報を取得する

aws iam get-access-key-last-used \
 --access-key-id ${iam_access_key_id}

アクセスキーを削除する

aws iam delete-access-key \
 --user-name XXXXXXXX \
 --access-key-id ${iam_access_key_id}

20231026 ログインプロファイル

ログインプロファイルには、以下の3つの要素があります。
「パスワード文字列」「パスワードリセット要求」「作成日時」

  • パスワード文字列は変更◎ ※表示はできない
  • パスワードリセット要求は、「次回サインインの時にPW変更を強制」させます。
    password-reset-requiedもしくはno-password-reset-requied 
    【参考】CreateLoginProfile
  • 作成日時は変更できません

ハンズオンの備忘録

ログインプロファイルの作成

aws iam create-login-profile \
 --user-name XXXXXXXX \
  --password 'XXXXXXXX'

ログインプロファイルの情報を取得する

aws iam get-login-profile \
 --user-name XXXXXXXX

IAMユーザが、自分のパスワードを更新する

aws iam change-password \
 --old-password 'XXXXXXXX' \
 --new-password 'ZZZZZZZZ'

IAM管理者がIAMユーザのパスワードを更新する

aws iam update-login-profile \
 --user-name XXXXXXXX \
 --password 'ZZZZZZZZ'

ログインプロファイルの削除

aws iam delete-login-profile \
 --user-name XXXXXXXX

20231027 MFA

MFAデバイスの識別子は「シリアル番号」です。以下の3つの要素があります。

  • IAMユーザ名
  • TOTP秘密鍵
  • 有効化日時

このうち、「TOTP秘密鍵」は隠し属性で仮想MFAデバイスにおいては紐づけるときに生成されます。MFAデバイスとIAMのサービスオブジェクト間で「秘密鍵を共有する」役割を担います。

(※補足)IAMユーザ当たりのMFAでバスは最大で8つです

ハンズオンの備忘録

※MFAブートストラップ出力ファイルを保存するディレクトリ名を指定する(ハンズオン時に実施)

ls -d ${HOME}/environment/conf-handson-cli-iam > /dev/null
2>&1 \
 || mkdir -p ${HOME}/environment/conf-handson-cli-iam

仮想MFAデバイス(以降はデバイスと表記)の作成

aws iam create-virtual-mfa-device \
 --virtual-mfa-device-name XXXXXXXX \
 --bootstrap-method QRCodePNG \
 --outfile ${HOME}/environment/conf-handson-cli-iam/handsoncli-iam-mfa.png

デバイスの一覧取得

aws iam list-mfa-devices \
 --user-name 'XXXXXXXX'

デバイスの一覧取得

aws iam list-virtual-mfa-devices

※デバイスのシリアル番号取得

mfa_device_serial=$( \
 aws iam list-virtual-mfa-devices \
 --query "VirtualMFADevices[?SerialNumber ==
\`arn:aws:iam::${aws_account_id}:mfa/handson-cli-iammfa\`].SerialNumber" \
 --output text \
) \
 && echo ${mfa_device_serial}

※アカウントIDの取得

aws_account_id=$( \
 aws sts get-caller-identity \
 --query 'Account' \
 --output text \
) \
 && echo ${aws_account_id}

デバイスの有効化

aws iam enable-mfa-device \
 --user-name XXXXXXXX \
 --serial-number ${mfa_device_serial} \
 --authentication-code1 <連続した認証コードの1回目> \
 --authentication-code2 <連続した認証コードの2回目>

デバイスの再同期

aws iam resync-mfa-device \
 --user-name XXXXXXXX \
 --serial-number ${mfa_device_serial} \
 --authentication-code1 <連続した認証コードの1回目> \
 --authentication-code2 <連続した認証コードの2回目>

デバイスの無効化

aws iam deactivate-mfa-device \
 --user-name XXXXXXXX \
 --serial-number ${mfa_device_serial}

デバイスの削除

aws iam delete-virtual-mfa-device \
 --serial-number ${mfa_device_serial}

ハンズオン事後作業

IAMユーザを削除

aws iam delete-user \
 --user-name 'XXXXXXXX'

作成したハンズオンのディレクトリを削除

rm -R ${HOME}/environment/conf-handson-cli-iam 

最後に

テレワークだったので、お昼休みの時間を有意義に使うことができました。
しばらくの間、12:00-13:00枠で予定が組まれているので積極的に参加していきたいです。

最後のアンケートでも、参加された方からの自分の視点とは異なった意見が聞けてとても勉強になりました。実業務のエピソードや自分の知らない領域のお話が聞ける機会は貴重だな、と改めて感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?