0
0

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

AWSでのMFA設定方法まとめ

Last updated at Posted at 2021-07-01

MFA(多要素認証)とは

MFAとは、本人確認のための要素を複数、ユーザーに要求する認証方式であるそうです。AWSにおいてもMFAを有効化することが推奨されているので今回設定方法をまとめました

マネジメントコンソールからの設定

IAMユーザーのMFAを有効化するには、AWS上、IAMのサービスから自分のユーザーを選択し、認証情報タブの「MFAデバイスの割り当て」から「管理」を選択しMFAを設定します。
スクリーンショット 2021-07-01 9.02.13.png

ここでは仮想MFAデバイスを選択します。YubiKeyなど物理的なデバイスを所有している場合はその他を選んでもOKです。仮想MFAデバイスとしてはGoogle Authenticatorなどのアプリをスマホ等にインストールして使用します
スクリーンショット 2021-07-01 9.04.02.png

QRコードを表示させてスマホアプリから認識させる、表示された6桁のコードを2つ入れると登録することができます
スクリーンショット 2021-07-01 9.04.28.png

CLI上でのMFAの設定

CLIを使ってAWSの操作をすることもあると思います。その場合にもMFAを有効にしたい場合、コマンドはコマンドラインから入力するので、その都度6桁のコードをいれなければならないの?と思いますが、そんなことはありません。この場合 sts get-session-token" のコマンドを用いて一時的な有効期限付きの認証情報を取得し(その際に6桁のコードを入力する)、その一時的な認証情報を環境変数に設定することでCLI上でもMFAを有効にします。

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

MFAのARNはマネジメントコンソールでMFAを設定した認証情報の画面から取得します。token-code に6桁のコードを入力します。結果、以下のような認証情報と有効期限 (デフォルトでは 12 時間) を含む出力が得られます。

{
    "Credentials": {
        "SecretAccessKey": "secret-access-key",
        "SessionToken": "temporary-session-token",
        "Expiration": "expiration-date-time",
        "AccessKeyId": "access-key-id"
    }
}

この情報を以下のように環境変数に設定する、もしくはaws configureでプロファイル設定を追加することで、一時的な認証情報を使ってAWSにアクセスすることができます。

export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output
export AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output
export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output

永続的なIAM認証情報ではMFAによるアクセスはできないので、CLIで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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?