Amazon Elasticsearch Service
开发人员指南 (API 版本 2015-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon Elasticsearch Service 的静态数据的加密

Amazon ES 域提供了静态数据加密,这是一种有助于防止他人未经授权访问您的数据的安全功能。该功能使用 AWS Key Management Service (AWS KMS) 存储和管理您的加密密钥。如果启用,它会对域的以下方面进行加密:

  • 索引

  • 自动快照

  • Elasticsearch 日志

  • 交换文件

  • 应用程序目录中的所有其他数据

以下内容在您启用静态数据加密时不会 加密,但您可以执行额外的步骤来保护它们:

要了解如何创建 AWS KMS 主密钥,请参阅 AWS Key Management Service Developer Guide 中的创建密钥

启用静态数据加密

默认情况下,域不会对静态数据进行加密,并且您无法将现有域配置为使用该功能。要启用该功能,您必须创建另一个域并迁移您的数据。静态数据加密需要 Elasticsearch 5.1 或更高版本。

要使用 Amazon ES 控制台创建可加密静态数据的域,您必须拥有 AWS KMS 的只读权限,如以下基于身份的策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*" ], "Resource": "*" } ] }

如果要使用 (Default) aws/es ((默认) aws/es) 之外的密钥,您还必须拥有为密钥创建授权的权限。这些权限通常采用基于资源的策略的形式,您在创建密钥时会指定该策略。

如果您希望密钥专供 Amazon ES 使用,可将 kms:ViaService 条件添加到密钥策略:

"Condition": { "StringEquals": { "kms:ViaService": "es.us-west-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } }

有关更多信息,请参阅 AWS Key Management Service Developer Guide 中的使用 AWS KMS 中的密钥策略

警告

如果您删除了用于对某个域进行加密的密钥,该域将变得无法访问。Amazon ES 团队无法帮助您恢复数据。AWS KMS 仅在经过至少 7 天的等待期后才会删除主密钥,因此,如果 Amazon ES 团队检测到您的域面临风险,它们可能会联系您。

禁用静态数据加密

在您配置一个域以对静态数据进行加密后,您无法禁用该设置。相反,您可以随时拍摄现有域的手动快照创建另一个域,迁移您的数据和删除旧域。

监控对静态数据进行加密的域

对静态数据进行加密的域有两个额外指标:KMSKeyErrorKMSKeyInaccessible。仅当域发现您的加密密钥存在问题时,才会显示这些指标。有关这些指标的完整说明,请参阅群集指标。您可以使用 Amazon ES 控制台或 Amazon CloudWatch 控制台查看它们。

提示

每个指标都表示域的一个重大问题,因此我们建议您为两者创建 CloudWatch 警报。有关更多信息,请参阅建议的 CloudWatch 警报

其他考虑因素

  • 自动密钥轮换将保留 AWS KMS 主密钥的属性,因此轮换不会影响您访问 Elasticsearch 数据的能力。加密 Amazon ES 域不支持手动密钥轮换,手动密钥轮换涉及创建新的主密钥和将任何参考更新到旧密钥。要了解更多信息,请参阅 AWS Key Management Service Developer Guide 中的轮换客户主密钥

  • 某些实例类型不支持静态数据加密。有关详细信息,请参阅 支持的实例类型

  • 静态数据加密在 cn-north-1(北京)和cn-northwest-1(宁夏)地区不可用。

  • Kibana 仍适用于加密静态数据的域。

  • 对静态数据进行加密的域对其自动快照使用了不同的存储库名称。有关更多信息,请参阅还原快照

  • 加密 Amazon ES 域需要两个授权,每个加密密钥都有一个限制:每个委托人 500 个授权。此限制意味着您可以使用单个密钥进行加密的 Amazon ES 域的最大数量为 250。目前,Amazon ES 最多支持每账户(每区域)100 个域,因此此授权限制无关紧要。但是,如果每个账户的域限制提升,授权限制可能变得相关。

    如果您到那时需要加密超过 250 个域,则可以创建额外的密钥。密钥是区域性而不是全球性的,因此,如果您在多个 AWS 区域中进行操作,则需要多个密钥。