靜態加密 - EventBridge 排程器

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

靜態加密

本節說明 Amazon EventBridge 排程器如何加密和解密靜態資料。靜態資料是儲存在 EventBridge 排程器和服務基礎元件中的資料。 EventBridge 排程器與 AWS Key Management Service (AWS KMS) 整合,可使用 AWS KMS key. EventBridge 排程器支援兩種類型的 KMS 金鑰:AWS 擁有的金鑰客戶受管金鑰

注意

EventBridge 排程器僅支援使用對稱加密 KMS 金鑰。

AWS 擁有的金鑰是 AWS 服務擁有和管理的 KMS 金鑰,可在多個 AWS 帳戶中使用。雖然 AWS 擁有的金鑰 EventBridge 排程器使用不會儲存在您的 AWS 帳戶中,但 EventBridge Scheduler 會使用它們來保護您的資料和資源。依預設, EventBridge Scheduler 會使用擁有的金鑰加密和解密您的所有 AWS 資料。您不需要管理您 AWS 擁有的金鑰 或其存取原則。當 EventBridge Scheduler 用 AWS 擁有的金鑰 來保護您的資料時,您不會產生任何費用,且其使用量不會計入您帳戶中 AWS KMS 配額的一部分。

客戶受管金鑰是儲存在您建立、擁有和管理的 AWS 帳戶中的 KMS 金鑰。如果您的特定使用案例要求您控制和稽核 S EventBridge cheduler 上保護資料的加密金鑰,您可以使用客戶管理的金鑰。如果您選擇客戶管理的金鑰,則必須管理您的金鑰政策。客戶受管金鑰會衍生每月費用,以及超出免費方案部分的使用費用。使用客戶管理的金鑰也會算作AWS KMS 配額的一部分。如需定價的詳細資訊,請參閱AWS Key Management Service 定價

加密成品

下表說明 EventBridge 排程器在靜態時加密的不同類型資料,以及每個類別支援的 KMS 金鑰類型。

資料類型 描述 AWS 擁有的金鑰 客戶管理的金鑰

有效載荷 (最高 256KB)

設定要傳遞至目標的排程時,您在排程TargetInput參數中指定的資料。

支援

支援

識別碼和狀態

排程的唯一名稱和狀態 (啟用、停用)。

支援

不支援

Scheduling configuration (排程組態)

排程運算式,例如週期性排程的速率或 cron 運算式,以及一次性呼叫的時間戳記,以及排程的開始日期、結束日期和時區。

支援

不支援

目標組態

目標的 Amazon 資源名稱 (ARN) 以及其他目標相關組態詳細資料。

支援

不支援

調用和失敗行為配置

彈性的時間範圍組態、排程的重試原則,以及失敗傳送所使用的無效字母佇列詳細資訊。

支援

不支援

EventBridge Scheduler 只有在加密和解密目標承載時,才會使用您的客戶受管金鑰,如上表所述。如果您選擇使用客戶管理的金鑰, EventBridge Scheduler 會對承載進行兩次加密和解密:一次使用預設值 AWS 擁有的金鑰,另一次使用您指定的客戶管理金鑰。對於所有其他資料類型, EventBridge Scheduler 只會使用預設值 AWS 擁有的金鑰 來保護您的靜態資料。

管理 KMS 金鑰參閱以下章節,瞭解如何管理 IAM 資源和金鑰政策,才能搭配 EventBridge Scheduler 使用客戶受管金鑰。

管理 KMS 金鑰

您可以選擇性地提供客戶管理的金鑰,以加密和解密排程傳送至其目標的承載。 EventBridge 排程器會加密和解密您的承載,最多可達 256KB 的資料。使用客戶管理金鑰會產生每月費用和超出免費方案的費用。使用客戶管理的金鑰會計入AWS KMS 配額的一部分。如需定價的詳細資訊,請參閱AWS Key Management Service 定價

EventBridge 排程器會使用與主體相關聯的 IAM 許可,以建立排程來加密您的資料。這表示您必須將必要的 AWS KMS 相關權限附加至呼叫 EventBridge Scheduler API 的使用者或角色。此外, EventBridge 排程器會使用以資源為基礎的政策來解密您的資料。這表示與排程相關聯的執行角色也必須具有必要的 AWS KMS 相關權限,才能在解密資料時呼叫 AWS KMS API。

注意

EventBridge 排程器不支援使用臨時權限的權。

