LoginSignup
0
0

More than 3 years have passed since last update.

AWS CLI 多要素認証を設定しなければならなくなったとき

Posted at

初めに

国のガイドラインなどで、多要素認証が義務付けられることは多いです。AWS CLIを使ってデータを扱う際にも多要素認証が必要になることがあります。そんなとき、AWSのドキュメントにちょうど解決方法が記載されていましたので紹介します。

手順

1. 仮想MFAデバイスのインストール

こちらからインストールします。

image.png

2. MFAデバイスを割り当てる

IAMからユーザーを選択し、赤枠で囲った「管理」をクリックします。

image.png

3. 一時認証情報の取得

デフォルトのまま続行をクリックします。

image.png

シークレットキーの表示をクリックし、シークレットキーをコピーします。

image.png

WinAuth.exeを起動し、Addをクリックします。Authenticatorを選択します。

image.png

シークレットキーを1. Enter the Secret Code ... のテキスト部分に貼り付けます(緑枠で囲った部分)。その後、3. Click the Verify button ... の箇所にある「Verify Authenticator」をクリックします。

image.png

次に、4. Verify the followinf code ... の場所に一定間隔で6桁の数字が表示されるので、2回連続でその数字を記録します。

image.png

それらの数字をMFAコード1, 2に入力します。その後、MFAの割り当てをクリックします。

image.png

4. profileに一時認証情報を追加する

以下の更新マークを押すと、- - - - - - の部分に6桁の数字が表示されるのでメモしておきます。

image.png

コマンドラインで以下を入力します。(もちろんcliを操作できるロールまたは認証情報が別途必要です)

--serial-numberには、ARNを渡します。

image.png

--token-codeには、先ほどの6桁の数字を渡します。

$ aws sts get-session-token --serial-number arn:aws:iam::012345678912:mfa/user_name --token-code 012345

アクセスキーID、シークレットキーアクセスキー、セッショントークンが返ってきます。

{
    "Credentials": {
        "AccessKeyId": "ASIA...",
        "SecretAccessKey": "Edr...",
        "SessionToken": "IQo...",
        "Expiration": "2021-04-19T22:42:00+00:00"
    }
}

これらを.aws/credentialsに登録します。(もし永続的なIAM 認証情報である[default]があれば、[default]を消去して次のステップに進むと一時認証が機能していることがわかります)

[mfa]
aws_access_key_id = ASIA...
aws_secret_access_key = Edr...
aws_session_token = IQo...

profile名を与えてcliを操作します。

$ aws s3 ls --profile mfa

参考記事

0
0
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
0
0