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

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

Clock Icon2024.06.13

ども、大瀧です。 アメリカで開催中の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設定に入れてみて、どう動くかを試してみます。

[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さんにフィードバックをいただき、まとめの末尾の文章を追補しました。

ここさらっと流さずにClientの概念に触れて欲しかったな。

> パスキーであればスマホの通知からの"ポチー"の承認で行使できるのでAWS CLIでも使えたら便利だなぁと思っています。#DevelopersIO 2024年6月現在 AWS CLI の MFA デバイスとしてパスキーは使用できない https://t.co/lz1sYRhaUI

— 👹秋田の猫🐱 (@ritou) June 14, 2024

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.