View a markdown version of this page

インターフェイス VPC エンドポイント (AWS PrivateLink) を使用して、VPC と Amazon Bedrock AgentCore リソース間にプライベート接続を作成します。 - Amazon Bedrock AgentCore

インターフェイス VPC エンドポイント (AWS PrivateLink) を使用して、VPC と Amazon Bedrock AgentCore リソース間にプライベート接続を作成します。

AWS PrivateLink を使用して、VPC と Amazon Bedrock AgentCore の間にプライベート接続を作成できます。AgentCore には、インターネットゲートウェイ、NAT デバイス、VPN 接続、または Direct Connect 接続を使用せずに、VPC 内にあるかのようにアクセスできます。VPC 内のインスタンスは、AgentCore にアクセスするためにパブリック IP アドレスを必要としません。

このプライベート接続を確立するには、 AWS PrivateLink を搭載したインターフェイスエンドポイント を作成します。インターフェイスエンドポイントに対して有効にする各サブネットにエンドポイントネットワークインターフェイスを作成します。これらは、AgentCore 宛てのトラフィックのエントリポイントとして機能するリクエスタ管理のネットワークインターフェイスです。

詳細については、「 AWS PrivateLink ガイド」の「PrivateLink 経由で AWS サービスにアクセスする」を参照してください。 AWS PrivateLink

AgentCore に関する考慮事項

AgentCore のインターフェイスエンドポイントを設定する前に、 AWS 「 PrivateLink ガイド」の「考慮事項」を参照してください。

AgentCore には 3 つの AWS PrivateLink エンドポイントが用意されています。

  • データプレーンエンドポイント - com.amazonaws.region.bedrock-agentcore

  • コントロールプレーンエンドポイント - com.amazonaws.region.bedrock-agentcore-control

  • ゲートウェイエンドポイント - com.amazonaws.region.bedrock-agentcore.gateway

次の表は、各 AgentCore プリミティブの AWS PrivateLink サポートステータスを示しています。

プリミティブ型 データプレーン コントロールプレーン

実行時間

サポート対象

サポート

メモリ

サポート対象

サポート

組み込みツール (コードインタープリタ、ブラウザツール)

サポート対象

サポート

アイデンティティ

サポート対象

サポート

ゲートウェイ

サポート対象

サポート

評価と最適化

サポート対象

サポート

ポリシー

サポート対象

サポート

AgentCore インターフェイスエンドポイントが利用可能な AWS リージョンのリストについては、「サポートされている AWS リージョン」を参照してください。

重要

データプレーン APIs認証用の AWS Signature Version 4 (SigV4) ヘッダーとベアラートークン (OAuth) 認証の両方をサポートしています。VPC エンドポイントポリシーは、OAuth ユーザーではなく、IAM プリンシパルに基づいてのみ発信者を制限できます。OAuth ベースのリクエストが VPC エンドポイントを介して成功するには、エンドポイントポリシーでプリンシパルを * に設定する必要があります。それ以外の場合、SigV4 許可リストに登録された発信者のみが VPC エンドポイント経由で正常に呼び出しを行うことができます。

AWS IAM グローバル条件コンテキストキーがサポートされています。デフォルトでは、インターフェイスエンドポイントを介して AgentCore へのフルアクセスが許可されます。エンドポイントポリシーをインターフェイスエンドポイントにアタッチするか、セキュリティグループをエンドポイントネットワークインターフェイスに関連付けることで、アクセスを制御できます。

AgentCore のインターフェイスエンドポイントを作成する

AgentCore のインターフェイスエンドポイントは、Amazon VPC コンソールまたは コマンドラインインターフェイス (AWS CLI) AWS を使用して作成できます。詳細については、 AWS 「 PrivateLink ガイド」の「インターフェイスエンドポイントの作成」を参照してください。

次のサービス名形式を使用して AgentCore のインターフェイスエンドポイントを作成します。

  • すべてのデータプレーンプリミティブ (ランタイム、組み込みツール、メモリ、アイデンティティ): com.amazonaws.region.bedrock-agentcore

  • AgentCore Gateway の場合: com.amazonaws.region.bedrock-agentcore.gateway

  • コントロールプレーンオペレーション (ランタイムとメモリの管理) の場合: com.amazonaws.region.bedrock-agentcore-control

