

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用接口 VPC 终端节点 (Amazon PrivateLink) 在您的 VPC 和您的 Amazon Bedrock AgentCore 资源之间创建私有连接
<a name="vpc-interface-endpoints"></a>

您可以使用 Amazon PrivateLink 在您的 VPC 和 Amazon Bedrock AgentCore 之间创建私有连接。您可以像在 VPC 中 AgentCore 一样进行访问，无需使用互联网网关、NAT 设备、VPN 连接或 Direct Connect 连接。您的 VPC 中的实例不需要公有 IP 地址即可访问 AgentCore。

您可以通过创建由提供支持的*接口端点*来建立此私有连接 Amazon PrivateLink。我们将在您为接口端点启用的每个子网中创建一个端点网络接口。这些是请求者托管的网络接口，用作发往 AgentCore 的流量的入口点。

有关更多信息，请参阅* Amazon PrivateLink 指南 Amazon PrivateLink*中的[通过访问 Amazon 服务](https://docs.amazonaws.cn/vpc/latest/privatelink/privatelink-access-aws-services.html)。

## 的注意事项 AgentCore
<a name="vpc-endpoint-considerations"></a>

在为设置接口终端节点之前 AgentCore，请查看* Amazon PrivateLink 指南*中的[注意事项](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints)。

AgentCore 提供了三个 Amazon PrivateLink 端点：
+  **数据平面端点**-`com.amazonaws.region.bedrock-agentcore` 
+  **控制平面端点**-`com.amazonaws.region.bedrock-agentcore-control` 
+  **网关终端节点**-`com.amazonaws.region.bedrock-agentcore.gateway` 

下表显示了每个 AgentCore 基元的 Amazon PrivateLink 支持状态：


| 原语 | 数据面板 | 控制面板 | 
| --- | --- | --- | 
| 运行时 | 支持 | 支持 | 
| 内存 | 支持 | 支持 | 
| Built-in 工具（代码解释器、浏览器工具） | 支持 | 支持 | 
| 身份 | 支持 | 支持 | 
| 网关 | 支持 | 支持 | 
| 评估和优化 | 支持 | 支持 | 
| 策略 | 支持 | 支持 | 

有关提供 AgentCore 接口终端节点的 Amazon 区域列表，请参阅[支持的 Amazon 区域](agentcore-regions.md)。

**重要**  
数据平面 API 支持用于身份验证的 Amazon 签名版本 4 (Sigv4) 标头和持有者令牌 (OAuth) 身份验证。VPC 终端节点策略只能根据 IAM 委托人限制来电者，而不能基于 OAuth 用户。要使通过 VPC 终端节点的 OAuth-based 请求成功，必须在终端节点策略中将委托人设置为\*。否则，只有 Sigv4 许可名单的呼叫者才能通过 VPC 终端节点成功拨打电话。

 Amazon 支持 IAM 全局条件上下文密钥。默认情况下，允许通过接口终端节点进行完全访问。 AgentCore 您可以通过将终端节点策略附加到接口终端节点或将安全组与端点网络接口关联来控制访问权限。

## 为创建接口终端节点 AgentCore
<a name="vpc-endpoint-create"></a>

您可以创建用于 AgentCore 使用 Amazon VPC 控制台或 Amazon 命令行界面 (Amazon CLI) 的接口终端节点。有关更多信息，请参阅* Amazon PrivateLink 指南*中的[创建接口终端节点](https://docs.amazonaws.cn/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

 AgentCore 使用以下服务名称格式创建接口终端节点：
+ 所有数据平面基元（运行时、 Built-in 工具、内存、身份）：`com.amazonaws.region.bedrock-agentcore`
+ 对于 AgentCore 网关：`com.amazonaws.region.bedrock-agentcore.gateway`
+ 对于控制平面操作（运行时和内存管理）：`com.amazonaws.region.bedrock-agentcore-control`

如果您为接口终端节点启用私有 DNS，则 AgentCore 可以使用其默认区域 DNS 名称向发出 API 请求。例如 `bedrock-agentcore.us-east-1.amazonaws.com`。特别是对于 Gateway 来说，它看起来像：`*.gateway.bedrock-agentcore.us-east-1.amazonaws.com`。

## 为接口端点创建端点策略
<a name="vpc-endpoint-policy"></a>

端点策略是一种 IAM 资源，您可以将其附加到接口端点。默认终端节点策略允许 AgentCore 通过接口终端节点进行完全访问。要控制允许 AgentCore 从您的 VPC 访问权限，请将自定义终端节点策略附加到接口终端节点。

端点策略指定以下信息：
+ 可以执行操作的委托人（Amazon 账户、IAM 用户和 IAM 角色）。
  + 对于 AgentCore Gateway，如果您的网关入口不是基于[Amazon 签名版本 4 (Sigv4)](https://docs.amazonaws.cn/AmazonS3/latest/API/sig-v4-authenticating-requests.html) 的（例如，如果您改用 OAuth），则必须将该`Principal`字段指定为通配符 \*。基于 Sigv4 的身份验证允许您将定义`Principal`为特定 Amazon 身份。这也适用于 AgentCore 运行时。
+ 可执行的操作。
+ 可对其执行操作的资源。

有关更多信息，请参阅* Amazon PrivateLink 指南*中的[使用终端节点策略控制对服务的访问权限](https://docs.amazonaws.cn/vpc/latest/privatelink/vpc-endpoints-access.html)。

 **各种原语的端点策略** 

以下示例显示了不同 AgentCore 组件的终端节点策略：

**Example**  

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 终端节点授权。以下示例策略允许 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 委托人`InvokeAgentRuntime`拨打电话`customAgent1`。它还允许 IAM 委托人和 OAuth 调用者拨打电话。`InvokeAgentRuntime` `customAgent2`

1. 以下终端节点策略允许特定的 IAM 委托人调用代码解释器资源。

   ```
   {
      "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"
         }
      ]
   }
   ```

1. ====== 所有数据平面操作

   以下终端节点策略允许特定的 IAM 委托人访问特定内存的 us-east-1 数据平面操作。 AgentCore 

   ```
   {
      "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/*"
         }
      ]
   }
   ```

    **API 的访问限制** 

   以下终端节点策略向特定 IAM 委托人授予在特定 AgentCore 内存资源中创建事件的权限。

   ```
   {
      "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"
         }
      ]
   }
   ```

1. 以下终端节点策略允许特定的 IAM 委托人连接到浏览器工具资源。

   ```
   {
      "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"
         }
      ]
   }
   ```

1. 以下是自定义端点策略的示例。当您将此策略附加到接口终端节点时，它允许所有委托人调用该`Resource`字段中指定的网关。

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
               "bedrock-agentcore:InvokeGateway"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:gateway/my-gateway"
         }
      ]
   }
   ```

1. 以下端点策略允许访问身份资源。

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
               "*"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:workload-identity-directory/default/workload-identity/WORKLOAD_IDENTITY_ID"
         }
      ]
   }
   ```

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/*"
         }
      ]
   }
   ```