MediaConvert
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

实施客户端加密

客户端加密是您可与 AWS Elemental MediaConvert 结合使用的三个加密选项之一。利用客户端加密,可先加密您的输入文件,然后再将其上传到 Amazon S3。

您可以将客户端加密与另外两个加密选项结合使用。下图显示了这三个选项。


        三个矩形表示三个加密选项的每个选项。第一个是客户端加密,将突出显示。文本内容如下所示。客户端加密:先使用开放协议加密您的内容,然后再上传输入文件。保护传输中的输入文件。保护静态中的输入文件。

当您设置客户端加密时,可使用多个 AWS 服务,如下图所示。


        两个矩形表示您的本地系统和 AWS 云。在本地系统矩形,图标表示您执行的三个步骤。文本内容:1.使用 AWS Key Management Service (AWS KMS) 生成并加密数据加密密钥,或本地生成您的数据加密密钥,然后使用 AWS KMS 加密它。2.加密您的媒体文件。3.将您的加密数据密钥和作业设置发送到 AWS Elemental MediaConvert。在 AWS 云矩形中,图形表示 AWS KMS、Amazon S3 和 MediaConvert。两个矩形之间的箭头显示了您的本地系统从 KMS 中接收数据密钥的明文和加密版本,您将加密文件发送到您的 Amazon S3 输入存储桶,以及向您的作业设置中的 MediaConvert 提供数据密钥的加密版本。矩形中的箭头表示,AWS 云显示,由于您授予了允许它的权限,因此 MediaConvert 可以使用 AWS KMS 解密您的数据密钥,然后使用解密的数据密钥来解密您的媒体文件并运行您的转码作业。

将客户端加密与 AWS Elemental MediaConvert 结合使用

  1. 使用 AWS Key Management Service (AWS KMS) 创建客户托管的客户主密钥 (CMK)。有关过程,请参阅 AWS Key Management Service Developer Guide 中的创建密钥。有关概述,请参阅同一指南中的客户主密钥

  2. 创建数据密钥以用于加密您的内容。使用 AWS KMS 加密操作来通过您的客户托管 CMK 加密数据密钥。您必须使用此加密上下文:

    "{\"service\" : \"mediaconvert.amazonaws.com\" }"

    您可以采用以下方式之一创建并加密数据密钥:

    • 通过调用 KMS GenerateDataKey 来使用 AWS Key Management Service (AWS KMS) 创建数据密钥。对于 KeyId 参数,指定您在此过程的第一步中创建的 CMK 的 Amazon 资源名称 (ARN)。此操作会返回数据密钥的明文副本以及由 CMK 加密的副本。

    • 使用加密库(如 OpenSSL)创建一个高级加密标准 (AES) 密钥。然后,通过调用 AWS KMS 加密来加密该密钥。在您进行此调用时将在此过程的第一步中创建的 CMK 添加为 KeyId

      有关使用 OpenSSL 创建 AES 密钥的更多信息,请参阅 OpenSSL 文档

    有关更多信息,请参阅 AWS Key Management Service Developer GuideAWS Key Management Service 概念主题中的数据密钥

  3. 使用在上一步中创建的明文数据密钥加密您的内容,如下所示:

    • 使用以下 AES 加密模式之一:CTR、CBC 或 GCM。

    • 结合使用 16 字节的初始化向量与任何加密模式。或者,结合使用 12 字节的初始化向量与 GCM 或 CTR。

    有关使用 OpenSSL 的更多信息,请参阅 OpenSSL 文档

    注意

    AWS Elemental MediaConvert 不支持使用 Amazon S3 加密客户端加密的文件。

  4. 为每个加密的输入指定 AWS Elemental MediaConvert 解密设置,如下所示:

    1. Create job 页面上左侧的 Job 窗格中, 选择一个输入

    2. 在右侧的 Input (输入) 部分中,选择 Decryption settings (解密设置)

    3. 对于 Decryption mode (解密模式),选择您在此过程的先前步骤中用于加密内容的 AES 加密模式。

    4. 对于 Encrypted data key (加密的数据密钥),输入 AWS KMS GeneratedDataKeyEncrypt 操作返回的数据密钥的加密 版本。

      请确保您提供的是数据密钥的加密版本。提供明文形式的数据密钥会在您的系统和 MediaConvert 之间传输中公开密钥,从而使得您的内容易受攻击。此外,如果您提供的是明文数据密钥,您的作业将失败。

    5. 对于 Initialization vector (初始化向量),提供您在此过程的先前步骤中用于加密内容的 16 字节或 12 字节的初始化向量。

      注意

      您必须提供采用 base64 编码的初始化向量。您可以使用在线转换工具或在 Linux 命令行处通过以下命令来执行 base64 编码:echo -n "string-to-be-encoded-here" | base64-n 标志不包括您传入的字符串结尾中的任何换行符。

    6. 如果您在生成数据密钥时用于 AWS KMS 的 AWS 区域与您目前用于运行 AWS Elemental MediaConvert 作业的区域不同,请针对 AWS Region for decryption key (用于解密密钥的 AWS 区域) 指定该区域。

  5. 向您的 AWS Elemental MediaConvert AWS Identity and Access Management (IAM) 角色授予 kms:Decrypt 权限。使用 IAM 内联策略。要了解更多信息,请参阅以下主题:

    • 有关设置 AWS Elemental MediaConvert 要代入的 IAM 角色的更多信息,请参阅本指南的“入门”章节中的步骤 3:设置 IAM 权限

    • 有关使用内联策略授予 IAM 权限的更多信息,请参阅 IAM 用户指南添加 IAM 身份权限(控制台)中的为用户或角色嵌入内联策略过程。

    • 有关授予 AWS KMS 权限的 IAM 策略的示例(包括解密加密的内容),请参阅 AWS Key Management Service Developer Guide 中的客户托管策略示例