インターフェイスエンドポイントのプライベート DNS を有効にすると、デフォルトのリージョン DNS 名を使用して AgentCore に API リクエストを行うことができます。例えば、bedrock-agentcore.us-east-1.amazonaws.com

インターフェイスエンドポイントのエンドポイントポリシーを作成する

エンドポイントポリシーは、インターフェイスエンドポイントにアタッチできる IAM リソースです。デフォルトのエンドポイントポリシーでは、インターフェイスエンドポイントを介して AgentCore へのフルアクセスを許可します。VPC から AgentCore に許可されるアクセスを制御するには、カスタムエンドポイントポリシーをインターフェイスエンドポイントにアタッチします。

エンドポイントポリシーは以下の情報を指定します。

  • アクションを実行できるプリンシパル (AWS アカウント、IAM ユーザー、IAM ロール)。

    • AgentCore Gateway の場合、ゲートウェイの進入がAWS 署名バージョン 4 (SigV4) ベースでない場合 (たとえば、代わりに OAuth を使用する場合)、 Principalフィールドをワイルドカード * として指定する必要があります。SigV4 ベースの認証では、 を特定の AWS ID Principalとして定義できます。これは AgentCore ランタイムにも適用されます。

  • 実行可能なアクション。

  • このアクションを実行できるリソース。

詳細については、 AWS 「 PrivateLink ガイド」の「エンドポイントポリシーを使用してサービスへのアクセスを制御する」を参照してください。

さまざまなプリミティブのエンドポイントポリシー

次の例は、さまざまな AgentCore コンポーネントのエンドポイントポリシーを示しています。

