为 Amazon OpenSearch 服务加密静态数据 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Amazon OpenSearch 服务加密静态数据

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

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

  • OpenSearch 日志

  • 交换文件

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

  • 自动快照

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

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

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

注意

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

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

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

权限

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

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

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

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

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

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

启用静态数据加密

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

启用静态数据控制台加密
  1. 在 Amazon 控制台中打开现有域、然后选择 Actions(操作)和 Edit security configuration(编辑安全配置)。

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

  3. 选择要使用的 Amazon KMS 密钥,然后再选择 Save changes(保存更改)。

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

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

已禁用或已删除 KMS 密钥

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

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

禁用静态数据加密

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

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

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

提示

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

其他考虑因素

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

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

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

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