本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
限制對 AWS Elemental MediaStore 原點的訪問
CloudFront 提供原始存取控制 (OAC) 來限制對來源的存取 AWS Elemental MediaStore 。
建立新的原始存取控制
完成下列主題中描述的步驟,以在中設定新的來源存取控制 CloudFront。
必要條件
在建立和設定原始存取控制之前,您必須擁有具有 MediaStore 來源的 CloudFront 分佈。
授予原始訪問控制訪問 MediaStore 來源的權限
在您建立原始存取控制或在 CloudFront發行版中進行設定之前,請確定 OAC 具有存取來 MediaStore 源的權限。在建立 CloudFront 發行版之後,但在將 OAC 新增至散發組態中的 MediaStore原點之前,請執行此動作。
若要授與 OAC 存取來 MediaStore 源的權限,請使用 MediaStore 容器原則允許 CloudFront 服務主體 (cloudfront.amazonaws.com
) 存取來源。使用原則中的Condition
元素,只有在要求代表包含 MediaStore 原始位置的 CloudFront 發佈時,才允許 CloudFront 存取 MediaStore 容器。
以下是允許 CloudFront OAC 存取來源的 MediaStore 容器 MediaStore 原則範例。
範例 MediaStore 允許 CloudFront OAC 唯讀存取的容器原則
{ "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" } } } ] }
範例 MediaStore 允許 CloudFront OAC 讀取和寫入存取權的容器原則
{ "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" } } } ] }
注意
若要允許寫入存取權,您必須設定允許的 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
標頭,您必須針對使用與此原始存取控制相關聯的來 MediaStore 源的所有快取行為,將Authorization
標頭新增至快取原則。