2022/09/13

AWS CLIでMFA(多要素認証)を管理するには?

 
  

MFAの基本


AWSのサービスを活用したシステム開発に従事されている方なら、MFAの重要性については、既にご存じのことでしょう。また、MFAは聞き慣れないという方でも、日本語の多要素認証と言えば聞いたことがあるのではないでしょうか。

今のような誰もがインターネットを利用する時代、利用者の認証方式は重要です。既に多くの企業が採用しているMFA(多要素認証)を知らないという訳にはいかないでしょう。そこで、AWSのCLIでMFAを設定する方法を解説する前に、MFAの基本について解説します。

MFAの意味とは

今回紹介するMFAとは、Multi-Factor Authenticationの略で、日本語では多要素認証と訳されます。

なおMFA(多要素認証)とは、本人確認のための要素を複数用意して利用者に認証してもらう方法で、スマートフォンにパスコードを送信したり、USBで接続するドングルを利用する方法など、実現方法は幾つかあります。

例えばパソコンからアクセスした際、ログインとパスワードによる認証に加えて、スマートフォンのショートメッセージに届いた数字を入力する仕組みを利用されたことがあるでしょう。このように認証する仕組みを複数用意する方法がMFA、すなわち多要素認証です。

パスワードは時代遅れ

多要素認証が使われる前は、ログインとパスワードによる認証が一般的でした。

この方法は、インターネットが普及する前から複数の人が同じコンピュータを利用する方法として普及した、かなり古い認証方法です。しかし、シンプルで説明しやすいことから今でも多くのシステムで利用されています。

とはいえ今の時代、人が記憶できるようなパスワードは安全ではありません。パスワードが破られて重要な情報が流失した事故も頻繁に発生しています。

誰もがインターネットを使う今の時代、パスワードによる利用者認証は既に時代遅れといえるでしょう。そして、セキュリティを考慮した多要素認証を導入する企業が増えています。

AWSでもMFAの設定を

AWSも、もちろんセキュリティ対策が重要です。そのためAWSで提供するサービスでアカウントを利用するなら、MFAでセキュリティを高めなければなりません。

AWSでは、ログインとパスワードのみの認証に加えて、複数のMFAメカニズムを利用した認証もサポートしています。

具体的には、先ほど例として紹介したスマートフォンなど別の通信デバイスによる認証、またUSBポートに接続する専用デバイスを利用した認証、さらに時間同期に基づくパスワード生成器を利用した認証になります。

なお、これらのMFAの利用設定は、Webベースのコンソールからも設定できますが、AWS CLIからも設定することも可能です。

AWSでMFAを利用する方法


先ほど、AWSでもMFAを利用できると紹介しましたが、どうすれば使えるのでしょうか。

AWSでは、IAMを利用してアカウントを作成し、そのアカウントに対してMFAを設定します。そして、IAMの設定にはWebベースのIAMコンソールを利用する方法と、AWS CLIを利用した方法とがあります。次から、この2つのMFAの設定方法について解説します。

IAMコンソールを利用する

通常、AWSのアカウントを管理するならWebベースのIAMコンソールを使用します。

例えば、新規のアカウントにMFAを設定する場合、IAMコンソールのSecurity credentialsタブにAssigned MFA deviceがあるので、このメニューでMFAを管理します。

そして、IAMコンソールを利用してスマートフォンに仮想MFAデバイスを設定した場合、QRコードが表示されるので、それを利用して認証の設定を完了させてください。

また、IAMコンソールを利用することで、既に作成したアカウントのMFAの設定をチェックしたり、解除することも可能です。

AWS CLIで設定する

先ほど紹介したIAMコンソールによる操作は、AWS CLIのコマンドでも可能です。

AWS CLIには、LinuxやmacOSから操作するための専用ツールの他、WindowsのPowerShellなどを利用する方法もあるので、自分の環境に合わせて利用してください。

AWS CLIを利用すると、既にMFAを設定済のアカウントのリストを作成したり、アカウントの設定を変更することも可能です。新規に作成したアカウントに、MFAを設定することも可能なので、必要に応じて利用してください。

AWS CLIでMFAを設定する場合の注意点

先ほど説明したようにAWSで扱うアカウントは、IAMコンソールやAWS CLIでMFAを設定できます。

しかし、AWSマネジメントコンソールへのログインに用いるルートユーザーに対してMFAを設定する場合、IAMコンソールからしかできません。もし、AWS CLIを利用してルートユーザーのMFAを設定しようとすると、エラーになるので注意してください。

また、MFAにUSBポートに接続するデバイスを利用する場合、AWSがサポートしているデバイスのみ利用できます。もし、AWSがサポートしているデバイスを既に持っている場合はそれを利用できますが、持っていない場合は事前にAmazonから購入しておきましょう。

AWSのCLIでMFAを設定するには


