11
3

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.

#1.概要
自分自身が業務をするときに少しつまずいたので、
Windows10にて、AWS CLIからコマンドでMFAをして接続する方法についてまとめました。

ブラウザからはMFAをしてAWSにログインできるが、
AWS CLIからの接続方法が分からない人に読んでいただけると幸いです。

また、この記事が面白いと思った方は高評価、チャンネル登録をお願いします!
(*^^)v

参考URL
https://aws.amazon.com/jp/premiumsupport/knowledge-center/authenticate-mfa-cli/

#2.そもそもMFAとは
MFAとはMulti-factor authentication(多要素認証)の頭文字で、
以下の情報の中から2つ以上を必要とする認証のことです。

  • 知識情報(例:ユーザ名、パスワード)
  • 所持情報(例:スマホで確認できるコード)
  • 生体情報(例:指紋)

従来のユーザ名、パスワードだけの認証よりもセキュリティが向上します。

参考URL
https://moconavi.jp/blog/2021/06/5812/

#3.前提条件
前提条件を以下に記載します。

  • Windows10を使用していること
  • IAMユーザの作成が完了し、MFAをする設定が有効化されていること
  • スマホでMFAコードが確認できること
  • AWS CLIのバージョン2をPCにインストールしていること
  • AWS CLIにIAMユーザのアクセスキー、シークレットアクセスキーの設定が完了していること

#4.手順
本題となりますが、以下にAWS CLIでMFAをする方法について記載します。

###4.1. スマホにてMFAのコードを確認する
###4.2. AWS CLIにて以下のコマンドを実行する

aws sts get-session-token --serial-number arn:aws:iam::(AWSアカウントIDの数字12桁):mfa/(IAMユーザ名) --token-code (MFAのコード6桁)

※コマンドを打ち終わる前にMFAのコードが時間切れになった場合は、再度手順4.1を実行してください

###4.3.コマンド実行結果として、以下が返ってくることを確認する

{
    "Credentials": {
        "AccessKeyId": "(アクセスキーの情報)",
        "SecretAccessKey": "(シークレットアクセスキーの情報)",
        "SessionToken": "(セッショントークンの情報)",
        "Expiration": "(セッショントークンの有効期限)"
    }
}

###4.4.コマンド実行結果をメモ帳等にコピーする
###4.5.AWS CLIにて以下のコマンドを実行する

set AWS_ACCESS_KEY_ID = (手順4.3で確認したアクセスキーの情報)
set AWS_SECRET_ACCESS_KEY = (手順4.3で確認したシークレットアクセスキーの情報)
set AWS_SESSION_TOKEN = (手順4.3で確認したセッショントークンの情報)

以上でMFAが有効の場合でもAWS CLIからコマンドを使用することができるようになります。

また、AWS CLIを再起動すると接続できなくなりますが、
セッショントークンの有効期限内であれば再度手順4.5を実行すれば接続できます。

#5.補足手順
再起動のたび手順4.5を実行するのが手間な場合は手順4.5の代わりに以下の手順5.1~5.4を実行してください。
セッショントークンの有効期限内であれば、複数回再起動しても最初から接続できる状態となります。

※セッショントークンの有効期限が切れた場合は、以下のコマンドを実行し、AWS CLIを再起動し、手順4.1から実施してください

setx AWS_PROFILE default

###5.1.エクスプローラを開き、C:\Users\user.aws\credentialsをメモ帳等で開く

###5.2.末尾に以下を追記し、保存する

[(プロファイル名)]
aws_access_key_id = (手順3で確認したアクセスキーの情報)
aws_secret_access_key = (手順3で確認したシークレットアクセスキーの情報)
aws_session_token = (手順3で確認したセッショントークンの情報)

###5.3.AWS CLIにて、以下のコマンドを実行する

setx AWS_PROFILE (手順7で入力したプロファイル名)

###5.4.AWS CLIを再起動する

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?