加密选项 - Amazon EMR

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

加密选项

在 Amazon 4.8.0 及更高EMR版本中,您可以使用安全配置来指定用于加密静态数据、传输中的数据或两者的设置。启用静态数据加密后,您可以选择加密 Amazon S3 中的EMRFS数据、本地磁盘中的数据或两者兼而有之。您创建的每个安全配置都存储在 Amazon 中,EMR而不是存储在集群配置中,因此无论何时创建集群,您都可以轻松地重复使用配置来指定数据加密设置。有关更多信息,请参阅 创建安全配置

下图显示了安全配置可用的不同数据加密选项。

Amazon 提供多种传输中加密和静态加密选项。EMR

以下加密选项也可用,并且不是使用安全配置来配置的:

  • 或者,在 Amazon 4.1.0 及更高EMR版本中,您可以选择在中配置透明加密。HDFS有关更多信息,请参阅《亚马逊EMR发行指南》中的 “亚马逊HDFSEMR上的透明加密”。

  • 如果您使用的是不支持安全配置的 Amazon EMR 发行版,则可以手动为 Amazon S3 中的EMRFS数据配置加密。有关更多信息,请参阅使用EMRFS属性指定 Amazon S3 加密

  • 如果您使用的是 5.24.0 之前的 Amazon EMR 版本,则只有在使用自定义卷时才支持加密的EBS根设备卷。AMI有关更多信息,请参阅《亚马逊EMR管理指南》中的AMI使用加密的 Amazon EBS 根设备卷创建自定义卷。

注意

从 Amazon 5.24.0 EMR 版本开始,当您指定 AWS KMS 为密钥提供商时,您可以使用安全配置选项来加密EBS根设备和存储卷。有关更多信息,请参阅 本地磁盘加密

数据加密需要密钥和凭证。安全配置使您可以灵活地从多个选项中进行选择,包括由管理的密钥 AWS Key Management Service、由 Amazon S3 管理的密钥以及您提供的自定义提供商提供的密钥和证书。 AWS KMS 用作密钥提供商时,加密密钥的存储和使用将产生费用。有关更多信息,请参阅AWS KMS 定价

在指定加密选项前,要确定所用的密钥和凭证管理系统,因此您可以先创建密钥和凭证或您在加密设置中指定的自定义提供程序。

对 Amazon S3 中的EMRFS数据进行静态加密

Amazon S3 加密适用于从亚马逊 S3 读取和写入的亚马逊EMR文件系统 (EMRFS) 对象。启用静态加密时,您可以将 Amazon S3 服务器端加密 (SSECSE) 或客户端加密 () 指定为默认加密模式。(可选)您可以使用 Per bucket encryption overrides (每存储桶加密覆盖) 为单个存储桶指定不同的加密方法。无论是否启用了 Amazon S3 加密,传输层安全 (TLS) 都会对EMR集群节点和 Amazon S3 之间传输的EMRFS对象进行加密。有关 Amazon S3 加密的更多信息,请参阅《亚马逊简单存储服务用户指南》中的使用加密保护数据

注意

使用时 AWS KMS,会收取加密密钥的存储和使用费用。有关更多信息,请参阅AWS KMS 定价

Amazon S3 服务器端加密

设置 Amazon S3 服务器端加密时,Amazon S3 在向磁盘写入数据时会在对象级别加密数据,并在访问数据时对数据进行解密。有关更多信息SSE,请参阅《Amazon 简单存储服务用户指南》中的使用服务器端加密保护数据

在 Amazon SSE 中指定时,您可以在两种不同的密钥管理系统之间进行选择EMR:

  • SSE-S3 — 亚马逊 S3 为您管理密钥。

  • SSE-KMS — 您可以使用 AWS KMS key 来设置适用于 Amazon 的政策EMR。有关 Amazon 密钥要求的更多信息EMR,请参阅AWS KMS keys 用于加密

SSE使用买家提供的密钥 (SSE-C) 不适用于亚马逊。EMR

Amazon S3 客户端加密

使用 Amazon S3 客户端加密,Amazon S3 的加密和解密将在集群的EMRFS客户端中进行。在对象上载到 Amazon S3 之前对其进行加密,并在下载后对其进行解密。您指定的提供程序会提供客户端使用的加密密钥。客户端可以使用 AWS KMS (CSE-KMS) 提供的密钥或提供客户端根密钥的自定义 Java 类 (CSE-C)。CSE-KMS 和 CSE-C 之间的加密细节略有不同,具体取决于指定的提供程序以及正在解密或加密的对象的元数据。有关这些区别的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的使用客户端加密保护数据

注意

Amazon S3 CSE 仅确保与 Amazon S3 交换EMRFS的数据经过加密;并非集群实例卷上的所有数据都经过加密。此外,由于 Hue 不使用 HueEMRFS,因此 Hue S3 文件浏览器写入到 Amazon S3 的对象不会被加密。

对 Amazon 中的数据进行静态加密 EMR WAL

