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エンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
- 2024-06-30キャリアインフラエンジニアはやめとけって本当?きつい理由を口コミを交えて解説
- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。