在 EventBridge 中使用 AWS KMS 对事件总线日志进行加密
发送日志时,EventBridge 会使用为事件总线指定的 KMS 密钥对每条日志记录的 detail 和 error 部分进行加密。如果您为事件总线指定了客户自主管理型密钥,EventBridge 将使用该密钥在传输中加密。记录一经传送,就会被解密,然后使用为日志目标指定的 KMS 密钥重新加密。
事件总线日志加密上下文
加密上下文 是一组包含任意非机密数据的键值对。在请求中包含加密上下文以加密数据时,AWS KMS 以加密方式将加密上下文绑定到加密的数据。要解密数据,您必须传入相同的加密上下文。
您还可以将加密上下文用作在策略和授权中进行授权的条件。
如果您使用客户自主管理型密钥来保护 EventBridge 资源,则可使用加密上下文在审计记录和日志中标识 KMS key的使用。它也以明文形式显示在日志中,例如 AWS CloudTrail 和 Amazon 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:*" } } }