yubico ではじめる物理 MFA 生活

こんにちは。
この記事は、[株式会社日立システムズ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/hisys) の25日目の記事です。

今回は、ひょんなことから手に入れた yubico の Security Key by NFC を用いて IAM ユーザーに対して 物理 MFA を設定する方法についてお伝えします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/c352e959-51a0-bcd5-8f43-f5916c0ff1a9.png)

## 現在の設定
今回、yubico の物理 MFA を適用するIAM ユーザーには、既存の設定として[Twillio Authy](https://authy.com/) を使用して仮想 MFA を設定しています。

この Authy は、マルチデバイスで OTP を表示できるので Apple Watch で確認したり iPhone で確認したりと便利に使えてはいます。

## で、どうしたいのか
既存の設定に**加えて**、物理 MFA を**追加**したい。
これは、2022年11月16日のアップデートで追加になった「[AWS Identity and Access Management で複数の多要素認証 (MFA) デバイスのサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2022/11/aws-identity-access-management-multi-factor-authentication-devices/)」も併せて確認してみたいというところに端を発しております。

## さあ、やってみよう
1. まずは、AWS マネージメントコンソールにログインします。
  
2. 次に、IAM の画面を呼び出します。
 
3. 物理 MFA を追加したいユーザーを探し出し、「認証情報」タブを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/6f16a001-b389-2dc8-0d07-07f4d01632a6.png)
 
4. 少し下に移動し、多要素認証（MFA）と記載のあるエリアを表示し、「MFA デバイスの割り当て」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/cbb81614-f79a-f7cb-acb2-eb8c78bdbb02.png)
 
5. MFA デバイスの管理ウィンドウが開くので、名前を適宜入力し、「Security Key」を選択します。そして、「続行」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/c4ad41ca-8354-d79c-4b7b-442ca83bcb0a.png)
 
6. Set up security keyウィンドウが開くとともに、操作している Web ブラウザ（厳密にはWindowsであれば Windows セキュリティ）からセキュリティ キーのセットアップがポップアップされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/8f28ec48-b218-12b6-f873-9fb588a104d0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/71c02d7a-db95-8aa8-b5f1-2c8c09c29e06.png)
 
7. ポップアップの「OK」ボタンを押下し、セットアップの続行が表示されるので「OK」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/239ecfcd-b9b5-6d19-539a-c876dd452658.png)
 
8. 「セキュリティ キーを USB ポートに挿入します。」と、表示されるのでキーを挿入します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/54d5dbad-b30f-cb43-ecf3-c4a02bf03556.png)
 
9. 「このセキュリティ キーの暗証番号（PIN）を作成する必要があります。」と、表示されるので任意の値を2つのフィールドに等しく入力して、「OK」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/873d4d75-04dd-a2a2-5c24-d21d90839001.png)
 
10. 「セキュリティ キーにタッチしてください」と、表示されるので、キーの光っているところをタッチします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/5a175d26-e150-c307-3fbf-92a44b30b714.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/c44bb123-c87c-c3ae-add3-d586d516f5b9.png)
 
11. 「Setup is complete for this security key」と、表示されるので「閉じる」ボタンを押下して閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/222b53ed-9877-1f87-c08b-b7ce9fa73896.png)
 
12. 設定した物理 MFA キーが登録されていることを確認します。これで、無事に設定が完了しました。また、MFA デバイスを複数登録することにも成功しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/7f7c2a48-40b1-2a4e-f4a1-d3c8bb584b5e.png)

## 動作確認してみよう
設定が完了したので、次は、実際に物理 MFA デバイス（セキュリティキー）を用いてログインしてみます。

1. 一旦、マネージメントコンソールからサインアウトし、改めてサインインします。
すると、今までの表示とは異なり「**追加の検証が必要です**」と表示されるとともに、どのタイプの MFA デバイスで検証するのかを指定するようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/fafdb7c2-a105-4957-7340-0347125e3d23.png)
 
2. セキュリティキーを選択して、「次へ」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/f6fb2bd5-1c63-98bf-69d5-7cc7cbb84040.png)
すると、上図に合わせて、下図のようにWindowsセキュリティのポップアップから「本人確認をしています」と表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/cbe7f3a7-fa2c-ff94-a4a1-d2b45c910c54.png)
 
3. 上図の状態になったらキーを接続し、光っている部分にタッチします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/c44bb123-c87c-c3ae-add3-d586d516f5b9.png)
 
4. タッチすることで無事にログインが成功しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/37e449cf-0099-89c8-b516-f378bc757b59.png)

## おまけ
セキュリティキーで AWS CLI の MFA 認証が通るか確認しましたが、こちらは非サポートです。
セキュリティキーを用いた MFA 認証はマネージメントコンソールでのみサポートされます。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/authenticate-mfa-cli/
> セキュリティキーのサポートは、AWS マネジメントコンソールでのみ利用できます。詳細については、「FIDO セキュリティキーの有効化 (コンソール)」を参照してください。


## まとめ
物理 MFA デバイスを使うことで、運用部屋やデータセンター内といったスマートフォンの持ち込みが認められないような場所であっても、MFA 認証を利用できるようになります。一度設定してしまえば、必要な時に USB ポートに差し込んでタッチするだけで利用可能になり、ワンタイムパスワードを入力する手間も省けます。
また、複数の MFA デバイスができるようになったことで、例えば仮想 MFA デバイスの iPhone のバッテリーが枯渇していた際にもスムーズにログインできるようになります。ほかにも、iPhone の機種変などにより MFA 設定を移行できずアクセス不可になりかけた際にもサポートに連絡せずに復旧できるようになります。


記載されている会社名、製品名、サービス名、ロゴ等は各社の商標または登録商標です。