【问题标题】:How to use AWS sign v4 API to create a signed cookie?如何使用 AWS sign v4 API 创建签名 cookie?
【发布时间】:2021-09-19 06:35:23
【问题描述】:

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

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

目前我使用 cloudfront secret 签署自定义策略,并使用此值设置 cookie。

例子:

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

更多详情可以查看这个答案:https://stackoverflow.com/a/29636496/58129

我不确定如何将自定义策略融入 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 构建此规范请求?

【问题讨论】:

    标签: amazon-web-services amazon-cloudfront


    【解决方案1】:

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

    【讨论】:

    • 感谢您的快速回复!所以这是否意味着我没有什么可以改变的?如何确认我不会受到影响?
    • 是的,您不需要对 CloudFront 签名的 cookie 进行任何更改。/URL,Sigv4 仅影响您使用 Access key 和 Secret key(如 S3 签名 URL 生成)的主要位置,但 CloudFront 不使用其中任何一个,云端签名的 url/cookie 中都没有 sigv4 概念。 forums.aws.amazon.com/thread.jspa?messageID=819324&tstart=0此链接说明了我之前所说的内容。
    • 这很有意义!我在错误的树上吠叫:-)
    猜你喜欢
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    相关资源
    最近更新 更多