【AWSにおけるセキュリティ】冗長バーチャルMFA

AWS

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

よく訓練されたアップル信者、都元です。さっきはヤられました…。早速ボスに「同じネタの記事書いちゃったんですよーww」という話をしたら、想像通りのドヤ顔を頂きました。ごちそうさまでした。

さて、マジで悔しいので再びMFAネタ。

MFAを滅失した場合

前のエントリで説明した通り、アカウントのセキュリティ向上にはMFAが有効です。特にルートアカウント(非IAMアカウント)はアカウントの解約までできてしまう、最も強い権限を持っていますので、是非ともMFAを活用したいところです。

しかし、MFAというのは基本的に個人に帰属してしまいがちなデバイスです。業務で利用するAWSアカウントについて、そのルートアカウントにMFAを設定した場合、そのMFAを持ち歩くのは、恐らくそのプロジェクトの責任者ということになります。

では、その責任者がMFAと共に、何らかの事故に巻き込まれてしまった場合、どうなるでしょうか。

一応最後の手段として、Amazonに無効化を依頼することができますが、セキュリティの問題ですので、おいそれと簡単に解除してくれるとは考えづらいわけです。少なくとも、電話が掛かってくるようですし。その間、緊急を要する対応が必要になったら…。

管理権限の冗長化

という状況に備えるためには、ルートアカウントのパスワードは要人2〜3名で共有しておく、というのがビジネス上必要な対応かと思います。サーバだけでなく、管理権限もマルチAZ化ですね。しかし、1つのアカウントに複数のMFAを設定することはできません。と、ここで考えるのをやめてしまうと、ルートアカウントにはMFAを登録しない、という判断をしてしまいます。

確かに、ハードウェアMFAを利用する場合、このような管理権限の冗長化は実現できません。しかし、バーチャルMFAであれば話は別です。

バーチャルMFA登録時に現れるQRコードを、複数人(要人2〜3名)のデバイスで読み込めばいいのです。

2013-07-10_1252-mfa-5

これにより、読み込んだ全てのデバイスにおいて、同じ認証コードが表示されるようになります。当然、通常通りの利用方法と比べると堅牢性は低下しますが、「MFA無し」よりは遥かにセキュアです。また、前述の管理権限の冗長化もきちんと実現できます。このような小細工が出来ないという点で、ハードウェアMFAはバーチャルMFAよりも堅牢ですが、バーチャルMFAには手軽さの他に、運用上のメリットもある、ということです。

いざMFAの登録を検討し始めると、「もしMFAの電池が切れてしまったら…」「失くしてしまったら…」等、様々な想像をして、結果的には「その話は無かったことに…」といった結論に落ち着いてしまうことがあります。が、工夫次第で運用上の不安を解消しつつ、セキュリティの担保ができるので、是非とも躊躇せず、MFAを積極利用して頂きたいと思っています。