15
11

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 5 years have passed since last update.

AWS CLIでMFAを使う

Last updated at Posted at 2018-07-24

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 } '`

参考にさせていただいたページ

15
11
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
15
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?