gpt4 book ai didi

amazon-web-services - 为什么 AccessKeyId 包含在 s3 预签名 URL 中?

转载 作者:行者123 更新时间:2023-12-04 11:43:01 26 4
gpt4 key购买 nike

为什么AccessKeyId包含在 s3 预签名 URL 中?真的有必要吗?预签名 URL 已包含 Signature字段,为什么它仍然需要 AccessKeyId还有?不会是 Signature充足的?

最佳答案

签名用于证明两件事:

  • 签名者授权此特定请求,以及
  • 签名者拥有与指定的访问 key ID 关联的 key 。

  • 重要的是......签名实际上不包含任何有意义的信息。要么对,要么错。

    它是基于 HMAC 的公共(public)(发出的请求)和私有(private)( key )信息的散列。该服务不会“解码”它或解释它或从中学习任何东西。

    相反,该服务——使用访问 key ID——查找相关的 key ,¹ 接受请求;并在内部生成您应该为同一请求生成的签名...然后它会检查这是否是您实际生成的内容。² 如果不是,则错误为 SignatureDoesNotMatch .该错误并不更具体,因为任何给定请求的签名在任何时候都只有一个可能的值。任何其他签名都只是错误的签名。

    但是必须指定 access-key-id 以便服务知道谁在发出请求。签名不包含任何可逆/可解码/可解密信息。

    ¹ 在使用签名版本 4 时查找关联的 key 可能过于简单化,因为有从 IAM 用户的 key 派生的(日期、区域、服务、签名) key 层......并且结构和嵌套意味着单个服务只能访问他们需要的相关值。

    ² 您生成的短语很重要,因为可能会误解预签名 URL 的来源。这些完全在您的代码中生成,不与服务交互。在实际使用之前,S3 不知道任何预签名 URL 的存在。这具有有时可能有用的含义;例如,完全可以为尚不存在的对象生成预签名 URL,然后再创建该对象。此外,禁用或删除用于生成预签名 URL 的 aws-access-key-id 会立即使该 key 生成的所有 URL 无效。

    关于amazon-web-services - 为什么 AccessKeyId 包含在 s3 预签名 URL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55543956/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com