当您为预写日志设置服务器端加密 (SSE) 时WAL,Amazon EMR 会加密静态数据。在 Amazon 中指定时,您可以从两种不同的密钥管理系统SSE中进行选择EMR:

SSE-EMR-WAL

Amazon 会为您EMR管理密钥。默认情况下,Amazon EMR 会对您存储在亚马逊EMRWAL中的数据进行加密。SSE-EMR-WAL

SSE-KMS-WAL

您使用 AWS KMS 密钥来设置适用于 Amazon 的政策EMRWAL。有关 Amazon 关键要求的更多信息EMR,请参阅AWS KMS keys 用于加密

在 Amazon 上启用SSEWAL时,您不能使用自己的密钥EMR。有关更多信息,请参阅 Amazon 的预写日志 (WAL)。EMR

本地磁盘加密

当您使用 Amazon EMR 安全配置启用本地磁盘加密时,以下机制共同使用来加密本地磁盘。

开源HDFS加密

HDFS分布式处理期间,在集群实例之间交换数据。它还从实例存储卷和连接到实例的卷中读取EBS和写入数据。启用本地磁盘加密会激活以下开源 Hadoop 加密选项:

注意

您也可以通过启用传输中加密激活其他 Apache Hadoop 加密。有关更多信息,请参阅 传输中加密。这些加密设置不会激活HDFS透明加密,您可以手动配置透明加密。有关更多信息,请参阅《亚马逊EMR发行指南》中的 “亚马逊HDFSEMR上的透明加密”。

实例存储加密

对于使用 EC2 based SSDs 作为NVMe实例存储卷的实例类型,无论亚马逊的NVMe加密设置如何,都将使用EMR加密。有关更多信息,请参阅 Amazon EC2 用户指南中的NVMeSSD卷。对于其他实例存储卷,无论卷是EMR使用LUKS加密还是使用加密进行加密,当启用本地磁盘加密时,Amazon 都会使用对实例存储EBS卷进行EBS加密LUKS。

EBS批量加密

如果您在账户默认启用 Amazon EC2 加密EBS卷的区域创建集群,则即使未启用本地磁盘加密,也会对EBS卷进行加密。有关更多信息,请参阅 Amazon EC2 用户指南中的默认加密。在安全配置中启用本地磁盘加密后,Amazon EMR 设置优先于集群EC2实例的 Amazon EC2 encryption-by-default 设置。

以下选项可用于使用安全配置对EBS卷进行加密:

  • EBS加密 — 从 Amazon EMR 版本 5.24.0 开始,您可以选择启用EBS加密。EBS加密选项对EBS根设备卷和连接的存储卷进行加密。只有在您指定为密钥提供商时 AWS Key Management Service ,EBS加密选项才可用。我们建议使用EBS加密。

  • LUKS加密 — 如果您选择对 Amazon EBS 卷使用加LUKS密,则LUKS加密仅适用于连接的存储卷,而不适用于根设备卷。有关LUKS加密的更多信息,请参阅LUKS磁盘规范

    对于您的密钥提供商,您可以使用适用于 Amazon AWS KMS key 的策略设置一个EMR,也可以设置一个提供加密工件的自定义 Java 类。使用时 AWS KMS,会收取加密密钥的存储和使用费用。有关更多信息,请参阅AWS KMS 定价

注意

要检查您的集群上是否启用了EBS加密,建议您使用 c DescribeVolumes API all。有关更多信息,请参阅DescribeVolumes。在集群lsblk上运行只会检查LUKS加密状态,而不会检查EBS加密状态。

传输中加密

传输中加密会启用几种加密机制。这些都是开源功能,特定于应用程序,可能因Ama EMR zon版本而异。使用 Apache 应程序用配置可以启用以下特定于应用程序的加密功能。有关更多信息,请参阅配置应用程序

Hadoop
HBase
Hive
  • JDBC/使用 Amazon 6.9.0 及更高EMR版本中的SSL配置对ODBC客户端与 HiveServer 2 (HS2) 的通信进行加密。

  • 有关更多信息,请参阅 Apache Hive 文档的SSL加密部分。

Spark
  • 在 A EMR mazon 5.9.0 及更高版本中,Spark 组件(例如区块传输服务和外部随机播放服务)之间的内部RPC通信使用 AES -256 密码进行加密。在早期版本中,使用 with DIGEST-MD5 作为密码对内部RPC通信SASL进行加密。

  • HTTP与 Spark 历史服务器和HTTPS启用文件服务器等用户界面的协议通信使用 Spark 的SSL配置进行加密。有关更多信息,请参阅 Spark 文档中的SSL配置

  • 有关更多信息,请参阅 Apache Spark 文档中的 Spark security settings(Spark 安全设置)。

Tez
Presto
  • Presto 节点之间的内部通信使用SSL/TLS(仅限亚马逊EMR版本 5.6.0 及更高版本)。

您可以通过两种方式指定用于传输中加密的加密构件:一种是提供上载到 Amazon S3 的凭证的压缩文件,另一种是引用提供加密构件的自定义 Java 类。有关更多信息,请参阅提供证书,用于使用 Amazon EMR 加密对传输中的数据进行加密