为 Amazon OpenSearch 服务加密静态数据 - 亚马逊 OpenSearch 服务

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

为 Amazon OpenSearch 服务加密静态数据

OpenSearch 服务域提供静态数据加密,这是一项有助于防止未经授权访问您的数据的安全功能。该功能使用 AWS Key Management Service (AWS KMS) 来存储和管理您的加密密钥,并使用 256 位密钥的高级加密标准算法 (AES-256) 来执行加密。如果启用,该功能会对域的以下方面进行加密:

  • 所有索引(包括 UltraWarm 存储中的索引)

  • OpenSearch 日志

  • 交换文件

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

  • 自动快照

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

  • 手动快照:您目前无法使用 AWS KMS 密钥加密手动快照。但是,您可以使用 S3 托管密钥的服务器端加密或 KMS 密钥对您用作快照存储库的存储桶进行加密。有关说明,请参阅注册手动快照存储库

  • 慢日志和错误日志:如果您发布日志并想要对其进行加密,则可以使用与 OpenSearch 服务域相同的 AWS KMS 密钥加密其 CloudWatch 日志组。有关更多信息,请参阅 Amazon CloudWatch 日志用户指南 AWS KMS中的使用加密 CloudWatch 日志中的日志数据

注意

如果已在现有域上启用冷存储, UltraWarm 则无法在该域上启用静态加密。您必须先禁用 UltraWarm 或冷存储,启用静态加密,然后重新启用 UltraWarm 或冷存储。如果要将索引保留在 UltraWarm 或冷存储中,则必须在禁用索引 UltraWarm 或冷存储之前将其移至热存储。

OpenSearch 服务仅支持对称加密 KMS 密钥,不支持非对称密钥。要了解如何创建对称密钥,请参阅 AWS Key Management Service 开发人员指南中的创建密钥

无论是否启用了静态加密,所有域都会使用 AES-256 和 OpenSearch 服务管理的密钥自动加密自定义软件包

权限

要使用 OpenSearch 服务控制台配置静态数据的加密,您必须具有读取权限 AWS KMS,例如以下基于身份的策略:

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

如果要使用 AWS 自有密钥以外的密钥,则还必须有权为该密钥创建权。这些权限通常采用基于资源的策略的形式,您在创建密钥时会指定该策略。

如果您想将密钥保留为 OpenSearch 服务专用,则可以在该密钥策略中添加 kms: ViaService 条件:

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

有关更多信息,请参阅AWS Key Management Service 开发人员指南中的在 AWS KMS 中使用密钥策略

启用静态数据加密

对新域名上的静态数据进行加密需要 OpenSearch 或 Elasticsearch 5.1 或更高版本。在现有域名上启用它需要或 Elasticsearch 6.7 OpenSearch 或更高版本。

启用静态数据控制台加密
  1. 在 AWS 控制台中打开该域,然后选择操作编辑安全配置

  2. Encryption(加密)下,选择 Enable encryption of data at rest(启用静态数据加密)。

  3. 选择要使用的 AWS KMS 密钥,然后选择 “保存更改”。

此外,您还可以通过配置 API 启用加密。以下请求允许对现有域中的静态数据进行加密:

{ "ClusterConfig":{ "EncryptionAtRestOptions":{ "Enabled": true, "KmsKeyId":"arn:aws:kms:us-east-1:123456789012:alias/my-key" } } }

已禁用或已删除 KMS 密钥

如果您禁用或删除用于加密域名的密钥,则该域将无法访问。 OpenSearch 服务会向您发送通知,通知您它无法访问 KMS 密钥。立即重新启用密钥以访问您的域。

如果您的密钥被删除, OpenSearch 服务团队将无法帮助您恢复数据。 AWS KMS 只有在等待至少七天后才会删除密钥。如果您的密钥正在等待删除,请取消删除或拍摄手动快照,以防止数据丢失。

禁用静态数据加密

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

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

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

提示

每个指标都代表一个域的重大问题,因此我们建议您为这两个指标创建 CloudWatch 警报。有关更多信息,请参阅 亚马逊 OpenSearch 服务的推荐 CloudWatch 警报

其他考虑因素

  • 自动密钥轮换会保留 AWS KMS 密钥的属性,因此轮换不会影响您访问 OpenSearch 数据的能力。加密 OpenSearch 服务域不支持手动密钥轮换,这包括创建新密钥和更新对旧密钥的所有引用。如需了解更多信息,请参阅 AWS Key Management Service 开发人员指南中的轮换密钥

  • 某些实例类型不支持静态数据加密。有关更多信息,请参阅 Amazon OpenSearch 服务中支持的实例类型

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

  • 虽然我们强烈建议启用静态加密,但它可能会增加额外的 CPU 开销和几毫秒的延迟。但是,大多数使用案例对这些差异并不敏感,影响的程度取决于集群、客户端和使用情况配置文件的配置。