使用 SIGv4 驗證傳送給 Amazon S3 的請求 - AWS Elemental MediaTailor

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 SIGv4 驗證傳送給 Amazon S3 的請求

適用於 Amazon S3 的簽名版本 4 (SIGv4) 是一種簽署通訊協定,用於驗證傳送給 Amazon S3 的HTTPS請求。當您使用適用於 Amazon S3 的 Sigv4 時,請在HTTPS要求中 MediaTailor 包含一個已簽署的授權標頭,以作為您的來源使用的 Amazon S3 儲存貯體。如果簽名的授權標頭有效,則您的來源滿足請求。如果無效,請求將失敗。

有關 Sigv4 的一般資訊 AWS Key Management Service,請參閱 Amazon S3 API 參考資料中的驗證請求 (AWS簽名版本 4) 主題。

注意

MediaTailor 始終使用 Sigv4 向這些起源簽署請求。

要求

如果您為來源位置啟用適用於 Amazon S3 的 Sigv4 身份驗證,則必須符合以下要求:

  • 您必須允許在中授予媒體寄存器 .amazonaws.com 主要存取權限 MediaTailor 來存取您的 Amazon S3 儲存貯體。 IAM如需有關在中配置存取權的資訊IAM,請參閱中的存取管理AWS Identity and Access Management 用戶指南

  • Mediatailor.amazonaws.com 服務主體必須具有讀取來源套件組態所參考的所有頂層資訊清單的權限。VOD

  • 的調用者API必須具有 s3: GetObject IAM 權限才能讀取 MediaTailor VOD源包配置引用的所有頂級清單。

  • 您的 MediaTailor 來源位置基礎URL必須遵循 Amazon S3 虛擬託管式請求URL格式。例如,HTTPS://bucket-name.s3。Region. 亞馬遜. COM/key-name。 如需 Amazon S3 託管虛擬樣式存取的相關資訊,請參閱虛擬主機樣式請求。

MediaTailor 簽署原始請求

您可以使用 Sigv4 簽署對有效的 MediaTailor 請求 AWS 來源包括 Amazon S3、通道組合和 MediaPackage V2。這允許來源知道正在發出的請求 MediaTailor,並且您可以限制只對 MediaTailor 請求的訪問。如果您不限制只存取 MediaTailor 請求,其他 MediaTailor 客戶可以透過自己的 MediaTailor 播放設定存取您的來源。

我們將簽署請求的起源是 AWS Key Management Service、通道組件和 MediaPackage V2。原點URLs必須如下所示:


mediapackagev2.<region>.amazonaws.com

channel-assembly.mediatailor.<region>.amazonaws.com

s3.<region>.amazonaws.com

重要

使用 https 來簽署對來源的請求URLs。如果您的 Origin 未設定為使用HTTPS, MediaTailor 將不會使用 Sigv4 簽署原始請求。

來源限制存取權限的範例原IAM則 MediaTailor

下列IAM原則顯示如何限制存取的範例 MediaTailor。

Amazon S3

在帳戶範圍內:

{ "Effect": "Allow", "Principal": {"Service": "mediatailor.amazonaws.com"}, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::mybucket/*", "Condition": { "StringEquals": {"AWS:SourceAccount": "123456789012"} } }

範圍為播放配置:ARN

{ "Effect": "Allow", "Principal": { "Service": "mediatailor.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::mybucket/*", "Condition": { "StringEquals": { "AWS:SourceArn”: “arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/test” } } }

MediaPackage V2

在帳戶範圍內:

{ "Effect": "Allow", "Principal": { "Service": "mediatailor.amazonaws.com" }, "Action": “mediapackagev2:GetObject", "Resource": "arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } } }

範圍為播放配置:ARN

{ "Effect": "Allow", "Principal": { "Service": "mediatailor.amazonaws.com" }, "Action": “mediapackagev2:GetObject", "Resource": "arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint", "Condition": { "StringEquals": { "AWS:SourceArn”: “arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/test” } } }

通道組件

在帳戶範圍內:

{ "Effect": "Allow", "Principal": { "Service": "mediatailor.amazonaws.com" }, "Action": “mediatailor:GetManifest", "Resource": "arn:aws:mediatailor:us-west-2:123456789012:channel/ca-origin-channel", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } } }

範圍為播放配置:ARN

{ "Effect": "Allow", "Principal": { "Service": "mediatailor.amazonaws.com" }, "Action": “mediatailor:GetManifest", "Resource": "arn:aws:mediatailor:us-west-2:123456789012:channel/ca-origin-channel", "Condition": { "StringEquals": { "AWS:SourceArn”: “arn:aws:mediatailor:us-west-2:123456789012:playbackConfiguration/test” } } }