使用 AWS KMS 金鑰加密 EventBridge 事件匯流排 - Amazon EventBridge

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS KMS 金鑰加密 EventBridge 事件匯流排

您可以指定 EventBridge 使用 AWS KMS 來加密儲存在事件匯流排上的資料,而不是使用預設 AWS 擁有的金鑰 的 。您可以在建立或更新事件匯流排時指定客戶受管金鑰。您也可以更新預設事件匯流排,以使用客戶受管金鑰進行加密。如需詳細資訊,請參閱KMS 金鑰選項

當您為事件匯流排指定客戶受管金鑰時,EventBridge 會使用該金鑰來加密下列項目:

如果您為事件匯流排指定客戶受管金鑰,您可以選擇為事件匯流排指定無效字母佇列 (DLQ)。然後EventBridge 會將產生加密或解密錯誤的任何自訂或合作夥伴事件交付至該 DLQ。如需詳細資訊,請參閱加密事件DLQs

注意

我們強烈建議為事件匯流排指定 DLQ,以確保在發生加密或解密錯誤時保留事件。

您也可以指定使用客戶受管金鑰來加密事件匯流排封存。如需詳細資訊,請參閱加密封存

注意

使用客戶受管金鑰加密的事件匯流排不支援結構描述探索。若要在事件匯流排上啟用結構描述探索,請選擇使用 AWS 擁有的金鑰。如需詳細資訊,請參閱KMS 金鑰選項

事件匯流排加密內容

加密內容是一組金鑰/值對,其中包含任意非私密資料。在加密資料的請求中包含加密內容時, 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

作為安全最佳實務,我們建議您在金鑰政策中包含條件金鑰,以協助確保 EventBridge 僅針對指定的資源或帳戶使用 KMS 金鑰。如需詳細資訊,請參閱安全考量

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEventBridgeToValidateKeyPermission", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowEventBridgeToEncryptEvents", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:events:event-bus:arn": "arn:aws:events:us-east-1:123456789012:event-bus/event-bus-arn", "aws:SourceArn": "arn:aws:events:us-east-1:123456789012:event-bus/event-bus-name" } } } ] }

AWS KMS 事件匯流排動作的金鑰許可

若要建立或更新使用客戶受管金鑰加密的事件匯流排,您必須具有指定客戶受管金鑰的下列許可:

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:Decrypt

  • kms:Encrypt

  • kms:ReEncryptFrom

  • kms:ReEncryptTo

  • kms:DescribeKey

此外,若要在使用客戶受管金鑰加密的事件匯流排上執行特定事件匯流排動作,您必須擁有指定客戶受管金鑰的kms:Decrypt許可。這些動作包括: