2.1.2. 仮想MFAデバイスの有効化 (handson-cli-signin-user)¶
手順の目的¶
IAMユーザー"handson-cli-signin-user"のバーチャルMFAデバイスを有効にします。
設定値の指定¶
手順に必要な設定値を変数に格納をします。
1. IAMユーザー名¶
IAMユーザー名を指定します。
変数の設定:
IAM_USER_NAME='handson-cli-signin-user'
2. 仮想MFAデバイス名¶
仮想MFAデバイス名を指定します。
変数の設定:
VIRTUAL_MFA_DEVICE_NAME='handson-cli-signin-user-mfa'
3. 仮想MFAデバイスパス¶
仮想VIRTUAL_MFAデバイスパスを指定します。
変数の設定:
VIRTUAL_MFA_DEVICE_PATH='/'
4. MFAブートストラップ出力ファイル名¶
MFAブートストラップ出力ファイル用ディレクトリを指定します。
変数の設定:
DIR_VIRTUAL_MFA_DEVICE_OUTFILE="${HOME}/tmp-handson-cli"
MFAブートストラップ出力ファイル名を指定します。
変数の設定:
FILE_VIRTUAL_MFA_DEVICE_OUTFILE="${DIR_VIRTUAL_MFA_DEVICE_OUTFILE}/${VIRTUAL_MFA_DEVICE_NAME}.png" \ && echo ${FILE_VIRTUAL_MFA_DEVICE_OUTFILE}結果(例):
/home/cloudshell-user/tmp-handson-cli/handson-cli-signin-user-mfa.png
設定値の確認¶
各変数に正しい設定値が格納されていることを確認します。
変数の確認:
cat << END # 1. IAM_USER_NAME:"handson-cli-signin-user" IAM_USER_NAME="${IAM_USER_NAME}" # 2. VIRTUAL_MFA_DEVICE_NAME:"handson-cli-signin-user-mfa" VIRTUAL_MFA_DEVICE_NAME="${VIRTUAL_MFA_DEVICE_NAME}" # 3. VIRTUAL_MFA_DEVICE_PATH:"/" VIRTUAL_MFA_DEVICE_PATH="${VIRTUAL_MFA_DEVICE_PATH}" # 4. FILE_VIRTUAL_MFA_DEVICE_OUTFILE:"${HOME}/tmp-handson-cli/handson-cli-signin-user-mfa.png" FILE_VIRTUAL_MFA_DEVICE_OUTFILE="${FILE_VIRTUAL_MFA_DEVICE_OUTFILE}" END
各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。
処理の実行¶
AWSアカウントIDを取得します。
コマンド:
aws_account_id=$( \ aws sts get-caller-identity \ --query 'Account' \ --output text \ ) \ && echo ${aws_account_id}結果(例):
XXXXXXXXXXXX
仮想MFAデバイスのシリアル番号を取得します。
コマンド:
mfa_device_serial_number=$( \ aws iam list-virtual-mfa-devices \ --query "VirtualMFADevices[?SerialNumber == \`arn:aws:iam::${aws_account_id}:mfa${VIRTUAL_MFA_DEVICE_PATH}${VIRTUAL_MFA_DEVICE_NAME}\`].SerialNumber" \ --output text \ ) \ && echo ${mfa_device_serial_number}結果(例)
arn:aws:iam::XXXXXXXXXXXX:mfa/handson-cli-signin-user-mfa
QRコードの取得¶
QRコードをCloudShell環境からダウンロードします。
注釈
ファイルのダウンロードは、CloudShellコンソール( https://ap-northeast-1.console.aws.amazon.com/cloudshell/home?region=ap-northeast-1 )から行います。
(ファイルのダウンロードは、コンソールツールバーのCloudShellでは実行できません。)
CloudShellの"アクション"メニューをクリックします。
"ファイル"メニューの"ファイルのダウンロード"をクリックします。
"ファイルのダウンロード"ダイアログが表示されます。
"個別のファイルパス"欄に"/home/cloudshell-user/tmp-handson-cli/handson-cli-signin-user-mfa.png"を入力します。
"ダウンロード"ボタンをクリックします
MFAソフトウェアへの登録¶
ダウンロードしたQRコードを画像ビューワーソフトなどで表示し、MFAソフトウェアに登録します。
注釈
QRコード登録方法については、MFAソフトウェアのマニュアルをご確認ください。
MFAソフトウェアから認証コードの取得¶
MFAソフトウェアに表示された6桁の数字2回分を変数に格納します。
注釈
1回目と2回目の数字は、必ずMFAソフトウェア上で連続して表示されたものである必要があります。
MFAソフトウェアに表示された認証コード(1回目)を変数に格納します。
変数の設定:
MFA_AUTH_CODE1='<連続した認証コードの1回目>'
MFAソフトウェアに表示された認証コード(2回目)を変数に格納します。(1回目の直後に表示された認証コードである必要があります。)
変数の設定:
MFA_AUTH_CODE2='<連続した認証コードの2回目>'
仮想MFAデバイスの有効化¶
仮想MFAデバイスの有効化します。
変数の確認:
cat << END # IAM_USER_NAME:"handson-cli-signin-user" IAM_USER_NAME="${IAM_USER_NAME}" # mfa_device_serial_number:"arn:aws:iam::XXXXXXXXXXXX:mfa/handson-cli-signin-user-mfa" mfa_device_serial_number="${mfa_device_serial_number}" # MFA_AUTH_CODE1:"<連続した認証コードの1回目>" MFA_AUTH_CODE1="${MFA_AUTH_CODE1}" # MFA_AUTH_CODE2:"<連続した認証コードの2回目>" MFA_AUTH_CODE2="${MFA_AUTH_CODE2}" ENDコマンド:
aws iam enable-mfa-device \ --user-name ${IAM_USER_NAME} \ --serial-number ${mfa_device_serial_number} \ --authentication-code1 ${MFA_AUTH_CODE1} \ --authentication-code2 ${MFA_AUTH_CODE2}結果(例):
(出力なし)
完了確認¶
「IAMユーザー"handson-cli-signin-user"のバーチャルMFAデバイスが有効になっている。」ことを確認します。
コマンド:
aws iam list-virtual-mfa-devices \ --query "VirtualMFADevices[?SerialNumber == \`${mfa_device_serial_number}\`].User.UserName" \ --output text結果(例):
handson-cli-signin-user
手順の完了¶
(参考) マネジメントコンソールの確認¶
IAMダッシュボード( https://console.aws.amazon.com/iam/home )にアクセスします。
左ペインの"ユーザー"をクリックします。
ユーザー一覧(画面)
検索欄にユーザー名"handson-cli-signin-user"を入力します。
ユーザー名"handson-cli-signin-user"(リンク)をクリックします。
ユーザー概要(画面)
"認証情報"(タブ)をクリックします。
ユーザー概要/認証情報(タブ)
"MFA デバイスの割り当て"に"arn:aws:iam::XXXXXXXXXXXX:mfa/handson-cli-signin-user-mfa(仮想)"が表示されていることを確認します。