跳至内容

如何使用 AWS KMS 加密 CloudWatch Logs 中的日志数据?

1 分钟阅读
0

我想使用 AWS Key Management Service (AWS KMS) 加密 Amazon CloudWatch Logs 中的日志数据。

简短描述

默认情况下,CloudWatch Logs 使用服务器端加密 (SSE) 密钥来加密日志组数据。为了控制日志数据加密或遵守您的安全策略,您还可以在 AWS KMS 中使用客户自主管理型密钥。

**注意:**当您使用 AWS KMS 加密时,可能会增加成本

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

您可以使用现有的客户管理型密钥来加密日志组中的日志数据。如果您没有客户自主管理型密钥,请在开始之前创建密钥

**重要事项:**在 CloudWatch Logs 中只能使用对称的 AWS KMS 密钥。请勿使用非对称密钥。

授予 CloudWatch Logs 访问 AWS KMS 密钥所需的权限

要授予 CloudWatch Logs 访问 AWS KMS 密钥的权限,请更改密钥策略。确保 CloudWatch Logs 服务主体和调用方角色具有使用密钥所需的权限

将 AWS KMS 密钥与日志组相关联

您可以在创建期间或创建之后关联 AWS KMS 密钥。加密时您的密钥最多需要 5 分钟才能关联。

在密钥创建期间关联 AWS KMS 密钥

完成以下步骤:

  1. 打开 CloudWatch 控制台
  2. 在导航窗格中,选择 Log groups(日志组)。
  3. 选择 Create log group(创建日志组)。
  4. 输入日志组的名称和 AWS KMS 密钥 ARN。
  5. 选择 Create(创建)。

或者,运行以下 AWS CLI 命令 create-log-group

aws logs create-log-group --log-group-name example-log-group --kms-key-id example-key-arn

**注意:**请将 example-log-group 替换为日志组名称,将 example-key-arn 替换为 AWS KMS 密钥 ID。

在密钥创建之后关联 AWS KMS 密钥

**注意:**您无法使用 CloudWatch 控制台将 AWS KMS 密钥与现有日志组相关联。

要在创建 AWS KMS 密钥后将其关联,请运行以下 associate-kms-key 命令:

aws logs associate-kms-key --log-group-name example-log-group --kms-key-id example-key-arn

**注意:**请将 example-log-group 替换为日志组名称,将 example-key-arn 替换为 AWS KMS 密钥 ID。

您也可以取消 AWS KMS 密钥与日志组的关联。取消关联或更改 AWS KMS 密钥后,CloudWatch Logs 仍可以解密并返回日志数据。但是,如果您停用 AWS KMS 密钥,CloudWatch Logs 将无法读取您使用该密钥加密的日志。

相关信息

使用 AWS Key Management Service 加密 CloudWatch Logs 中的日志数据

Amazon CloudWatch Logs 中的数据保护