

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

# 使用客戶受管金鑰進行加密
<a name="custom-keys-certs"></a>

您可以選擇性地為環境中的資料加密提供[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。您必須在與 Amazon MWAA 環境執行個體和 Amazon S3 儲存貯體相同的區域中建立客戶受管 KMS 金鑰，以存放工作流程的資源。如果您指定的客戶受管 KMS 金鑰與您用於設定環境的金鑰位於不同的帳戶中，您必須使用其 ARN 指定金鑰以進行跨帳戶存取。如需建立金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

## 支援的內容
<a name="custom-keys-grants-support"></a>


| AWS KMS 功能 | 支援 | 
| --- | --- | 
|  [AWS KMS 金鑰 ID 或 ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)。  |  是  | 
|  [AWS KMS 金鑰別名](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)。  |  否  | 
|  [AWS KMS 多區域金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。  |  否  | 

## 使用授予進行加密
<a name="custom-keys-grants-provide"></a>

本主題說明授予 Amazon MWAA 代表您連接至客戶受管 KMS 金鑰，以加密和解密您的資料。

### 運作方式
<a name="custom-keys-certs-grants"></a>

 AWS KMS 客戶受管 KMS 金鑰支援兩種資源型存取控制機制：[金鑰政策和](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)[授權](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。

當許可大部分為靜態且用於同步服務模式時，會使用金鑰政策。當需要更多動態和精細的許可時，例如當服務需要為自己或其他帳戶定義不同的存取許可時，就會使用授予。

Amazon MWAA 會使用四個授予政策並將其連接至您的客戶受管 KMS 金鑰。這是因為環境從 CloudWatch Logs、Amazon SQS 佇列、Aurora PostgreSQL 資料庫、Secrets Manager 秘密、Amazon S3 儲存貯體和 DynamoDB 資料表加密靜態資料所需的精細許可。

當您建立 Amazon MWAA 環境並指定客戶受管 KMS 金鑰時，Amazon MWAA 會將授予政策連接至客戶受管 KMS 金鑰。這些政策允許 中的 Amazon MWAA `airflow.us-east-1.amazonaws.com`使用您的客戶受管 KMS 金鑰，代表您加密 Amazon MWAA 擁有的資源。

Amazon MWAA 會代表您建立指定的 KMS 金鑰並附加其他授權。這包括刪除環境時淘汰授予的政策、將客戶受管 KMS 金鑰用於用戶端加密 (CSE)，以及需要存取 Secrets Manager 中受客戶受管金鑰保護之秘密的 AWS Fargate 執行角色。

## 授予政策
<a name="custom-keys-certs-grant-policies"></a>

Amazon MWAA 會代表您將下列以[資源為基礎的政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)授予新增至客戶管理的 KMS 金鑰。這些政策允許承授者和委託人 (Amazon MWAA) 執行政策中定義的動作。

### 授予 1：用於建立資料平面資源
<a name="custom-keys-certs-grant-policies-1"></a>

```
{
  "Name": "mwaa-grant-for-env-mgmt-role-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey",
    "kms:RetireGrant"
  ]
}
```

### 授予 2：用於`ControllerLambdaExecutionRole`存取
<a name="custom-keys-certs-grant-policies-2"></a>

```
{
  "Name": "mwaa-grant-for-lambda-exec-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey",
    "kms:RetireGrant"
  ]
}
```

### 授予 3：用於`CfnManagementLambdaExecutionRole`存取
<a name="custom-keys-certs-grant-policies-3"></a>

```
{
  "Name": " mwaa-grant-for-cfn-mgmt-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ]
}
```

### 授予 4：用於 Fargate 執行角色以存取後端秘密
<a name="custom-keys-certs-grant-policies-4"></a>

```
{
  "Name": "mwaa-fargate-access-for-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey",
    "kms:RetireGrant"
  ]
}
```

## 將金鑰政策連接至客戶受管金鑰
<a name="custom-keys-certs-grant-policies-attach"></a>

如果您選擇將自己的客戶受管 KMS 金鑰與 Amazon MWAA 搭配使用，則必須將下列政策連接至金鑰，以允許 Amazon MWAA 使用它來加密您的資料。

如果您用於 Amazon MWAA 環境的客戶受管 KMS 金鑰尚未設定為使用 CloudWatch，您必須更新[金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)以允許加密的 CloudWatch Logs。如需詳細資訊，請參閱[使用 AWS Key Management Service 服務在 CloudWatch 中加密日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)。

下列範例代表 CloudWatch Logs 的金鑰政策。取代為區域提供的範例值。

```
{
  "Effect": "Allow",
  "Principal": {
    "Service": "logs.us-east-1.amazonaws.com"
  },
  "Action": [
    "kms:Encrypt*",
    "kms:Decrypt*",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:Describe*"
  ],
  "Resource": "*",
  "Condition": {
    "ArnLike": {
      "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:*:*"
    }
  }
}
```