本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
限制對 AWS Elemental MediaStore 原始伺服器的存取
CloudFront 提供原始存取控制 (OAC),以限制對 AWS Elemental MediaStore 原始伺服器的存取。
建立新的原始存取控制
完成下列主題中說明的步驟,在 CloudFront 中設定新的原始存取控制。
先決條件
在建立和設定原始存取控制之前,您必須擁有具 MediaStore 原始伺服器的 CloudFront 分佈。
授予 CloudFront 存取 MediaStore 原始伺服器的許可
在您建立原始存取控制或在 CloudFront 分佈中設定它之前,請確定 CloudFront 具有存取 MediaStore 原始伺服器的許可。在建立 CloudFront 分佈之後,但在將 OAC 新增至分佈組態中的 MediaStore 原始伺服器之前,請執行此作業。
使用 MediaStore 容器政策允許 CloudFront 服務主體 (cloudfront.amazonaws.com
) 存取原始伺服器。使用政策中的 Condition
元素,僅當請求代表包含 S3 原始伺服器的 CloudFront 分佈時,才允許 CloudFront 存取 MediaStore 容器。這是您要新增 OAC 的 MediaStore 原始伺服器分佈。
以下是允許 CloudFront 分佈存取 MediaStore 原始伺服器的 MediaStore 容器政策範例。
範例 允許啟用 OAC 之 CloudFront 分佈的唯讀存取的 MediaStore 容器政策
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject" ], "Resource": "arn:aws:mediastore:
<region>
:111122223333
:container/<container name>
/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333
:distribution/<CloudFront distribution ID>
" }, "Bool": { "aws:SecureTransport": "true" } } } ] }
範例 允許啟用 OAC 之 CloudFront 分佈的讀取和寫入存取的 MediaStore 容器政策
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadWrite", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject", "mediastore:PutObject" ], "Resource": "arn:aws:mediastore:
<region>
:111122223333
:container/<container name>
/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333
:distribution/<CloudFront distribution ID>
" }, "Bool": { "aws:SecureTransport": "true" } } } ] }
注意
若要允許寫入存取權,您必須設定 Allowed HTTP methods (允許的 HTTP 方法),以將 PUT
包含在 CloudFront 分發的行為設定中。
建立原始存取控制
若要建立 OAC,您可以使用 AWS Management Console AWS CloudFormation、 AWS CLI、 或 CloudFront API。
原始存取控制的進階設定
CloudFront 來原始存取控制功能包含僅適用於特定使用案例的進階設定。除非您對進階設定有特定需求,否則請使用建議的設定。
原始存取控制包含名為簽署行為 (在主控台中) 或 SigningBehavior
(在 API、CLI 和 中) 的設定 AWS CloudFormation。此設定提供下列選項:
- 永遠簽署原始請求 (建議設定)
-
我們建議使用此設定,於主控台中名為Sign requests (recommended) (簽署請求 (建議使用)),或於 API、CLI 和 AWS CloudFormation中的
always
。使用此設定時,CloudFront 一律會簽署傳送至 MediaStore 原始伺服器的所有請求。 - 絕不簽署原始伺服器請求
-
此設定於主控台中命名為 Do not sign requests (請勿簽署請求),或 API、CLI 和 AWS CloudFormation中的
never
。使用此設定,關閉使用此原始存取控制之所有分佈中的所有原始伺服器的原始存取控制。與從所有使用其原始伺服器和分佈中逐一移除原始存取控制相比,此可節省時間和精力。使用此設定時,CloudFront 不會簽署傳送至 MediaStore 原始伺服器的任何請求。警告
如要使用此設定,MediaStore 原始伺服器必須可公開存取。如果您對無法公開存取的 MediaStore 原始伺服器使用此設定,CloudFront 將無法存取該原始伺服器。MediaStore 原始伺服器會將錯誤傳回 CloudFront,而 CloudFront 會將這些錯誤傳遞給檢視器。如需詳細資訊,請參閱透過 HTTPS 的公有讀取存取的 MediaStore 容器政策範例。
- 請勿覆寫檢視器 (用戶端)
Authorization
標題 -
此設定於主控台中命名為 Do not override authorization header (請勿覆寫授權標頭),或於 API、CLI 和 AWS CloudFormation中的
no-override
。如果您想要 CloudFront 僅於對應的檢視器請求不包含Authorization
標題時簽署原始伺服器請求,請使用此設定。利用此設定,當檢視器請求存在時,CloudFront 會傳遞來自檢視器請求的Authorization
標題,但在檢視器請求不包含Authorization
標題時對原始伺服器請求進行簽名 (新增其自己的Authorization
標題)。警告
如要從檢視器請求傳遞
Authorization
標題,您必須將Authorization
標題新增至快取政策中,適用於使用與此原始存取控制相關聯之 MediaStore 原始伺服器的所有快取行為。