SSH 接続に FIDO2 キーが使えるように!Cloudflare Access のインフラアプリ MFA が強化されたよ
やっほー、しぃちゃんだよ!今日は SSH のセキュリティをぐっと固くできるアップデートを見つけたから紹介するね!
Cloudflare Changelogなにが発表されたの?
Cloudflare の Changelog で、Cloudflare One の Access(Zero Trust)まわりのアップデートが発表されたよ。インフラストラクチャアプリケーション(SSH 接続で使うアプリ)が、独立 MFA(Independent MFA)の認証方式として新しく FIDO2 キーに対応したの。アプリケーションレベルとポリシーレベルの MFA 設定で、ssh_fido2_key(FIDO2 キー)、piv_key(PIV キー)、またはその両方を許可できるようになったよ。
ユーザーは App Launcher から FIDO2 キーを登録して、そこで生成された SSH アイデンティティを使って接続する仕組み。ブラウザで使う WebAuthn のセキュリティキー登録とは完全に別の仕組みとして用意されているのがポイントだよ。
なぜ重要なの?
Cloudflare Access のインフラアプリはもともと、SSH 接続専用の MFA 方式として PIV キー(YubiKey の PIV 機能を使うもの)をサポートしていたの。ブラウザ向けの WebAuthn セキュリティキーとは別扱いで、インフラアプリ専用の認証方式が用意されていたんだね。
今回そこに FIDO2 キーが加わったことで、PIV キー対応デバイスを持っていないユーザーや、FIDO2 の方が使い慣れているチームでも、ハードウェアキーによる強固な SSH 認証を選べるようになったの。選択肢が増えるのって、地味に嬉しいことだよね!
これで何が変わるの?
インフラアプリの MFA 設定で、許可する認証方式をより柔軟に選べるようになるよ。
- FIDO2 キーだけを許可する
- PIV キーだけを許可する
- 両方を許可して、ユーザーに好きな方を選んでもらう
この設定はアプリケーション単位でもポリシー単位でも指定できるから、「このアプリは FIDO2 キー必須」「この SSH ユーザー名向けのポリシーだけ PIV キーも許可」といった細かい運用ができるの。管理者にとっては、セキュリティ要件に合わせて認証方式を調整しやすくなるアップデートだよ。
深く潜ってみよう
API から設定する場合は、アプリケーションやポリシーの mfa_config オブジェクトに allowed_authenticators を指定する形になるよ。
{
"mfa_config": {
"mfa_disabled": false,
"session_duration": "12h",
"allowed_authenticators": ["piv_key", "ssh_fido2_key"]
}
}
覚えておきたいポイントはこんな感じ。
piv_keyとssh_fido2_keyはインフラアプリ専用で、他のアプリタイプやブラウザの WebAuthn では使えないsession_durationを0mにすると、SSH 接続のたびに毎回 MFA を要求できる(通常は再認証なしで新しい接続を張れる期間を指定)- MFA 設定は「ポリシー > アプリケーション > 組織」の優先順位で評価される
- FIDO2 キーの登録は App Launcher が生成する登録コマンドを使う仕組みで、macOS では Homebrew 版 OpenSSH、Linux では libfido2 対応の OpenSSH が必要(標準の
ssh-keygenでは FIDO2 キーを扱えない)
設定手順の詳細は、公式ドキュメントの「Enroll a FIDO2 key for infrastructure apps」と「Configure MFA for infrastructure applications」にまとまっているよ。
まとめ
- Cloudflare Access のインフラアプリが、SSH 接続の独立 MFA として FIDO2 キー(
ssh_fido2_key)に対応 - 既存の PIV キー(
piv_key)と組み合わせて、アプリ単位・ポリシー単位で認証方式を選べる - FIDO2 キーの登録はブラウザの WebAuthn とは別の仕組みで、App Launcher から専用コマンドを使って行う
Cloudflare Access で SSH インフラを管理していて、ハードウェアキーによる MFA 強化を検討している管理者さんにぴったりのアップデートだよ!