Runtime
  1. 次のエンドポイントポリシーは、特定の IAM プリンシパルがエージェントのランタイムリソースを呼び出すことを許可します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:user/USERNAME" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/RUNTIME_ID" } ] }

    IAM 認証と OAuth 認証の混在

    InvokeAgentRuntime API は、VPC エンドポイント認可の 2 つのモードをサポートしています。次のポリシー例では、IAM プリンシパルと OAuth 呼び出し元の両方に、異なるエージェントランタイムリソースへのアクセスを許可します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent1" }, { "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent2" } ] }

    上記のポリシーでは、IAM プリンシパルのみが customAgent1InvokeAgentRuntime呼び出すことができます。また、IAM プリンシパルと OAuth 発信者の両方が をInvokeAgentRuntime呼び出すことができますcustomAgent2

    保護されたリソースメタデータ (PRM) エンドポイントポリシー

    GetRuntimeProtectedResourceMetadata API は、OAuth 2.0 で保護されたリソースメタデータ (RFC 9728) を実装します。クライアントは、認証情報を取得する前にこのエンドポイントを呼び出して、特定のエージェントのランタイムを保護する認可サーバーを検出します。このエンドポイントは設計上認証されていないため、エンドポイントポリシーで を * に設定Principalする必要があります。

    VPC エンドポイントポリシーは、PRM リクエストに適用されます。エンドポイントポリシーで明示的に が許可されていない場合bedrock-agentcore:GetRuntimeProtectedResourceMetadata、そのエンドポイントを介した PRM リクエストは HTTP 403 で拒否されます。VPC エンドポイントを介してアクセスされる OAuth 設定のエージェントランタイムには、認可サーバー検出用の PRM アクセスが必要です。

    注記

    データ境界の適用に関する拒否オールエンドポイントポリシーがあり、OAuth または JWT 認証を使用しない場合、PRM リクエストは自動的に拒否されます。追加の設定は必要ありません。

    次のエンドポイントポリシーは、ランタイム呼び出しを特定の IAM プリンシパルに制限しながら、すべての発信者が認可サーバー (PRM) を検出できるようにします。

    { "Statement": [ { "Sid": "AllowPRMDiscovery", "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "AllowInvoke", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/RUNTIME_ID" } ] }

    VPC エンドポイント (データ境界の適用) を介してクロスアカウント PRM ルックアップをブロックするには、PRM 許可ステートメントをアカウントのランタイムのみにスコープします。

    { "Statement": [ { "Sid": "AllowPRMOwnAccountOnly", "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "DenyCrossAccountPRM", "Effect": "Deny", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "NotResource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "AllowInvoke", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" } ] }
Code Interpreter Tool
  1. 次のエンドポイントポリシーは、特定の IAM プリンシパルが Code Interpreter リソースを呼び出すことを許可します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:code-interpreter/CODE_INTERPRETER_ID" } ] }
Memory
  1. ====== すべてのデータプレーンオペレーション

    次のエンドポイントポリシーは、特定の IAM プリンシパルが特定の AgentCore Memory の us-east-1 データプレーンオペレーションにアクセスすることを許可します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:ListActors", "bedrock-agentcore:ListSessions", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:BatchDeleteMemoryRecords", "bedrock-agentcore:BatchUpdateMemoryRecords" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID" } ] }

    すべてのメモリへのアクセス

    次のエンドポイントポリシーは、特定の IAM プリンシパルにすべてのメモリへのアクセスを許可します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:ListActors", "bedrock-agentcore:ListSessions", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:BatchDeleteMemoryRecords", "bedrock-agentcore:BatchUpdateMemoryRecords" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/*" } ] }

    APIsによるアクセス制限

    次のエンドポイントポリシーは、特定の IAM プリンシパルに、特定の AgentCore Memory リソースにイベントを作成するアクセス許可を付与します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID" } ] }
Browser Tool
  1. 次のエンドポイントポリシーは、特定の IAM プリンシパルが Browser Tool リソースに接続することを許可します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:ConnectBrowserAutomationStream" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:browser/BROWSER_ID" } ] }
Gateway
  1. 以下は、カスタムエンドポイントポリシーの例です。このポリシーをインターフェイスエンドポイントにアタッチすると、すべてのプリンシパルが Resourceフィールドで指定されたゲートウェイを呼び出すことができます。

    { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "bedrock:InvokeGateway" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1::gateway/my-gateway" } ] }
Identity
  1. 次のエンドポイントポリシーは、ID リソースへのアクセスを許可します。

    { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "*" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:workload-identity-directory/default/workload-identity/WORKLOAD_IDENTITY_ID" } ] }
Evaluations and Optimizations
  1. 次のエンドポイントポリシーは、特定の IAM プリンシパルが評価および最適化オペレーションにアクセスすることを許可します。

    { "Statement": [ { "Sid": "AllowBatchEvaluations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:ListBatchEvaluations", "bedrock-agentcore:StopBatchEvaluation", "bedrock-agentcore:DeleteBatchEvaluation" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:batch-evaluate/*" }, { "Sid": "AllowRecommendations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:StartRecommendation", "bedrock-agentcore:GetRecommendation", "bedrock-agentcore:ListRecommendations", "bedrock-agentcore:DeleteRecommendation" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:recommendation/*" }, { "Sid": "AllowEvaluators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvaluator", "bedrock-agentcore:GetEvaluator", "bedrock-agentcore:ListEvaluators", "bedrock-agentcore:UpdateEvaluator", "bedrock-agentcore:DeleteEvaluator" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:evaluator/*" }, { "Sid": "AllowOnlineEvaluationConfigs", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateOnlineEvaluationConfig", "bedrock-agentcore:GetOnlineEvaluationConfig", "bedrock-agentcore:ListOnlineEvaluationConfigs", "bedrock-agentcore:UpdateOnlineEvaluationConfig", "bedrock-agentcore:DeleteOnlineEvaluationConfig" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:online-evaluation-config/*" }, { "Sid": "AllowABTests", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateABTest", "bedrock-agentcore:GetABTest", "bedrock-agentcore:ListABTests", "bedrock-agentcore:UpdateABTest", "bedrock-agentcore:DeleteABTest" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:ab-test/*" }, { "Sid": "AllowConfigurationBundles", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateConfigurationBundle", "bedrock-agentcore:GetConfigurationBundle", "bedrock-agentcore:GetConfigurationBundleVersion", "bedrock-agentcore:ListConfigurationBundles", "bedrock-agentcore:ListConfigurationBundleVersions", "bedrock-agentcore:UpdateConfigurationBundle", "bedrock-agentcore:DeleteConfigurationBundle" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:configuration-bundle/*" } ] }