2.1.1. 仮想MFAデバイスの作成 (handson-cli-signin-user-mfa)¶
手順の目的¶
仮想MFAデバイス"handson-cli-signin-user-mfa"を作成します。
設定値の指定¶
手順に必要な設定値を変数に格納をします。
1. 仮想MFAデバイスパス¶
仮想MFAデバイスパスを指定します。
変数の設定:
VIRTUAL_MFA_DEVICE_PATH='/'
2. 仮想MFAデバイス名¶
仮想MFAデバイス名を指定します。
変数の設定:
VIRTUAL_MFA_DEVICE_NAME='handson-cli-signin-user-mfa'
3. MFAブートストラップメソッド名¶
MFAブートストラップメソッド名を指定します。
変数の設定:
VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD='QRCodePNG'
4. MFAブートストラップ出力ファイル用ディレクトリ¶
MFAブートストラップ出力ファイル用ディレクトリを指定します。
変数の設定:
DIR_VIRTUAL_MFA_DEVICE_OUTFILE="${HOME}/tmp-handson-cli"
ディレクトリが存在することを確認し、存在しない場合は作成します。
コマンド:
ls -d ${DIR_VIRTUAL_MFA_DEVICE_OUTFILE} > /dev/null 2>&1 \ || mkdir -p ${DIR_VIRTUAL_MFA_DEVICE_OUTFILE}結果(例):
(出力なし)
5. MFAブートストラップ出力ファイル名¶
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. VIRTUAL_MFA_DEVICE_PATH:"/" VIRTUAL_MFA_DEVICE_PATH="${VIRTUAL_MFA_DEVICE_PATH}" # 2. VIRTUAL_MFA_DEVICE_NAME:"handson-cli-signin-user-mfa" VIRTUAL_MFA_DEVICE_NAME="${VIRTUAL_MFA_DEVICE_NAME}" # 3. VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD:"QRCodePNG" VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD="${VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD}" # 4. DIR_VIRTUAL_MFA_DEVICE_OUTFILE:"${HOME}/tmp-handson-cli" DIR_VIRTUAL_MFA_DEVICE_OUTFILE="${DIR_VIRTUAL_MFA_DEVICE_OUTFILE}" # 5. 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デバイスを作成します。
変数の確認:
cat << END # VIRTUAL_MFA_DEVICE_PATH:"/" VIRTUAL_MFA_DEVICE_PATH="${VIRTUAL_MFA_DEVICE_PATH}" # VIRTUAL_MFA_DEVICE_NAME:"handson-cli-signin-user-mfa" VIRTUAL_MFA_DEVICE_NAME="${VIRTUAL_MFA_DEVICE_NAME}" # VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD:"QRCodePNG" VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD="${VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD}" # 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 iam create-virtual-mfa-device \ --path ${VIRTUAL_MFA_DEVICE_PATH} \ --virtual-mfa-device-name ${VIRTUAL_MFA_DEVICE_NAME} \ --bootstrap-method ${VIRTUAL_MFA_DEVICE_BOOTSTRAP_METHOD} \ --outfile ${FILE_VIRTUAL_MFA_DEVICE_OUTFILE}結果(例):
{ "VirtualMFADevice": { "SerialNumber": "arn:aws:iam::XXXXXXXXXXXX:mfa/handson-cli-signin-user-mfa" } }
完了確認¶
「仮想MFAデバイス"handson-cli-signin-user-mfa"が存在する。」ことを確認します。
コマンド:
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結果(例):
arn:aws:iam::XXXXXXXXXXXX:mfa/handson-cli-signin-user-mfa
「MFAブートストラップ出力ファイル"${HOME}/tmp-handson-cli/handson-cli-signin-user-mfa.png"が存在する。」ことを確認します。
コマンド:
ls ${FILE_VIRTUAL_MFA_DEVICE_OUTFILE}結果(例):
/home/cloudshell-user/tmp-handson-cli/handson-cli-signin-user-mfa.png
手順の完了¶
(参考) マネジメントコンソールの確認¶
マネジメントコンソールでは、仮想MFAデバイスの登録はIAMユーザーへの紐付けと同時に行うため、本手順に対する確認手順はありません。