

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

# 使用 EMR WAL 服務的客戶 KMS 金鑰進行靜態加密
<a name="encryption-at-rest-kms"></a>

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

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

## 考量事項
<a name="encryption-at-rest-considerations"></a>

使用 EMR WAL AWS KMS 的 型加密時，請考慮下列事項：
+ 加密組態無法在建立 EMR WAL 之後變更。
+ 當您使用 KMS 加密搭配您自己的 KMS 金鑰時，金鑰必須與 Amazon EMR 叢集位於相同的區域中。
+ 您有責任維護所有必要的 IAM 許可，建議您不要在 WAL 生命週期內撤銷所需的許可。否則，將導致非預期的失敗案例，例如無法刪除 EMR WAL，因為關聯的加密金鑰不存在。
+ 使用 AWS KMS 金鑰會產生相關費用。如需詳細資訊，請參閱 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/)。

## 所需的 IAM 許可
<a name="encryption-at-rest-required-iam-permissions"></a>

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

### EMR WAL 用戶端角色的許可
<a name="encryption-at-rest-permissions-client-role"></a>

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

------
#### [ JSON ]

****  

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

------

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

如需管理角色政策的詳細資訊，請參閱[新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

### KMS 金鑰政策的許可
<a name="encryption-at-rest-permissions-kms-key-policy"></a>

您需要在 KMS 政策中提供 EMR WAL 用戶端角色和 EMR WAL 服務和`Decrypt``GenerateDataKey*`許可。如需金鑰政策管理的詳細資訊，請參閱 [KMS 金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
      ],
      "Resource": [
        "arn:aws:kms:*:123456789012:key/*"
      ],
      "Sid": "AllowKMSDecrypt"
    }
  ]
}
```

------

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

## 監控 Amazon EMR WAL 與 的互動 AWS KMS
<a name="encryption-at-rest-monitoring-emr-wal-kms"></a>

### Amazon EMR WAL 加密內容
<a name="encryption-at-rest-encryption-context"></a>

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

在其 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 和 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 請求中 AWS KMS，Amazon EMR WAL 使用加密內容搭配一個識別 EMR WAL 名稱的名稱/值對。

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

您可以使用加密內容來識別稽核記錄和日誌中的這些密碼編譯操作，例如 AWS CloudTrail 和 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)，並做為政策和授權的授權條件。