AWSのルートユーザー、またはIAMアカウントに設定できるMFAデバイスは1つだけです。そしてIAMアカウントへのMFAの設定は、AWS CLIでも可能になります。次に、AWSのCLIでMFAを設定する方法とその例を紹介します。

AWS CLIで仮想デバイスによるMFA設定方法とは

IAMコンソールを使うと、仮想MFAデバイスの作成とユーザーへの紐付けを一度に設定します。しかし、AWS CLIでは作成と紐付けが別コマンドのため、1つのアカウントに対するMFAの設定には2つのコマンドが必要です。

その2つのコマンドの1つ目は、デバイス作成コマンドの「aws iam create-virtual-mfa-device」です。このコマンドは、オプションで仮想デバイス名とQRコードの画像を格納するファイル名を指定します。

続いてスマートフォンなどの仮想MFAデバイスでQRコードをスキャンし、ワンタイムパスワードを取得するコマンドを指定してください。それが「aws iam enable-mfa-device」コマンドで、オプションでユーザーと仮想MFAデバイスと紐づけしてMFAを有効化します。

仮想デバイスによるMFA設定例

次に先ほど紹介したAWS CLIを利用し、仮想デバイスによるMFAを設定する例を紹介します。なお、設定には、仮想MFAデバイスの作成コマンドと、ユーザーと仮想MFAデバイスを紐付けするコマンドの2つが必要です。

仮想MFAデバイスの作成コマンドの例

$ aws iam create-virtual-mfa-device \
    --virtual-mfa-device-name [仮想デバイス名] \
    --bootstrap-method QRCodePNG \
    --outfile $HOME/[QRコードのh画像ファイル名]

このコマンドを実行すると、仮想MFAデバイスのシリアルナンバーが出力されます。

ユーザーと仮想MFAデバイスを紐付けするコマンド

$ aws iam enable-mfa-device \
    --user-name [ユーザー名] \
    --serial-number [仮想MFAデバイスのシリアルナンバー] \
    --authentication-code-1 [ワンタイムパスワード] \
    --authentication-code-2 [ワンタイムパスワード]
 

仮想MFAデバイスのシリアルナンバーは、仮想MFAデバイスの作成コマンドで作成したシリアルナンバーを使います。また、ワンタイムパスワードは、先ほどの生成したQRコードによって表示されるパスワードです。

AWS CLIを利用したMFA管理


MFAが設定されたアカウントの一覧の作成や、特定のアカウントのMFA設定の変更は、AWS CLIでも可能です。

特に対象となるアカウントの数が多い場合は、AWS CLIによるバッチ処理の方が便利なケースが幾つもあります。ぜひ、AWS CLIを活用したMFAの管理方法をマスターしてください。

次に、AWS CLIを利用したMFA管理コマンドの一部を紹介します。

仮想MFAデバイス一覧表示する

仮想MFAデバイスの一覧を表示するコマンドが「aws iam list-virtual-mfa-devices」です。なお、このコマンドはオプションで割り当てステータスを指定できますが、指定しないで実行すると全ての仮想MFAデバイスの一覧を表示します。

仮想MFAデバイス一覧を表示するコマンドの例

$ aws iam list-virtual-mfa-devices

アカウントのMFAを無効にするコマンド

アカウントにMFAを設定した際、2つ目のコマンドでアカウントとMFAデバイスを紐づけしましたが、これを外すことでMFAを無効化できます。そして、MFAの設定を無効にするコマンドが「deactivate-mfa-device」です。

このコマンドは、先ほどの紐づけコマンドと同じようにアカウント名とMFAデバイスのシリアル番号を指定して、アカウントとデバイスの紐づけを無効化します。

デバイスを無効にするコマンドの例

$ aws iam deactivate-mfa-device \
    --user-name [ユーザー名] \
    --serial-number [仮想MFAデバイスのシリアルナンバー]

仮想MFAデバイスを削除するコマンド

AWSに登録してある仮想MFAデバイスを削除するには「aws iam delete-virtual-mfa-device」コマンドを使用します。そして、このコマンドを実行するには、削除対象の仮想MFAデバイスのシリアル番号が必要です。

ただし、アカウントと紐づいている仮想MFAデバイスは削除できません。先にデバイスを無効にするコマンドで、アカウントとの紐づけを解除してから、このコマンドで削除してください。

仮想MFAデバイスを削除するコマンドの例

$ aws iam delete-virtual-mfa-device \
   --serial-number [仮想MFAデバイスのシリアルナンバー]

AWSを安全に使うならMFA(多要素認証)を


今の時代、AWSのクラウド上に構築したサービスを安全に利用するには、MFA(多要素認証)を利用したセキュリティ向上が欠かせません。そして、AWSにはWebベースの管理コンソールとコマンドベースのCLIのMFAを構築したり、管理する方法が用意されています。

ぜひ、これらをうまく活用してAWSを安全に利用してください。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】