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

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

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

适用于连接的 AWS KMS 密钥策略

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

  • kms:DescribeKey

  • kms:GenerateDataKey

  • kms:Decrypt

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

JSON
{ "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。有关资源标签的更多信息,请参阅《AWS Key Management Service开发人员指南》中的 Add tags to a KMS key

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

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

连接加密上下文

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

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

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

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

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

使用跨账户或跨区域的客户自主管理型密钥进行连接

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

要使用其他账户的客户自主管理型密钥,拥有该钥的账户必须包含以下策略:

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

有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 Allowing users in other accounts to use a KMS key

撤销客户自主管理型密钥对连接的访问权限

请注意,当您通过禁用、删除、轮换密钥或更新密钥策略等方式撤销客户自主管理型密钥时,EventBridge 可能已缓存该密钥值,因此该密钥仍可能在短时间内保留对连接的密钥的访问权限。

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

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

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

  • 客户自主管理型密钥已删除。

  • 客户自主管理型密钥已被禁用。

  • 该连接没有访问客户自主管理型密钥所需的权限。

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