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