使用密钥加密 EventBridge 连接授权 Amazon KMS - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用密钥加密 EventBridge 连接授权 Amazon KMS

创建或更新连接时,可以为该连接指定授权参数。 EventBridge 然后将这些参数安全地存储在中的密钥中 Amazon Secrets Manager。默认情况下, EventBridge 使用 Amazon 拥有的密钥 来加密和解密此机密。您可以指定改 EventBridge 用客户托管密钥。

Amazon KMS 连接的密钥策略

Amazon KMS 密钥策略必须代表您授予 EventBridge 以下权限:

  • kms:DescribeKey

  • kms:GenerateDataKey

  • kms:Decrypt

以下策略示例授予所有 Amazon KMS 权限。

{ "Id": "key-policy-example", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::012345678901:root" }, "Action": "kms:*", "Resource": "*" } ] }

EventBridge 要使用客户托管密钥,您必须在密钥中添加一个资源标签,密钥为EventBridgeApiDestinations,值为true。有关资源标签的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的向 KMS 密钥添加标签

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

"Condition": { "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": [ "arn:aws:secretsmanager:*:*:secret:events!connection/*" ] }, "StringEquals": { "aws:ResourceTag/EventBridgeApiDestinations": "true" } }

连接加密上下文

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

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

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

对于连接,在所有加密操作中 EventBridge 使用相同的 Amazon KMS 加密上下文。该上下文包括单个键值对,其中包含秘密 ARN。

"encryptionContext": { "kms:EncryptionContext:SecretARN": "secret-arn" }

使用跨账户或跨区域客户托管密钥进行连接

您可以允许其他 Amazon 账户中的用户或角色在您的账户中使用 KMS 密钥。跨账户访问需要在 KMS 密钥的密钥策略和外部用户账户的 IAM policy 中拥有权限。

要使用其他账户的客户托管密钥,拥有客户托管密钥的账户必须包含以下政策:

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account:role/AmazonEventBridgeApiDestinationsInternalServiceRolePolicy" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }

有关更多信息,请参阅Amazon Key Management Service 开发人员指南中的允许其他账户中的用户使用 KMS 密钥

撤销客户对连接的托管密钥访问权限

请注意,当您撤销客户托管的密钥时(禁用、删除或轮换密钥,或者更新密钥策略)EventBridge 可能已经缓存了密钥值,因此该密钥仍可能在短时间内保留对连接密钥的访问权限。

要立即撤销客户对连接密钥的访问权限,请取消对连接的授权或删除。有关更多信息,请参阅取消对连接的授权删除连接

由于客户管理的密钥错误而导致连接被取消授权

EventBridge 如果连接在尝试加密或解密连接的密钥时遇到以下错误,则取消对连接的授权:

  • 客户管理的密钥已被删除。

  • 客户管理的密钥已被禁用。

  • 该连接没有访问客户托管密钥所需的权限。

有关更多信息,请参阅 取消对连接的授权