

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

# Fine-grained 亚马逊 Bedrock AgentCore Gateway 的访问控制
<a name="gateway-fine-grained-access-control"></a>

Amazon Bedrock G AgentCore ateway 提供细粒度的访问控制功能，允许您控制哪些用户和代理可以访问特定的工具和资源。您可以通过网关拦截器实现自定义逻辑的访问控制，或使用基于资源的策略进行标准 Amazon式访问控制。有关基于资源的政策的信息，请参阅 Amazon Bedro AgentCore [ ck 的](resource-based-policies.md)Resource-based 政策。

## 使用拦截器进行访问控制
<a name="gateway-fine-grained-access-control-interceptors"></a>

网关拦截器为实现细粒度访问控制提供了最灵活的方式。REQUEST 拦截器在网关调用目标之前执行，从而使您能够：
+ 根据 JWT 声明或自定义逻辑验证用户权限
+ 控制对特定工具或 MCP 操作的访问权限
+ 实施基于角色或基于属性的访问控制
+ 根据用户上下文筛选或修改请求
+ 针对未经授权的请求返回授权错误

有关实现和配置拦截器的详细信息，包括授权逻辑示例，请参阅在网关中[使用拦截器。](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/gateway-interceptors.html)

## 访问控制级别
<a name="gateway-fine-grained-access-control-levels"></a>

Fine-grained Gateway 中的访问控制可以在多个级别上实现：

 **Gateway-level access**   
控制哪些用户或代理可以通过 OAuth 授权服务器或 Amazon IAM 身份验证连接到网关并进行身份验证。

 **Tool-level access**   
使用拦截器逻辑控制对网关内特定工具的访问权限，在工具执行之前验证权限。

 **Operation-level access**   
使用拦截器来验证操作权限，控制对特定 MCP 操作（例如`tools/list`或`tools/call`）的访问。

 **Parameter-level access**   
使用拦截器过滤或验证请求参数，控制对操作中特定参数或数据的访问。

## 实施方法
<a name="gateway-fine-grained-access-control-implementation"></a>

您可以使用以下方法实现精细的访问控制：

 **JWT 索赔验证 **   
使用拦截器检查 JWT 声明，例如用户角色、部门或自定义属性，以做出授权决策。

 **IAM 主体配对 **   
对于 IAM-authenticated 网关，通过匹配调用方的 IAM ARN 来实现访问控制。在 Cedar 策略`principal.id`中使用模式匹配来限制基于 Amazon 帐户、角色或用户的访问权限。

 **外部授权服务 **   
将拦截器配置为调用外部授权服务或数据库以验证用户权限。

 **请求上下文过滤 **   
使用拦截器根据用户上下文修改请求，例如添加用户特定的过滤器或限制数据范围。

## 最佳实践
<a name="gateway-fine-grained-access-control-best-practices"></a>
+  **最小权限原则 **-仅授予用户执行任务所需的最低访问权限。
+  **使用结构化声明 **-利用 JWT 声明将用户上下文和授权信息传送给您的拦截器。
+  **实现防故障默认设置 **-设计拦截器，在无法确定授权时默认拒绝访问。
+  **日志授权决策 **-确保您的拦截器记录访问决策以用于审计目的。