在 EventBridge 中使用 AWS KMS 对事件总线日志进行加密 - Amazon EventBridge

在 EventBridge 中使用 AWS KMS 对事件总线日志进行加密

发送日志时,EventBridge 会使用为事件总线指定的 KMS 密钥对每条日志记录的 detailerror 部分进行加密。如果您为事件总线指定了客户自主管理型密钥,EventBridge 将使用该密钥在传输中加密。记录一经传送,就会被解密,然后使用为日志目标指定的 KMS 密钥重新加密。

事件总线日志加密上下文

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

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

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

对于事件总线日志,EventBridge 在所有 AWS KMS 加密操作中均使用相同的加密上下文。

"encryptionContext": { "kms:EncryptionContext:SourceArn": "arn:partition:logs:region:account:*" }

适用于事件总线日志记录的 AWS KMS 密钥策略权限

对于使用客户自主管理型密钥的事件总线,您必须向密钥策略添加以下权限。

  • 允许 EventBridge 使用客户自主管理型密钥对日志进行加密。

    { "Sid": "Enable log service encryption", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:SourceArn": "arn:partition:logs:region:account:*" } } }
  • 允许日志记录服务解密由 EventBridge 发送的日志。

    { "Sid": "Enable log delivery decryption", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:SourceArn": "arn:partition:logs:region:account:*" } } }