AWS CLIでMFAを使う
MFA設定後、AWS CLIからMFAを使うためには一時的なクレデンシャルを発行する必要があります。
前提
IAMポリシーにこんな感じでConditionを設定するとMFAが有効になっていない時の設定を行うことができます。
ここで例えばEffectをDenyに、Actionをiam:DeleteUserとすると、MFA認証なしではDeleteUserができなくなります。
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": "false"
}
}
MFAを設定しておけば、AWSマネジメントコンソールにログインしようとするとMFAのコード入力画面が勝手に出てきますが、AWS CLIの場合は出てきません。
本題
どうするのかというと次のコマンドを実行し、一時的なクレデンシャルを発行します。
aws sts get-session-token --serial-number (登録MFAのARN 例:arn:aws:iam::500000000:mfa/kter) --token-code (MFAコード)
環境変数にクレデンシャルを突っ込むワンライナーはこちら。
eval `aws sts get-session-token --serial-number (登録MFAのARN) --token-code (MFAコード) | awk ' $1 == "\"AccessKeyId\":" { gsub(/\"/,""); gsub(/,/,""); print "export AWS_ACCESS_KEY_ID="$2 } $1 == "\"SecretAccessKey\":" { gsub(/\"/,""); gsub(/,/,""); print "export AWS_SECRET_ACCESS_KEY="$2 } $1 == "\"SessionToken\":" { gsub(/\"/,""); gsub(/,/,""); print "export AWS_SESSION_TOKEN="$2 } '`
参考にさせていただいたページ
Author And Source
この問題について(AWS CLIでMFAを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/kter/items/9663457d4d27a3941655著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .