本文にスキップ
AI News HubLIVE
サイト内リライト3 分で読了

Amazon Bedrock AgentCore Identity を使用したプライベートキー JWT による認証

記事の要約

Amazon Bedrock AgentCore Identity は、エージェントが共有シークレットではなく署名付き JWT を使用して ID プロバイダーに認証できるようにするプライベートキー JWT クライアント認証をサポートするようになりました。秘密鍵は AWS KMS に安全に保存され、公開鍵は ID プロバイダーに登録されます。この記事では、ワークフロー、サポートされているグラントフロー(M2M、OBO、ユーザー委任)、および設定手順(KMS 署名キーの作成、公開鍵の登録、資格情報プロバイダーの設定など)を説明します。また、監査用の CloudTrail イベント例も示します。

ソースAWS Machine Learning Blog著者: Swara Gandhi
Amazon Bedrock AgentCore Identity を使用したプライベートキー JWT による認証
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

Amazon Bedrock AgentCore Identity は、プライベートキー JWT クライアント認証をサポートするようになり、エージェントの認証をより安全にします。従来の共有クライアントシークレットの代わりに、プライベートキー JWT は署名付き JSON Web トークン(JWT)クライアントアサーションを使用して、エージェントがダウンストリームの ID プロバイダーのトークンエンドポイントに対して認証できるようにします。公開鍵を ID プロバイダーに登録し、対応する秘密鍵は AWS Key Management Service(AWS KMS)内に安全に保管されます。AgentCore Identity が認証する必要がある場合、AWS KMS を使用してアサーションに署名し、署名済みアサーションを ID プロバイダーに送信します。ID プロバイダーは登録された公開鍵を使用して検証します。

動作の仕組み

顧客サポートエージェントが、ID プロバイダーによって保護された内部注文 API から顧客の注文履歴を読み取る必要がある例を考えます。エージェントは AgentCore Identity の GetResourceOauth2Token を呼び出して注文 API のトークンを要求します。AgentCore Identity は資格情報プロバイダーからクライアント ID、KMS キー ARN、署名アルゴリズムを読み取り、短命の JWT クライアントアサーションを構築し、設定された署名アルゴリズム(RS256、PS256、または ES256)を使用して kms:Sign を呼び出します。AWS KMS がアサーションに署名し、署名を AgentCore Identity に返します。秘密鍵は KMS から出ることはありません。次に、AgentCore Identity は grant_type=client_credentials および client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer を使用して、署名済みアサーションを ID プロバイダーのトークンエンドポイントに送信します。ID プロバイダーは登録された公開鍵で署名を検証し、アクセストークンを AgentCore Identity に返し、それがエージェントに渡されます。最後に、エージェントはアクセストークンを使用して注文 API を呼び出し、注文履歴を取得します。

サポートされているグラントフロー

プライベートキー JWT 認証は、マシン間(M2M)、オンビハーフ(OBO)、ユーザー委任アクセスの 3 つのグラントフローで機能します。M2M フローではエージェントは自身として動作し、人間のユーザーは関与しません。client_credentials グラントを使用します。OBO フローではエージェントは特定のユーザーに代わって行動し、そのユーザーの既存のトークンを使用してダウンストリーム API を呼び出します。AgentCore Identity はクライアントアサーションで自身を認証しながら、ユーザートークンを交換します。ユーザー委任アクセスでは、ユーザーが最初にインタラクティブにログイン/同意(認可コードフロー)を行い、エージェントが何をできるかを承認した後、エージェントはユーザーを表すトークンを取得します。

前提条件

KMS、AgentCore、CloudTrail への管理コンソールアクセス権を持つ AWS アカウントが必要です。また、アプリケーションの公開鍵を登録できる ID プロバイダーのテナントも必要です。ID プロバイダーがプライベートキー JWT に要求する署名アルゴリズムが AWS KMS および AgentCore Identity でサポートされていることを確認してください。

はじめに

まず、非対称 KMS キーを作成します。KMS コンソールで「カスタマー管理キー」を選択し、キーを作成します。キータイプは非対称、キーの使用法は署名と検証、キー仕様は署名アルゴリズムと互換性のあるもの(例:ES256 アルゴリズム用の ECC_NIST_P256)を選択します。キーポリシーを設定し、kms:ViaService 条件を使用して AgentCore Identity 経由でのみキーを使用できるように制限します。次に、公開鍵をエクスポートして ID プロバイダーに登録します。その後、AgentCore コンソールの Identity セクションで OAuth クライアントを追加し、クライアント認証方法としてプライベートキー JWT を選択します。ディスカバリー URL、クライアント ID、KMS キー ARN、署名アルゴリズムを入力します。必要に応じてヘッダーとペイロードのクレームを追加し、クライアントを作成します。最後に、CloudTrail イベント(GetWorkloadAccessToken、GetResourceOauth2Token、および KMS の Sign イベント)を確認して、正しく動作していることを監査します。

CloudTrail ログの例

エージェントが資格情報プロバイダーを使用してトークンを取得すると、操作は AWS CloudTrail に記録されます。GetWorkloadAccessToken(ワークロード ID トークンの取得)や GetResourceOauth2Token(ダウンストリームリソースのアクセストークン要求)などのイベントを確認できます。Sign イベントは AgentCore Identity が kms:Sign を呼び出して JWT クライアントアサーションに署名したことを示し、プライベートキー JWT 認証が機能していることを確認します。これらのログはエージェントのアクセスを監査および監視するのに役立ちます。

要点と分析を開く

記事インテリジェンス

エンジニア中級

要点

  • プライベートキー JWT は、OAuth2 クライアント認証において共有シークレットを署名付き JWT に置き換えます。
  • 秘密鍵は AWS KMS に安全に保存され、外部に出ることはありません。
  • マシン間、オンビハーフ、および認可コードグラントフローをサポートします。
  • コンソールで KMS キーを作成し、公開鍵を登録し、資格情報プロバイダーを設定するための手順が説明されています。

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。