如何使用 AWS sign v4 API 创建签名 cookie?

How to use AWS sign v4 API to create a signed cookie?

我收到亚马逊发来的电子邮件,说 Sign v2 API 将在月底前过期。

但是cloudfront的文档中并没有提到如何使用sign v4API。 (https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html)

目前我使用云端秘密签署了自定义策略,并使用该值设置了一个 cookie。

示例:

Set-Cookie: 
Domain=optional domain name; 
Path=/optional directory path; 
Secure; 
HttpOnly; 
CloudFront-Signature=hashed and signed version of the policy statement

有关详细信息,您可以查看此答案:

我不确定如何将自定义策略纳入 Canonical 请求。 (https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html)

它希望我打包规范请求作为第一步。

CanonicalRequest =
  HTTPRequestMethod + '\n' +
  CanonicalURI + '\n' +
  CanonicalQueryString + '\n' +
  CanonicalHeaders + '\n' +
  SignedHeaders + '\n' +
  HexEncode(Hash(RequestPayload))

我想该策略必须存在于请求中的某处,对吧?

我如何构建对云端签名 cookie 的规范请求?

CloudFront 签名 URL/Cookies 与 Sigv4 请求不同。 Sigv4 是对 AWS 资源进行 API 调用,例如:连接到不同的 AWS 端点 EC2、S3 等以列出、进行任何更改等,而 CloudFront 签名 URL 是使用 RSA 创建的(Public-private ) 密钥对,与 Sigv4 无关。