請參閱以下章節,瞭解如何管理 AWS KMS 金鑰政策以及在 EventBridge Scheduler 上使用客戶受管金鑰所需的 IAM 許可。

新增 IAM 許可

若要使用客戶受管金鑰,您必須將下列許可新增至建立排程的身分型 IAM 主體,以及與排程相關聯的執行角色。

客戶受管金鑰的身分識別權限

建立 EventBridge 排程時,您必須將下列 AWS KMS 動作新增至與任何主體 (使用者、群組或角色) 相關聯的權限原則 (使用者、群組或角色)。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "scheduler:*", # Required to pass the execution role "iam:PassRole", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Effect": "Allow" }, ] }
  • kms:DescribeKey— 驗證您提供的金鑰是否為稱加密 KMS 金鑰的必要項目。

  • kms:GenerateDataKey— 需要才能產生 EventBridge Scheduler 用來執行用戶端加密的資料金鑰。

  • kms:Decrypt— 必須解密 EventBridge 排程器與加密資料一起儲存的加密資料金鑰。

客戶受管金鑰的執行角色權限

您必須將下列動作新增至排程的執行角色權限原則,以提供 EventBridge Scheduler 的存取權,以便在解密資料時呼叫 AWS KMS API。

{ "Version": "2012-10-17", "Statement" : [ { "Sid" : "Allow EventBridge Scheduler to decrypt data using a customer managed key", "Effect" : "Allow", "Action" : [ "kms:Decrypt" ], "Resource": "arn:aws:kms:your-region:123456789012:key/your-key-id" } ] }
  • kms:Decrypt— 必須解密 EventBridge 排程器與加密資料一起儲存的加密資料金鑰。

如果您在建立新排程時使用 EventBridge Scheduler 主控台建立新的執行角色, EventBridge Scheduler 會自動將必要的權限附加至您的執行角色。但是,如果您選擇現有的執行角色,則必須將必要的權限新增至角色,才能使用客戶管理的金鑰。

管理金鑰原則

根據預設 AWS KMS,當您使用建立客戶受管金鑰時,金鑰具有下列金鑰原則,可讓您存取排程的執行角色。

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Provide required IAM Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "kms:*", "Resource": "*" } ] }

或者,您可以將金鑰原則的範圍限制為僅提供執行角色的存取權。如果您只想將客戶管理的金鑰與 EventBridge Scheduler 資源搭配使用,您可以這麼做。請使用下列金鑰原則範例來限制哪些 EventBridge Scheduler 資源可以使用您的金鑰。

{ "Id": "key-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Provide required IAM Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::695325144837:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/schedule-execution-role" }, "Action": [ "kms:Decrypt" ], "Resource": "*" } ] }

CloudTrail 事件範例

AWS CloudTrail 擷取所有 API 呼叫事件。這包括每當 EventBridge Scheduler 使用客戶管理金鑰解密您的資料時,都會呼叫 API 呼叫。下列範例顯示 CloudTrail 事件項目,示範 EventBridge Scheduler 使用客戶管理金鑰的kms:Decrypt動作。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "ABCDEABCD1AB12ABABAB0:70abcd123a123a12345a1aa12aa1bc12", "arn": "arn:aws:sts::123456789012:assumed-role/execution-role/70abcd123a123a12345a1aa12aa1bc12", "accountId": "123456789012", "accessKeyId": "ABCDEFGHI1JKLMNOP2Q3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "ABCDEABCD1AB12ABABAB0", "arn": "arn:aws:iam::123456789012:role/execution-role", "accountId": "123456789012", "userName": "execution-role" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-10-31T21:03:15Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-10-31T21:03:15Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "eu-north-1", "sourceIPAddress": "13.50.87.173", "userAgent": "aws-sdk-java/2.17.295 Linux/4.14.291-218.527.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/11.0.17+9-LTS Java/11.0.17 kotlin/1.3.72-release-468 (1.3.72) vendor/Amazon.com_Inc. md/internal exec-env/AWS_ECS_FARGATE io/sync http/Apache cfg/retry-mode/standard AwsCrypto/2.4.0", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:123456789012:key/2321abab-2110-12ab-a123-a2b34c5abc67", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "aws:scheduler:schedule:arn": "arn:aws:scheduler:us-west-2:123456789012:schedule/default/execution-role" } }, "responseElements": null, "requestID": "request-id", "eventID": "event-id", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:123456789012:key/2321abab-2110-12ab-a123-a2b34c5abc67" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_256_GCM_SHA384", "clientProvidedHostHeader": "kms.us-west-2.amazonaws.com" } }