使用适用于亚马逊 S3 的 Sigv4 - AWS Elemental MediaTailor

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

使用适用于亚马逊 S3 的 Sigv4

适用于亚马逊 S3 的签名版本 4 (Sigv4) 是一种签名协议,用于对向亚马逊 S3 发出的请求进行身份验证。HTTPS当您使用 Sigv4 for Amazon S3 时,在向用作源的 Amazon S3 存储桶发出的HTTPS请求中 MediaTailor 包含签名的授权标头。如果签名的授权标头有效,则您的来源满足请求。如果无效,则请求失败。

有关 sigV4 的一般信息 AWS Key Management Service,请参阅 Amazon S3 参考中的身份验证请求(AWS签名版本 4)主题。API

注意

MediaTailor 始终使用 Sigv4 签署对这些来源的请求。

要求

如果您为来源位置激活 SigV4 for Amazon S3 身份验证,则必须满足以下要求:

  • 您必须通过授予 m ediatailor.amazonaws.com 中的委托人访问权限来允许 MediaTailor 访问您的亚马逊 S3 存储桶。IAM有关在中配置访问权限的信息IAM,请参阅《AWS Identity and Access Management 用户指南》中的访问管理

  • m ediatailor.amazonaws.com 服务主体必须有权读取源包配置引用的所有顶级清单。VOD

  • 的调用者API必须具有 s3: GetObject IAM 权限才能读取 MediaTailor VOD源包配置引用的所有顶级清单。

  • 您的 MediaTailor 来源位置库URL必须遵循 Amazon S3 虚拟托管式请求URL格式。例如,https://bucket-name.s3。Region.amazonaws.com/key-name。 有关 Amazon S3 托管虚拟式访问的信息,请参阅虚拟托管式请求。

MediaTailor Sigv4 对源请求进行签名

您可以使用 SigV4 签名来处理 MediaTailor 向有效 AWS 来源(包括 Amazon S3、Channel Assembly 和 MediaPackage V2)发出的请求。这允许源站知道请求是由发出的 MediaTailor,并且您可以将访问权限限制为仅限于 MediaTailor 请求。如果您不将访问权限限制为仅限于 MediaTailor 请求,则其他 MediaTailor 客户将能够通过自己的 MediaTailor 播放配置访问您的源。

我们将签署请求的来源是 AWS Key Management Service Channel Assembly 和 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” } } }