使用 AWS KMS密钥加密 EventBridge 归档 - Amazon EventBridge

使用 AWS KMS密钥加密 EventBridge 归档

您可以指定 EventBridge 使用客户托管式密钥对存储在归档中的事件进行加密,而不是使用默认的 AWS 拥有的密钥。您可以在创建或更新归档时指定客户托管式密钥。有关密钥类型的更多信息,请参阅 KMS 密钥选项

这包括:

  • 存储在归档中的事件

  • 指定的事件模式(如有),用于筛选发送到归档的事件

这不包括归档元数据,例如归档大小或其中包含的事件数量。

如果您为归档指定客户自主管理型密钥,EventBridge 会在将事件发送到归档之前对其进行加密,从而确保传输中和静态加密安全。

归档加密上下文

加密上下文 是一组包含任意非机密数据的键值对。在请求中包含加密上下文以加密数据时,AWS KMS 以加密方式将加密上下文绑定到加密的数据。要解密数据,您必须传入相同的加密上下文。

您还可以将加密上下文用作在策略和授权中进行授权的条件。

如果您使用客户自主管理型密钥来保护 EventBridge 资源,则可使用加密上下文在审计记录和日志中标识 KMS key的使用。它也以明文形式显示在日志中,例如 AWS CloudTrailAmazon CloudWatch Logs

对于事件归档,EventBridge 在所有 AWS KMS 加密操作中均使用相同的加密上下文。该上下文包括单个键值对,其中包含归档 ARN。

"encryptionContext": { "kms:EncryptionContext:aws:events:event-bus:arn": "event-bus-arn" }

适用于归档的 AWS KMS 密钥策略

以下示例密钥策略提供事件归档所需的权限:

  • kms:DescribeKey

  • kms:GenerateDataKey

  • kms:Decrypt

  • kms:ReEncrypt

作为最佳安全实践,建议您在密钥策略中包含条件键,以帮助确保 EventBridge 仅将 KMS 密钥用于指定的资源或账户。有关更多信息,请参阅 安全性注意事项

JSON
{ "Id": "CMKKeyPolicy", "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:events:event-bus:arn": "arn:aws:events:region:account-id:event-bus/event-bus-arn" } } } ] }