

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

# 为 Amazon OpenSearch 服务加密静态数据
<a name="encryption-at-rest"></a>

OpenSearch 服务域提供静态数据加密，这是一项有助于防止未经授权访问您的数据的安全功能。该功能使用 AWS Key Management Service (AWS KMS) 来存储和管理您的加密密钥，并使用 256 位密钥的高级加密标准算法 (AES-256) 来执行加密。如果启用，该功能会对域的以下方面进行加密：
+ 所有索引（包括 UltraWarm 存储中的索引）
+ OpenSearch 日志
+ 交换文件
+ 应用程序目录中的所有其他数据
+ 自动快照

以下内容在您启用静态数据加密时*不会* 加密，但您可以执行额外的步骤来保护它们：
+ 手动快照：您目前无法使用 AWS KMS 密钥加密手动快照。但是，您可以使用 S3 托管密钥的服务器端加密或 KMS 密钥对您用作快照存储库的存储桶进行加密。有关说明，请参阅[注册手动快照存储库](managedomains-snapshot-registerdirectory.md)。
+ 慢日志和错误日志：如果您[发布日志](createdomain-configure-slow-logs.md)并想要对其进行加密，则可以使用与 OpenSearch 服务域相同的 AWS KMS 密钥加密其 CloudWatch 日志组。有关更多信息，请参阅 *Amazon CloudWatch 日志用户指南 AWS Key Management Service中的使用加密 CloudWatch 日志*[中的日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)。

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

OpenSearch 服务仅支持对称加密 KMS 密钥，不支持非对称密钥。要了解如何创建对称密钥，请参阅《AWS Key Management Service 开发人员指南》**中的[创建 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

无论是否启用静态加密，所有域都会使用 AES-256 和 OpenSearch 服务管理的密钥自动加密[自定义软件包](custom-packages.md)。

## Permissions
<a name="permissions-ear"></a>

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

------
#### [ JSON ]

****  

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

------

如果要使用 AWS 自有密钥以外的密钥，则还必须有权为该密钥创建[授](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)权。这些权限通常采用基于资源的策略的形式，您在创建密钥时会指定该策略。

如果您想将密钥保留为 OpenSearch 服务专用，则可以在该[密钥策略中添加 kms: ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service) 条件：

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

有关更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的[在 AWS KMS中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

## 启用静态数据加密
<a name="enabling-ear"></a>

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

**启用静态数据控制台加密**

1. 在 AWS 控制台中打开该域，然后选择**操作**和**编辑安全配置**。

1. 在 **Encryption**（加密）下，选择 **Enable encryption of data at rest**（启用静态数据加密）。

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

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

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

## 已禁用或已删除 KMS 密钥
<a name="disabled-key"></a>

如果您禁用或删除用于加密域名的密钥，则该域将无法访问。 OpenSearch 服务会向您发送[通知，通知](managedomains-notifications.md)您它无法访问 KMS 密钥。立即重新启用密钥以访问您的域。

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

## 禁用静态数据加密
<a name="disabling-ear"></a>

在您配置一个域以对静态数据进行加密后，您无法禁用该设置。相反，您可以随时拍摄现有域的[手动快照](managedomains-snapshots.md)，[创建另一个域](createupdatedomains.md#createdomains)，迁移您的数据和删除旧域。

## 监控对静态数据进行加密的域
<a name="monitoring-ear"></a>

对静态数据进行加密的域有两个额外指标：`KMSKeyError` 和 `KMSKeyInaccessible`。仅当域发现您的加密密钥存在问题时，才会显示这些指标。有关这些指标的完整说明，请参阅[集群指标](managedomains-cloudwatchmetrics.md#managedomains-cloudwatchmetrics-cluster-metrics)。您可以使用 OpenSearch 服务控制台或 Amazon CloudWatch 控制台查看它们。

**提示**  
每个指标都代表一个域的重大问题，因此我们建议您为这两个指标创建 CloudWatch 警报。有关更多信息，请参阅 [Amazon OpenSearch 服务的推荐 CloudWatch 警报](cloudwatch-alarms.md)。

## 其他考虑因素
<a name="ear-considerations"></a>
+ 自动密钥轮换会保留 AWS KMS 密钥的属性，因此轮换不会影响您访问 OpenSearch 数据的能力。加密 OpenSearch 服务域不支持手动密钥轮换，这包括创建新密钥和更新对旧密钥的所有引用。要了解更多信息，请参阅《*AWS Key Management Service 开发者指南》*中的[轮换 AWS KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)。
+ 某些实例类型不支持静态数据加密。有关更多信息，请参阅 [Amazon OpenSearch 服务中支持的实例类型](supported-instance-types.md)。
+ 对静态数据进行加密的域对其自动快照使用了不同的存储库名称。有关更多信息，请参阅 [还原快照](managedomains-snapshot-restore.md)。
+ 虽然我们强烈建议启用静态加密，但它可能会增加额外的 CPU 开销和几毫秒的延迟。但是，大多数使用案例对这些差异并不敏感，影响的程度取决于集群、客户端和使用情况配置文件的配置。