本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在网关中使用拦截器
在网关上配置拦截器允许您在每次调用网关期间运行自定义代码。本节提供有关为您的网关实施和配置拦截器的指导。
概述
在网关上配置拦截器允许您在每次调用网关期间运行自定义代码。这对于以下用例很有用:
-
对工具或 MCP 操作实施精细的访问控制
-
转换目标请求和网关响应
-
实现自定义授权逻辑
可以在网关上配置两种类型的拦截器:
-
请求拦截器 -在网关调用目标之前执行。这些对于请求验证、转换或自定义授权很有用。
-
RESPONSE 拦截器 -在目标响应之后但在网关将响应发回给调用者之前执行。这些对于响应转换、筛选或添加自定义标头很有用。
一个网关最多可以配置一个请求拦截器和最多一个响应拦截器。您可以在同一个网关上配置这两种类型,但不能有多个相同类型的拦截器。
目前,只能使用 Lambda 函数配置拦截器。
安全最佳实践
在实施拦截器时,必须遵循安全最佳实践,以保护敏感信息并保持适当的访问控制。
-
默认情况下,除非将该
passRequestHeaders字段设置为 true,否则不会将请求标头传递给拦截器。使用此字段时要小心,因为请求标头可能包含身份验证令牌和凭据等敏感信息。一定要验证你的拦截器没有记录这些敏感信息。 -
请务必将您的网关执行角色限制为仅具有调用您用作拦截器的特定 lambda 函数的权限,而不是向您的执行角色授予通配符 lambda 权限。
-
为您的拦截器实现等导数 Lambda 函数。如果出现故障或超时,网关可能会重试对拦截器 Lambda 函数的请求。确保您的拦截器逻辑能够安全地处理重复调用,具体方法是实现递增密钥、跟踪已处理的请求或设计无状态操作,这些操作在使用相同的输入多次执行时会产生一致的结果。