2024年6月現在 AWS CLI の MFA デバイスとしてパスキーは使用できない

2024.06.14

ども、大瀧です。 アメリカで開催中のAWSセキュリティイベント AWS re:Inforce 2024 にて、AWS管理コンソールでのパスキー対応が発表されました。早速発表記事や試してみた記事が本ブログにアップされています。AWS CLIでも使えるのかなと思ったのですが、結果として現時点ではサポートしていないことがわかったので本ブログで試したこと、調べたことを報告します。

AWSドキュメント

AWS IAMのドキュメントには、既にパスキーを設定するためのドキュメントがあります。(2024/06/13時点では英語のみ、日本語に切り替えるとパスキーの説明のないページになります)

従来の内容の日本語ページと見比べてみると、YubiKeyなどのFIDO2セキュリティキーは従来からサポートしていて、今回のパスキーサポートによってsynced passkeys(iCloudキーチェーンのようなデバイス間で同期するキー)とdevice-bound passkeys(FIDO2セキュリティーキーと紐付けるデバイスごと固有のキー)の2種類をサポート、それぞれ扱えるようです。FIDO2セキュリティキーについては、以下の記事が詳しいです。

そして、設定したパスキーやセキュリティキーをMFAデバイスとして設定するドキュメントは以下です。

このページの最後に Notes として制限事項の記載があり、その2つ目に以下の記載があります。

You cannot use AWS CLI commands or AWS API operations to enable FIDO security keys.

「FIDO security keys」という記述ですが、リンク先のURLが先述のドキュメントになっているので、synced/device-bound passkeysが対象と考えるのが自然かなと思います。

試した軌跡

ともあれ、AWS管理コンソールに設定したパスキーにはARNがアサインされますので、AWS CLIのMFA設定に入れてみて、どう動くかを試してみます。

~/.aws/config

[profile passkeyrole]
role_arn = arn:aws:iam::123456789012:role/passkeytestrole
mfa_serial = arn:aws:iam::234567890123:u2f/user/passkeytestuser/passkey-XXXXXXXXXXXXXXXXXXXXXX
  :
% aws s3 ls --profile passkeyrole
Enter MFA code for arn:aws:iam::234567890123:u2f/user/passkeytestuser/passkey-XXXXXXXXXXXXXXXXXXXXXX: [適当な文字を入力]

An error occurred (AccessDenied) when calling the AssumeRole operation: MultiFactorAuthentication failed, unable to validate MFA code.  Please verify your MFA serial number is valid and associated with this user.

仮想MFAデバイスと同様トークンの入力を求められ、パスキー選択のような挙動にはなりませんでした。やはりパスキーは利用できないようです。

まとめ

AWS CLIのMFAデバイスとしてパスキーが使用できないということを、AWSドキュメントと検証から確認してみました。パスキーであればAWS CLIを実行するホストがリモートでも手元のスマホで"ポチー"と承認を行使できるので、使えたら便利だなぁと思っています(クライアントと認証器を分離できる)。

2024/06/14 ↓のツイートで@ritousさんにフィードバックをいただき、まとめの末尾の文章を追補しました。