相关疑难解决方法(0)

如何将 API Gateway 的 AWS 签名 v4 预签名链接中的过期时间从默认 5 分钟增加?

我正在尝试生成指向 API 网关(使用 IAM 身份验证)的预签名链接,因此客户端可以访问我在此 API 网关后面的 Lambda 函数之一,而无需对请求进行身份验证。这主要是为了方便客户端,因此它可能会透明地使用响应中的一些链接,无论它们指向同一个经过身份验证的 API 网关、某个 S3 存储桶还是 Internet 中的任意 URL。

为此,我使用查询参数制作 API 签名 v4(请参阅文档示例

因此,如果我尝试签署以下针对us-west-2区域和execute-api服务范围的链接:

https://example.com/some/path?some=params
Run Code Online (Sandbox Code Playgroud)

我将得到以下结果(使用 Node.jsaws4,但在这里无关紧要):

https://example.com/some/path?some=params&
X-Amz-Security-Token=<Session Token Removed>
X-Amz-Date=20210330T180303Z&
X-Amz-Algorithm=AWS4-HMAC-SHA256&
X-Amz-Credential=<Access Key Removed>%2F20210330%2Fus-west-2%2Fexecute-api%2Faws4_request&
X-Amz-SignedHeaders=host&
X-Amz-Signature=884f132ad6f0c7a850e6b1d22b5fed169c13e2189b6e0d0d568d11f967f4a8bd
Run Code Online (Sandbox Code Playgroud)

它有效!但只有在一代后的前 5 分钟......

五分钟过去后,我将收到以下错误响应:

https://example.com/some/path?some=params
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅对此问题的回复

我尝试X-Amz-Expires使用各种值(小于和大于 300 秒)添加文档中提到的查询参数,但没有运气:行为不会改变。

对于由 IAM 实例凭证生成的链接,我至少需要几个小时,最多需要6 个小时,因为链接正在由另一个 Lambda 函数签名。

有没有办法增加 API Gateway 访问的预签名链接有效期?

amazon-web-services pre-signed-url aws-api-gateway sigv4

2
推荐指数
1
解决办法
448
查看次数