终止支持通知:2025 年 11 月 13 日, AWS 将停止对 AWS Element MediaStore al 的支持。2025 年 11 月 13 日之后,您将无法再访问 MediaStore 控制台或 MediaStore 资源。如需更多信息,请访问此博客文章
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
允许 Amazon CloudFront 访问您的 AWS Elemental MediaStore 容器
您可以使用 Amazon CloudFront 来提供您存储在 AWS Elemental MediaStore 容器中的内容。您可以通过下列方式之一来执行此操作:
-
使用来源访问控制 (OAC)-(推荐)如果您AWS 区域支持 CloudFront 的 OAC 功能,请使用此选项。
-
使用共享密钥如果您AWS 区域不支持 CloudFront 的 OAC 功能,请使用此选项。
使用来源访问控制 (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 访问您的容器(控制台)
打开 MediaStore 控制台,网址为 https://console.aws.amazon.com/mediastore/。
-
在 Containers (容器) 页面上,选择容器名称。
此时将显示容器详细信息页面。
-
在 容器策略 部分中,将附加一个授予对 Amazon CloudFront 的读取访问权限或更高权限的策略。
以下示例策略类似于通过 HTTPS 进行公共读取访问的示例策略,它符合这些要求,因为它允许任何通过 HTTPS 提交域访问请求的用户执行
GetObject
和DescribeObject
命令。此外,以下示例策略可以更好地保护您的工作流程,因为它仅在请求通过 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" } } } ]} -
在 Container CORS policy (容器 CORS 策略) 部分中,分配一个允许适当的访问级别的策略。
注意
只有在您希望提供对基于浏览器的播放器的访问权限时,才需要 CORS 策略。
-
记下以下详细信息:
-
分配到您的容器的数据终端节点。您可以在 容器 页面的 信息 部分中找到此信息。在 CloudFront 中,数据终端节点也称为源域名。
-
存储对象的容器中的文件夹结构。在 CloudFront 中,这也称为源路径。请注意,此设置为可选。有关源路径的更多信息,请参阅Amazon CloudFront 开发人员指南。
-
-
在 CloudFront 中,创建配置为从 AWS Elemental MediaStore 提供内容的分配。您将需要在上一步中收集的信息。
将策略附加到您的 MediaStore 容器后,您必须将 CloudFront 配置为仅对源请求使用 HTTPS 连接,并添加具有正确密钥值的自定义标头。
将 CloudFront 配置为通过 HTTPS 连接访问您的容器,并使用 Referer 标头的密钥值(控制台)
-
打开 CloudFront 控制台
-
在 Origins 页面上,选择您的 MediaStore 来源。
-
选择编辑。
-
对于协议,仅选择 HTTP。
-
在添加自定义标题部分中,选择添加标题。
-
在 “名称” 中,选择 Referer。对于该值,请使用您在容器策略中使用的相同
<secretValue>
字符串。 -
选择 “保存”,然后让更改进行部署。