1
1

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.

AWS CLIでIAMユーザーのMFAを設定してみる

Last updated at Posted at 2022-10-16

AWSコンソールにログインせずIAMユーザーのMFAを設定しました。

前提

  • AWS CLIが使えるIAMユーザー(MFAは未設定)を作成済みであること

IAMユーザーのMFAを設定

設定前の状態

MFAデバイスの割り当てなし
スクリーンショット 2022-10-15 14.49.27.png

仮想MFAデバイスを作成

$ aws iam create-virtual-mfa-device \
    --virtual-mfa-device-name sample-user \
    --bootstrap-method QRCodePNG \
    --outfile $HOME/sample-user.png

{
    "VirtualMFADevice": {
        "SerialNumber": "arn:aws:iam::123456789012:mfa/sample-user"
    }
}
  • オプションは以下を指定しています。
    • --virtual-mfa-device-name:MFAデバイス名を指定する(今回はIAMユーザー名)
    • --bootstrap-method:仮想MFAを作るための方式(今回はQRCodePNG)
    • --outfile:ファイル出力先を指定する(今回はホームディレクトリ)

出力されたQRコードを開いて、2段階認証アプリで読み込み

sample-user.png

スクリーンショット 2022-10-16 16.10.14.png

MFAデバイスを有効化

$ aws iam enable-mfa-device \
    --user-name sample-user \
    --serial-number arn:aws:iam::123456789012:mfa/sample-user \
    --authentication-code1 123456 \
    --authentication-code2 789012
  • オプションは以下を指定しています。
    • --user-name:IAMユーザ名
    • --serial-number:仮想MFAのシリアルナンバー(仮想MFAデバイスを作成時に返却された値)
    • --authentication-code1:2段階認証アプリのコード1つ目
    • --authentication-code2:2段階認証アプリのコード2つ目

設定後の状態

MFAデバイスの割り当てあり
スクリーンショット 2022-10-16 16.32.16.png

AWS CLIでMFAを使ってみる

セッショントークンを取得

$ aws sts get-session-token \
    --serial-number arn:aws:iam::123456789012:mfa/sample-user \
    --token-code 123456

{
    "Credentials": {
        "AccessKeyId": "XXXXXXXXXX",
        "SecretAccessKey": "XXXXXXXXXX",
        "SessionToken": "XXXXXXXXXXXXXXXXXXXX",
        "Expiration": "2022-10-16T19:56:07+00:00"
    }
}
  • オプションは以下を指定しています。
    • --serial-number:仮想MFAのシリアルナンバー
    • --token-code:2段階認証アプリのコード

セッショントークンを設定

取得したセッショントークンを設定

$ export AWS_ACCESS_KEY_ID=XXXXXXXXXX
$ export AWS_SECRET_ACCESS_KEY=XXXXXXXXXX
$ export AWS_SESSION_TOKEN=XXXXXXXXXXXXXXXXXXXX

AWS CLI を使ってみる

(事前にS3の参照権限を付けています)

$ aws s3 ls

2022-10-02 22:41:43 XXXXXXXXXX
2021-11-20 16:28:40 XXXXXXXXXX

セッショントークンを破棄

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN

参考

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?