使用 EMR WAL 服務的客戶 KMS 金鑰進行靜態加密 - Amazon EMR

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

使用 EMR WAL 服務的客戶 KMS 金鑰進行靜態加密

EMR 預先寫入日誌 (WAL) 提供客戶 KMS encryption-at-rest支援。Amazon EMR WAL 如何與 整合的高階詳細資訊如下 AWS KMS:

EMR 預先寫入日誌 (WAL) 在下列操作 AWS 期間與 互動:CreateWALAppendEditArchiveWALCheckPointCompleteWALFlushDeleteWALGetCurrentWALTime、、ReplayEdits、,EMR_EC2_DefaultRole根據預設,TrimWAL透過 叫用任何先前列出的操作時,EMR WAL 會GenerateDataKey針對 KMS 金鑰進行 Decrypt和 。

考量事項

使用 EMR WAL AWS KMS 的 型加密時,請考慮下列事項:

  • 建立 EMR WAL 之後,就無法變更加密組態。

  • 當您使用 KMS 加密搭配您自己的 KMS 金鑰時,金鑰必須與 Amazon EMR 叢集位於相同的區域中。

  • 您有責任維護所有必要的 IAM 許可,建議您不要在 WAL 生命週期內撤銷所需的許可。否則,將導致非預期的失敗案例,例如無法刪除 EMR WAL,因為關聯的加密金鑰不存在。

  • 使用 AWS KMS 金鑰會產生相關費用。如需詳細資訊,請參閱 AWS Key Management Service 定價

所需的 IAM 許可

若要使用客戶 KMS 金鑰來加密 EMR WAL 靜態,您需要確保為 EMR WAL 用戶端角色和 EMR WAL 服務主體 設定適當的許可emrwal.amazonaws.com

EMR WAL 用戶端角色的許可

以下是 EMR WAL 用戶端角色所需的 IAM 政策:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*", ], "Resource": "*" } }

EMR 叢集上的 EMR WAL 用戶端EMR_EC2_DefaultRole預設會使用 。如果您針對 EMR 叢集中的執行個體描述檔使用不同的角色,請確定每個角色都有適當的許可。

如需管理角色政策的詳細資訊,請參閱新增和移除 IAM 身分許可

KMS 金鑰政策的許可

您需要在 KMS 政策中提供 EMR WAL 用戶端角色和 EMR WAL 服務和DecryptGenerateDataKey*許可。如需金鑰政策管理的詳細資訊,請參閱 KMS 金鑰政策

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::accountID:role/EMR_EC2_DefaultRole" ], "Service": [ "emrwal.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": [ "*" ] } ] }

如果您變更預設角色,程式碼片段中指定的角色可能會變更。

監控 Amazon EMR WAL 與 的互動 AWS KMS

Amazon EMR WAL 加密內容

加密內容是一組金鑰/值對,其中包含任意的非秘密資料。當您在加密資料的請求中包含加密內容時, 會以 AWS KMS 加密方式將加密內容繫結至加密的資料。若要解密資料,您必須傳遞相同的加密內容。

在其 GenerateDataKeyDecrypt 請求中 AWS KMS,Amazon EMR WAL 使用加密內容搭配一個識別 EMR WAL 名稱的名稱/值對。

"encryptionContext": { "aws:emrwal:walname": "111222333444555-testworkspace-emrwalclustertest-emrwaltestwalname" }

您可以使用加密內容來識別稽核記錄和日誌中的這些密碼編譯操作,例如 AWS CloudTrail 和 Amazon CloudWatch Logs,並做為政策和授權中的授權條件。