
- AWSとKeyfactorが、AIエージェントの身元をX.509証明書で検証する参照アーキテクチャを公開
- MCPには認証の標準仕様がなく、なりすましや資格情報の再利用が課題になると原文は指摘
- 署名エンベロープ、委譲アサーション、RFC 8693トークン、OCSPを3層に組み合わせ
公開された参照構成
AWSはブログで、Keyfactorと共同開発したAIエージェント向けの認証参照アーキテクチャを公開した。X.509公開鍵基盤(PKI)を使い、エージェントが誰のために、どの権限でツールを呼び出したのかを暗号学的に証明する。LLMの推論にはAmazon Bedrockを、AWS Strands Agents SDKを通じて利用する。保護対象の例としてデータベースを挙げているが、同じ認証パターンはMCP互換のツールサーバー全般に適用できるとしている。
背景にあるのはMCPの認証機能の不在である。MCPはLLMを組み込んだエージェントがデータベース照会やメール操作といったツールを呼び出す方法を定めるが、認証の標準仕様を持たず、トランスポートに依存しない設計になっている。そのため適切な身元確認がなければ、任意のコンポーネントがエージェントになりすましたり、傍受した資格情報を再利用したり、権限なくツールを呼び出したりできてしまう。原文はこの状態を「重大なギャップ」と表現している。
4つの仕組みと3層
構成は4つのセキュリティ機構を組み合わせる。1つ目は、エージェントの呼び出しごとにリクエスト全体へ署名する「署名付きエンベロープ」で、秘密鍵の保持を証明する(proof-of-possession)。2つ目は、ユーザーの秘密鍵で署名した「委譲アサーション」で、資格情報を共有せずにエージェントへ権限を委ねる。3つ目はRFC 8693のオーディエンス限定トークンで、1つのトークンが漏れた場合の影響範囲を限定する。4つ目はOCSPによるリアルタイムの失効確認で、資格情報の変更を全エージェントへ即座に反映する。
これらを3つの認証レイヤーに割り当てる。ユーザーログインと証明書発行・委譲の層、エージェント間通信の層、MCPサーバーの層である。エージェント間では、オーケストレーターがツール名・引数・タイムスタンプ・ランダムなnonceを含むペイロードにRSA-PSS-SHA256で署名し、受け手が署名、鮮度(既定60秒)、nonceの重複、CAチェーン、ロール、OCSPの6項目を検証する。同じプロンプトを再送する場合も新しいnonceが必要で、過去のエンベロープは正規の送信者でも再利用できない。
MCPサーバー側ではさらに4項目を確認する。Keycloakのトークンイントロスペクションでトークンが有効かつオーディエンスにMCPサーバーを含むこと、署名エンベロープの検証、ユーザーの委譲アサーションの検証、そしてトークンのユーザー名・委譲の主体・エージェント証明書のCNが一致するかの突合である。多層防御により、1つの資格情報が不正アクセスを受けても残りの検査で不正操作を防ぐ設計としている。
従来手法との違い
原文は、コンポーネント間でAPIキーを共有する方法や、エージェントの連鎖に沿ってOAuthトークンをそのまま渡す方法では、企業導入が求めるゼロトラスト要件を満たせないと指摘する。これに対し本構成では、ユーザーの秘密鍵とフルセッションのOAuthトークンをエージェントに渡さない。アプリケーションがローカルでRSA 2048ビット以上の鍵ペアを生成し、CSRをEJBCAのpkcs10enroll APIへ送って証明書を受け取り、証明書と秘密鍵をPKCS12形式でAWS Secrets Managerに保存する。秘密鍵はアプリケーションの境界の外に出ない。
EJBCAはKeyfactorの認証局/PKIプラットフォームで、高可用性構成やREST API自動化、OCSP検証を特徴とする。オンプレミス、コンテナ、Amazon EC2のいずれでも展開できる。Keyfactorは自社プラットフォームが世界1,500社以上の企業顧客に使われていると説明しており、金融、医療、製造、政府機関が含まれるとしている。AWS側がBedrockやSecrets Manager、Amazon RDSといったマネージドサービスを担い、Keyfactor側が証明書の発行・更新・失効を担う身元レイヤーを受け持つ関係にある。
前提条件と未公表の点
試すには前提条件がある。Amazon Bedrock、Amazon RDS for MySQL、Amazon SES、AWS Secrets ManagerへアクセスできるAWSアカウントに加え、RFC 8693の標準トークン交換に対応したKeycloak 26.2以降が必要で、それ以前のバージョンは互換性のないレガシー交換を使うため利用できない。Keyfactor EJBCA EnterpriseとREST API V1、OCSPレスポンダ、API管理者証明書(api-admin.p12)、Python 3.9以降の環境も求められる。X.509証明書、OCSP、OAuth 2.0、RSA署名、PKCS#12に関する知識も前提にされている。
一方、EJBCA Enterpriseの価格やライセンス条件は原文に記載がない。2026年10月20日付のブログ時点では参照アーキテクチャとサンプルコードの公開であり、製品としての提供形態や運用時の負荷、大規模環境での性能は示されていない。なお、原文のステップ3のコード例は4番目の検査の手前で途切れており、ID突合の実装コード全文は確認できない。
| レイヤー | 想定する場面 | 主な検証・処理 |
|---|---|---|
| 第1層 | ユーザーログインと委譲 | OAuth 2.0パスワードグラント、RFC 8693によるダウンスコープ、CSRによる証明書発行、ユーザー鍵による委譲アサーション署名 |
| 第2層 | エージェント間の呼び出し | 署名エンベロープの6項目検証(署名、鮮度、nonce、CAチェーン、ロール、OCSP) |
| 第3層 | MCPサーバーでのツール実行 | トークンイントロスペクション、エンベロープ検証、委譲検証、トークンと証明書のID突合 |
Traditional approaches such as sharing API keys between components or passing OAuth tokens through agent chains fall short of the zero-trust requirements that enterprise deployments demand.
コンポーネント間でAPIキーを共有したり、エージェントの連鎖に沿ってOAuthトークンを渡したりする従来の方法では、企業導入が求めるゼロトラスト要件を満たせない。
今後の見通し
今後は、MCP自体に認証仕様が組み込まれるかどうかが焦点になるとみられる。今回は参照アーキテクチャとサンプルコードの公開であり、商用製品としての提供形態や運用負荷は明らかにされていない。Keyfactor EJBCAのライセンス条件、大規模環境でのOCSP応答性能、証明書の更新頻度といった情報が示されれば、実運用に踏み切れるか判断しやすくなる。AWS上でMCPサーバーを運用する予定があるチームは、まず現在の認証方式がゼロトラスト要件を満たしているかを点検したい。
日本の開発者・IT企業にとっての意味
企業がAIエージェントにデータベース更新やメール送信を任せる場面では、「どのエージェントが、どのユーザーの委任を受けて、何をしたか」を後から説明できることが導入条件になりやすい。APIキーの共有やトークンの使い回しは、鍵が1つ漏れると全エージェントがなりすまし可能になる点で、監査にも耐えにくい。今回の構成は、秘密鍵をエージェントに渡さず、短命な証明書と委譲アサーション、リアルタイム失効でこの問題に向き合う設計例といえる。日本のIT企業にとっては、MCPを使ったエージェント基盤を社内システムへ接続する際の認証要件を整理する材料になる。ただしEJBCA EnterpriseとKeycloak 26.2以降が前提となるため、既存の認証基盤の構成次第では導入コストが変わる点は留意したい。
気になる点
- 自社のMCPサーバーにも同じ仕組みを適用できますか
- 参照アーキテクチャはデータベースを保護対象にしていますが、原文は同じ認証パターンを任意のMCP互換ツールサーバーに適用できるとしています。全サンプルのソースコードはGitHubリポジトリで公開されているため、自前のツールサーバーに読み替えて検証できます。
- EJBCAのライセンス費用はいくらですか
- 原文に価格の記載はありません。EJBCA Enterpriseはエンタープライズ向け製品として提供され、X.509証明書の発行やOCSP検証、CRL配布、証明書ライフサイクル管理をWebコンソールとREST APIで行えると説明されていますが、費用は現時点では公表されていません。
- 既存のKeycloak環境をそのまま使えますか
- RFC 8693の標準トークン交換が必要で、Keycloak 26.2以降が前提です。以前のバージョンはレガシーな交換方式を使うため互換性がなく、バージョンアップが必要になります。ログインはOAuth 2.0パスワードグラントで行い、ダウンスコープしたトークンだけをエージェントへ渡す構成です。
用語解説
- X.509 PKI
- 公開鍵暗号を使って証明書の発行・失効・検証を行う基盤。証明書が主体の身元を保証する。
- OCSP
- Online Certificate Status Protocol。証明書が失効していないかをリアルタイムに照会するプロトコル。
- MCP
- Model Context Protocol。LLMを組み込んだエージェントが外部ツールやデータソースを呼び出すための規格で、認証仕様は持たない。
- RFC 8693
- OAuth 2.0のトークン交換仕様。トークンのオーディエンスやスコープを絞った別トークンを発行できる。
- 署名エンベロープ
- リクエスト内容全体に署名し、送信者が秘密鍵を保持していることを示す仕組み(proof-of-possession)。
- EJBCA
- Keyfactorの認証局/PKIプラットフォーム。X.509証明書発行やOCSP、CRL配布をREST APIで自動化できる。
出典
Securing AI agent identity with X.509 PKI on AWS
https://aws.amazon.com/blogs/machine-learning/securing-ai-agent-identity-with-x-509-pki-on-aws
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する