允许 Amazon CloudFront 访问您的 AWS Elemental MediaStore 容器 - AWS元素 MediaStore

终止支持通知:2025 年 11 月 13 日, AWS 将停止对 AWS Element MediaStore al 的支持。2025 年 11 月 13 日之后,您将无法再访问 MediaStore 控制台或 MediaStore 资源。如需更多信息,请访问此博客文章

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

允许 Amazon CloudFront 访问您的 AWS Elemental MediaStore 容器

您可以使用 Amazon CloudFront 来提供您存储在 AWS Elemental MediaStore 容器中的内容。您可以通过下列方式之一来执行此操作:

使用来源访问控制 (OAC)

您可以使用 Amazon CloudFront 的源站访问控制 (OAC) 功能,通过更高的安全性来保护 AWS Elemental MediaStore 的来源。您可以对 MediaStore 来源的 CloudFront 请求启用AWS签名版本 4 (SigV4),并设置 CloudFront 应何时以及是否应签署请求。您可以通过控制台、API、软件开发工具包或 CLI 访问 CloudFront 的 OAC 功能,使用该功能无需支付额外费用。

有关在 MediaStore 中使用 OAC 功能的更多信息,请参阅 Amazon CloudFront 开发者指南中的限制对 MediaStore 来源的访问。

使用共享密钥

如果您AWS 区域不支持 Amazon CloudFront 的 OAC 功能,则可以将策略附加到您的 AWS Elemental MediaStore 容器,授予对 CloudFront 的读取权限或更高的读取权限。

注意

如果您AWS 区域支持 OAC 功能,我们建议您使用该功能。以下过程要求您使用共享密钥配置 MediaStore 和 CloudFront,以限制对MediaStore 容器的访问。为了遵循最佳安全实践,此手动配置需要定期轮换密钥。通过 MediaStore 来源上的 OAC,您可以指示 CloudFront 使用 SigV4 签署请求并将其转发到 MediaStore 进行签名匹配,从而无需使用和轮换密钥。这可确保在提供媒体内容之前自动验证请求,从而使通过 MediaStore 和 CloudFront 交付媒体内容变得更加简单和安全。

允许 CloudFront 访问您的容器(控制台)
  1. 打开 MediaStore 控制台,网址为 https://console.aws.amazon.com/mediastore/。

  2. Containers (容器) 页面上,选择容器名称。

    此时将显示容器详细信息页面。

  3. 容器策略 部分中,将附加一个授予对 Amazon CloudFront 的读取访问权限或更高权限的策略。

    以下示例策略类似于通过 HTTPS 进行公共读取访问的示例策略,它符合这些要求,因为它允许任何通过 HTTPS 提交域访问请求的用户执行 GetObjectDescribeObject 命令。此外,以下示例策略可以更好地保护您的工作流程,因为它仅在请求通过 HTTPS 连接发出且包含正确的 Referer 标头时才允许 CloudFront 访问 MediaStore 对象。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CloudFrontRead", "Effect": "Allow", "Principal": "*", "Action": [ "mediastore:GetObject", "mediastore:DescribeObject" ], "Resource": "arn:aws:mediastore:<region>:<owner acct number>:container/<container name>/*", "Condition": { "StringEquals": { "aws:Referer": "<secretValue>" }, "Bool": { "aws:SecureTransport": "true" } } } ]}
  4. Container CORS policy (容器 CORS 策略) 部分中,分配一个允许适当的访问级别的策略。

    注意

    只有在您希望提供对基于浏览器的播放器的访问权限时,才需要 CORS 策略

  5. 记下以下详细信息:

    • 分配到您的容器的数据终端节点。您可以在 容器 页面的 信息 部分中找到此信息。在 CloudFront 中,数据终端节点也称为源域名

    • 存储对象的容器中的文件夹结构。在 CloudFront 中,这也称为源路径。请注意,此设置为可选。有关源路径的更多信息,请参阅Amazon CloudFront 开发人员指南

  6. 在 CloudFront 中,创建配置为从 AWS Elemental MediaStore 提供内容的分配。您将需要在上一步中收集的信息。

将策略附加到您的 MediaStore 容器后,您必须将 CloudFront 配置为仅对源请求使用 HTTPS 连接,并添加具有正确密钥值的自定义标头。

将 CloudFront 配置为通过 HTTPS 连接访问您的容器,并使用 Referer 标头的密钥值(控制台)
  1. 打开 CloudFront 控制台

  2. Origins 页面上,选择您的 MediaStore 来源。

  3. 选择编辑

  4. 对于协议,仅选择 HTTP

  5. 添加自定义标题部分中,选择添加标题

  6. 在 “名称” 中,选择 Referer。对于该,请使用您在容器策略中使用的相同<secretValue>字符串。

  7. 选择 “保存”,然后让更改进行部署。