【问题标题】:Amazon cloudfront. Usage of Trusted Signers亚马逊云端。可信签名者的使用
【发布时间】:2016-07-07 21:10:43
【问题描述】:

我们使用 cloudfront 来提供 s3 资源,但它受到限制。 在 c# 中,使用“AmazonCloudFrontUrlSigner.SignUrlCanned”创建预签名 url 时,它只要求使用根凭证生成的云端私钥,而不要求 IAM 用户凭证。

在分发行为中,我可以看到有一个选项可以指定“受信任的签名者”,但无法理解它的使用位置。任何有关此的信息都会很棒。还有一种方法可以使用 IAM 用户凭证生成预签名的云端 URL 吗?

【问题讨论】:

  • 您的 IAM 用户是否有权访问 Cloudfront 分发?
  • 是的,我的 IAM 用户可以访问它。

标签: amazon-web-services amazon-cloudfront aws-sdk


【解决方案1】:

CloudFront 不支持使用 IAM 凭证生成签名 URL,也不使用其他 AWS 服务通用的签名算法。

但是,该过程已完整记录。 CloudFront 有自己的方法来代表您的用户访问 S3 中的私有对象(原始访问身份),并且当使用与受信任的签名者关联的密钥对生成的签名 URL 或签名 cookie 时,它​​将透明地使用此机制。

请参阅Serving Private Content through CloudFront 了解有关机制和配置演练的说明。

【讨论】:

  • Cloudfront 密钥对是使用根凭据创建的。我仍然不明白我们在哪里使用“受信任的签名者”。在控制台信息图标中,它显示“选择是否要使用当前 AWS 账户和/或其他 AWS 账户来创建签名 URL 或签名 cookie”。但是在创建签名 url 时,我们只使用 cloudfront keypair 私钥而不是 AWS 账户 ID。此外,该帐户的访问密钥和密钥也没有使用。
  • 密钥对由您使用您的 AWS 账户的根凭证创建,CloudFront 使用它来识别您的 AWS 账户。此后,在 CloudFront URL 签名过程中不再使用 AWS 凭证,因为密钥对在首次创建时已链接到您的 AWS 账户,并且除非您使其无效,否则它会保持链接状态。将您自己的 AWS 账户设置为受信任的签署者意味着与您的账户关联的任何 CloudFront 密钥对都可用于签署 CloudFront URL。 CloudFront 不像 AWS 的其他部分那样集中在“区域”中,因此除了配置之外不使用 IAM。
  • 另一个正确答案,投反对票但没有解释。这让我大吃一惊。
【解决方案2】:

Cloudfront 确实使用 IAM 来生成签名 URL。在分发中有Trusted Signers 的配置,您可以在其中添加其他帐户 ID 以允许这些帐户生成签名的 url。这意味着受信任的签名者可以使用自己生成的密钥对来签署分发的 url。

您为 CloudFront 分配配置的任何可信签名者都需要为其账户设置自己的 CloudFront 密钥对,以便为您的 CloudFront 私有内容 Reference 签名请求

此密钥对与帐户相关联,并且在任何时间点最多只能有一个活动密钥对

【讨论】:

    猜你喜欢
    • 2014-03-01
    • 2017-03-03
    • 1970-01-01
    • 2013-02-19
    • 2012-11-29
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多