

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

# Glue Data Quality AWS 的靜態資料加密
<a name="data-quality-encryption"></a>

 AWS Glue Data Quality 預設提供加密，以使用 AWS 擁有的加密金鑰保護靜態敏感客戶資料。

## AWS 擁有的金鑰
<a name="w2aac49c74b9"></a>

 AWS Glue Data Quality 使用這些金鑰自動加密客戶的 Data Quality 資產。您無法檢視、管理或使用 AWS 擁有的金鑰，或稽核其使用方式。但是，您不需要採取任何動作或變更任何程式，即可保護加密您資料的金鑰。如需詳細資訊，請參閱《 AWS KMS 開發人員指南》中的[AWS 擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。

 依預設加密靜態資料，有助於降低保護敏感資料所涉及的營運開銷和複雜性。同時，其可讓您建置符合嚴格加密合規性和法規要求的安全應用程式。

 雖然您無法停用此層加密或選取替代加密類型，但您可以在建立 Data Quality 資源時選擇客戶受管金鑰，在現有 AWS 擁有的加密金鑰上新增第二層加密。

## 客戶自管金鑰
<a name="data-quality-encryption-customer-managed-keys"></a>

 **客戶受管金鑰**： AWS Glue Data Quality 支援使用您建立、擁有和管理的對稱客戶受管金鑰。這會在現有 AWS 擁有的加密上新增第二層加密。由於您可以完全控制此層加密，因此能執行以下任務：
+  建立和維護金鑰政策 
+  建立和維護 IAM 政策 
+  啟用和停用金鑰政策 
+  輪換金鑰密碼編譯資料 
+  新增 標籤 
+  建立金鑰別名 
+  安排金鑰供刪除 

 如需詳細資訊，請參閱《 AWS KMS 開發人員指南》中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

 下表摘要說明 AWS Glue Data Quality 如何加密不同的 Data Quality 資產。


| 資料類型 | AWS 擁有的金鑰加密 | 客戶自管金鑰加密 | 
| --- | --- | --- | 
|  **資料品質規則集** <br /> 持續 DQ 規則集所參考的 DQDL 規則集字串。這些持久規則集目前僅用於 AWS Glue Data Catalog 體驗。 | 已啟用 | 已啟用 | 
|  **Data Quality 規則/分析器結果** <br /> 結果成品，其中包含規則集中每個規則的通過/失敗狀態，以及規則和分析器收集的指標。 | 已啟用 | 已啟用 | 
|  **觀察** <br /> 在資料中偵測到異常時，會產生觀察結果。其包含預期上限和下限的資訊，以及基於這些邊界的建議規則。如果產生，其會與 Data Quality 結果一起顯示。 | 已啟用 | 已啟用 | 
|  **統計資料** <br /> 包含評估指定規則集的資料後所收集指標的資訊，例如指標的值 (例如 RowCount、Completeness)、資料欄名稱和其他中繼資料。 | 已啟用 | 已啟用 | 
|  **異常偵測統計模型** <br /> 統計資料模型包含根據先前客戶資料評估所產生指定指標的上限和下限的時間序列。 | 已啟用 | 已啟用 | 

**注意**  
 AWS Data Quality 使用 AWS 擁有的金鑰自動啟用靜態加密，免費保護個人身分識別資料。不過，使用客戶受管金鑰會產生 AWS KMS 費用。如需定價的詳細資訊，請參閱[AWS KMS 定價](https://aws.amazon.com/kms/pricing/)。  
 如需 的詳細資訊 AWS KMS，請參閱 [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

## 建立客戶自管金鑰
<a name="data-quality-encryption-customer-managed-key"></a>

 您可以使用 AWS 管理主控台或 AWS KMS APIs 來建立對稱客戶受管金鑰。

**若要建立對稱客戶自管金鑰，請執行以下操作：**
+  請遵循《 AWS Key Management Service 開發人員指南》中[建立對稱加密 AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)的步驟。

### 金鑰政策
<a name="data-quality-encryption-customer-managed-key-policy"></a>

 金鑰政策會控制客戶受管金鑰的存取權限。每個客戶受管金鑰都必須只有一個金鑰政策，其中包含決定誰可以使用金鑰及其使用方式的陳述式。在建立客戶受管金鑰時，可以指定金鑰政策。如需詳細資訊，請參閱《 AWS Key Management Service 開發人員指南[》中的金鑰中的 AWS KMS 金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

 若要將客戶自管金鑰與 Data Quality 資源搭配使用，必須在金鑰政策中允許下列 API 操作：
+  [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) – 使用 解密 AWS KMS 金鑰加密的加密文字 `GenerateDataKeyWithoutPlaintext` 
+  [https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) – 提供客戶自管金鑰詳細資訊，以讓 Amazon Location 驗證金鑰。
+  [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) – 傳回可在 外部使用的唯一對稱資料金鑰 AWS KMS。此操作會傳回根據您指定的對稱加密 KMS 金鑰加密的資料金鑰。金鑰中的位元組是隨機的；其與發起人或 KMS 金鑰無關。用於減少客戶必須進行的 KMS 呼叫。
+  [https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) – 解密密文，然後完全在 AWS KMS內重新加密。您可以使用此操作來變更加密資料的 KMS 金鑰，例如當您[手動輪換](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually) KMS 金鑰或變更保護密文的 KMS 金鑰時。您也可以使用其在相同的 KMS 金鑰下重新加密密文，例如變更密文的[加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)。

 以下是您可以為 Amazon Location 新增的政策聲明範例：

```
"Statement" : [ 
    {
        "Sid" : "Allow access to principals authorized to use AWS Glue Data Quality",
        "Effect" : "Allow",
        "Principal" : {
            "AWS": "arn:aws:iam::<account_id>:role/ExampleRole"
        },
        "Action" : [ 
            "kms:Decrypt", 
            "kms:DescribeKey",
            "kms:GenerateDataKeyWithoutPlaintext",
            "kms:ReEncrypt*"
        ],
        "Resource" : "*",
        "Condition" : {
            "StringEquals" : {
                "kms:ViaService" : "glue.amazonaws.com",
                "kms:CallerAccount" : "111122223333"
            }
        },
    {
        "Sid": "Allow access for key administrators",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:root"
          },
        "Action" : [ 
            "kms:*"
         ],
        "Resource": "arn:aws:kms:region:111122223333:key/key_ID"
    },
    {
        "Sid" : "Allow read-only access to key metadata to the account",
        "Effect" : "Allow",
        "Principal" : {
            "AWS" : "arn:aws:iam::111122223333:root"
        },
        "Action" : [ 
            "kms:Describe*",
            "kms:Get*",
            "kms:List*",
        ],
        "Resource" : "*"
    }
]
```

### 在 Glue Data Quality 中使用 KMS AWS 金鑰的注意事項
<a name="data-quality-encryption-kms-keys-notes"></a>

 AWS Glue Data Quality 不支援金鑰轉換。這表示如果您使用金鑰 A 加密 Data Quality 資產，並決定切換到金鑰 B，我們不會重新加密使用金鑰 A 加密的資料，以使用金鑰 B。您仍然可以切換到金鑰 B，但需要維護金鑰 A 的存取權，以存取先前使用金鑰 A 加密的資料。

 如需在政策中指定許可的詳細資訊，請參閱《 AWS Key Management Service 開發人員指南》[中的金鑰政策中的 AWS 服務許可](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-services.html)。

 如需對金鑰存取進行疑難排解的詳細資訊，請參閱《 AWS Key Management Service 開發人員指南》中的[對金鑰存取進行疑難排解](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html)。

## 建立安全組態
<a name="data-quality-encryption-create-security-configuration"></a>

 在 AWS Glue 中，[安全組態資源](encryption-security-configuration.md)包含寫入加密資料時所需的屬性。

**若要加密資料品質資產，請執行以下操作：**

1.  在**加密設定**中，於**進階設定**下，選擇**啟用 Data Quality 加密** 

1.  選取您的 KMS 金鑰或選擇**建立 AWS KMS 金鑰** 

![螢幕擷取畫面會顯示「新增安全性組態」頁面。已選取「啟用 Data Quality 加密」選項。](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/data-quality-add-security-configuration.png)


## AWS Glue Data Quality 加密內容
<a name="data-quality-encryption-context"></a>

 [加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)是一組選用的金鑰值對，包含資料的其他相關內容資訊。

 AWS KMS 使用加密內容做為[額外的已驗證資料](https://docs.aws.amazon.com/crypto/latest/userguide/cryptography-concepts.html#term-aad)，以支援已[驗證的加密。 ](https://docs.aws.amazon.com/crypto/latest/userguide/cryptography-concepts.html#term-aad)當您在加密資料的請求中包含加密內容時， 會將加密內容 AWS KMS 繫結至加密的資料。若要解密資料，您必須在請求中包含相同的加密內容。

### AWS Glue Data Quality 加密內容範例
<a name="data-quality-encryption-context-example"></a>

```
"encryptionContext": {
    "kms-arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
    "branch-key-id": "111122223333+arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
    "hierarchy-version": "1",
    "aws-crypto-ec:aws:glue:securityConfiguration": "111122223333:customer-security-configuration-name",
    "create-time": "2024-06-07T13:47:23:000861Z",
    "tablename": "AwsGlueMlEncryptionKeyStore",
    "type": "beacon:ACTIVE"
}
```

### 使用加密內容進行監控
<a name="data-quality-encryption-context-monitoring"></a>

 當您使用對稱客戶自管金鑰加密追蹤器或地理柵欄集合時，您也可以在稽核記錄和日誌中使用加密內容，以識別客戶自管金鑰的使用方式。加密內容也會出現在 AWS CloudTrail 或 產生的日誌中 Amazon CloudWatch Logs。

## 監控 Glue Data Quality AWS 的加密金鑰
<a name="data-quality-monitoring-encryption-keys"></a>

 當您搭配 Glue Data Quality 資源使用 AWS KMS 客戶受管金鑰時，您可以使用 AWS AWS CloudTrail 或 Amazon CloudWatch Logs 來追蹤 AWS Glue Data Quality 傳送給 的請求 AWS KMS。

 下列範例是 `GenerateDataKeyWithoutPlainText`和 AWS CloudTrail 的事件`Decrypt`，用於監控 Glue Data Quality AWS 呼叫的 KMS 操作，以存取客戶受管金鑰加密的資料。

 **解密** 

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "arn": "arn:aws:sts::111122223333:role/CustomerRole",
        "accountId": "111122223333",
        "invokedBy": "glue.amazonaws.com"
    },
    "eventTime": "2024-07-02T20:03:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "glue.amazonaws.com",
    "userAgent": "glue.amazonaws.com",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "encryptionContext": {
            "kms-arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "branch-key-id": "111122223333+arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "hierarchy-version": "1",
            "aws-crypto-ec:aws:glue:securityConfiguration": "111122223333:customer-security-configuration-name",
            "create-time": "2024-06-07T13:47:23:000861Z",
            "tablename": "AwsGlueMlEncryptionKeyStore",
            "type": "branch:ACTIVE",
            "version": "branch:version:ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE"
        }
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

 **GenerateDataKeyWithoutPlaintext** 

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "arn": "arn:aws:sts::111122223333:role/CustomerRole",
        "accountId": "111122223333",
        "invokedBy": "glue.amazonaws.com"
    },
    "eventTime": "2024-07-02T20:03:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKeyWithoutPlaintext",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "glue.amazonaws.com",
    "userAgent": "glue.amazonaws.com",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "encryptionContext": {
            "kms-arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "branch-key-id": "111122223333+arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "hierarchy-version": "1",
            "aws-crypto-ec:aws:glue:securityConfiguration": "111122223333:customer-security-configuration-name",
            "create-time": "2024-06-07T13:47:23:000861Z",
            "tablename": "AwsGlueMlEncryptionKeyStore",
            "type": "branch:version:ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE"
        }
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

 **ReEncyrpt** 

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "arn": "arn:aws:sts::111122223333:role/CustomerRole",
        "accountId": "111122223333",
        "invokedBy": "glue.amazonaws.com"
    },
    "eventTime": "2024-07-17T21:34:41Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "ReEncrypt",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "glue.amazonaws.com",
    "userAgent": "glue.amazonaws.com",
    "requestParameters": {
        "destinationEncryptionContext": {
             "kms-arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "branch-key-id": "111122223333+arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "hierarchy-version": "1",
            "aws-crypto-ec:aws:glue:securityConfiguration": "111122223333:customer-security-configuration-name",
            "create-time": "2024-06-07T13:47:23:000861Z",
            "tablename": "AwsGlueMlEncryptionKeyStore",
            "type": "branch:ACTIVE"
            "version": "branch:version:12345678-SAMPLE"
        },
        "destinationKeyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "sourceAAD": "1234567890-SAMPLE+Z+lqoYOHj7VtWxJLrvh+biUFbliYDAQkobM=",
        "sourceKeyId": "arn:aws:kms:ap-southeast-2:585824196334:key/17ca05ca-a8c1-40d7-b7fd-30abb569a53a",
        "destinationEncryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "sourceEncryptionContext": {
            "kms-arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "branch-key-id": "111122223333+arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "hierarchy-version": "1",
            "aws-crypto-ec:aws:glue:securityConfiguration": "111122223333:customer-security-configuration-name",
            "create-time": "2024-06-07T13:47:23:000861Z",
            "tablename": "AwsGlueMlEncryptionKeyStore",
            "type": "branch:version:ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE"
        },
        "destinationAAD": "1234567890-SAMPLE",
        "sourceEncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        },
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

## 進一步了解
<a name="data-quality-encryption-learn-more"></a>

 下列資源會提供有關靜態資料加密的詳細資訊。
+  如需[AWS Key Management Service 基本概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)的詳細資訊，請參閱 AWS Key Management Service 開發人員指南。
+  如需 [安全最佳實務的詳細資訊， AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html)請參閱 AWS Key Management Service 開發人員指南。