

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

# 使用 AWS KMS 金鑰加密 EventBridge 管道資料
<a name="eb-encryption-pipes-cmkey"></a>

您可以指定 EventBridge 使用客戶受管金鑰來加密靜態儲存的管道資料，而不是 AWS 擁有的金鑰 使用預設的 。您可以在建立或更新管道時指定客戶受管金鑰。如需金鑰類型的詳細資訊，請參閱 [KMS 金鑰選項](eb-encryption-at-rest-key-options.md)。

EventBridge 靜態加密的管道資料包括：
+ [事件模式](eb-event-patterns.md)
+ [輸入轉換器](eb-pipes-input-transformation.md)

流經管道的事件絕不會靜態存放。

## EventBridge 管道加密內容
<a name="eb-encryption-at-rest-context-pipes"></a>

[加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)是一組金鑰/值對，其中包含任意非私密資料。在加密資料的請求中包含加密內容時， AWS KMS 會以密碼編譯方式將加密內容繫結至加密的資料。若要解密資料，您必須傳遞相同的加密內容。

您也可以使用加密內容做為政策和授權的條件。

如果您使用客戶受管金鑰來保護 EventBridge 資源，您可以使用加密內容來識別稽核記錄和日誌 KMS key 中的 使用情況。它也會以純文字顯示在日誌中，例如 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 和 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)。

對於 EventBridge 管道，EventBridge 在所有 AWS KMS 密碼編譯操作中使用相同的加密內容。內容包含單一索引鍵/值對，其中包含管道 ARN。

```
"encryptionContext": {
    "kms:EncryptionContext:aws:pipes:arn": "pipe-arn"
}
```

對於付費日誌，EventBridge 使用以下加密內容。

```
"encryptionContext": {
    "kms:EncryptionContext:SourceArn": "arn:partition:logs:region:account:*"
}
```

## AWS KMS EventBridge 管道的金鑰政策
<a name="eb-encryption-key-policy-pipe"></a>

下列範例金鑰政策提供管道所需的許可：
+ `kms:DescribeKey`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`

作為安全最佳實務，我們建議您在金鑰政策中包含條件金鑰，以協助確保 EventBridge 僅將 AWS KMS 金鑰用於指定的資源或帳戶。如需詳細資訊，請參閱[安全考量](eb-encryption-key-policy.md#eb-encryption-event-bus-confused-deputy)。

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

****  

```
{
  "Id": "CMKKeyPolicy",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
      "AWS": "arn:aws:iam::123456789012:role/pipe-execution-role"
      },
      "Action": [
        "kms:DescribeKey"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Principal": {
      "AWS": "arn:aws:iam::123456789012:role/pipe-execution-rolee"
      },
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
        "kms:EncryptionContext:aws:pipe:arn": "arn:aws:pipes:us-east-1:123456789012:pipe/pipe-name"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": [
            "aws:pipe:arn"
          ]
        }
      }
    }
  ]
}
```

------

### 包含執行資料的管道日誌許可
<a name="eb-encryption-key-policy-pipe-logs"></a>

如果您已設定管道記錄以包含執行資料，金鑰政策必須包含記錄服務的下列許可：
+ `kms:Decrypt`
+ `kms:GenerateDataKey`

如需詳細資訊，請參閱[在 EventBridge 管道日誌中包含執行資料](eb-pipes-logs.md#eb-pipes-logs-execution-data)。

下列範例金鑰政策提供管道記錄的必要許可：

```
{
  "Sid": "Enable log service encryption",
  "Effect": "Allow",
  "Principal": {
    "Service": "delivery.logs.amazonaws.com"
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:EncryptionContext:SourceArn": "arn:partition:logs:region:account:*"
    }
  }
}
```

此外，管道執行角色需要 `kms:GenerateDataKey` 許可。

```
{
  "Sid": "Enable log service encryption",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::account:role/pipe-execution-role"
  },
  "Action": [
    "kms:GenerateDataKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:EncryptionContext:SourceArn": "arn:partition:logs:region:account:*"
    }
  }
}
```

管道執行角色也應該包含：

```
"Action": [
    "kms:GenerateDataKey"
  ],
  "Resource": "key-arn",
  "Condition": {
    "StringLike": {
      "kms:EncryptionContext:SourceArn": "arn:partition:logs:region:account:*"
    }
  }
```

# 在 EventBridge 管道中設定加密
<a name="eb-encryption-pipe-cmkey-configure"></a>

您可以為 EventBridge 指定 KMS 金鑰，以便在建立或更新管道時使用。

## 指定在建立管道時用於加密的 AWS KMS 金鑰
<a name="eb-encryption-pipe-cmkey-create"></a>

選擇用於加密的 AWS KMS 金鑰是建立管道的選項。預設為使用 EventBridge AWS 擁有的金鑰 提供的 。

**在建立管道時指定用於加密的客戶受管金鑰 （主控台）**
+ 請遵循以下說明：

  [建立管道](eb-pipes-create.md).

**在建立管道時指定用於加密的客戶受管金鑰 (CLI)**
+ 呼叫 時`[create-pipe](https://docs.aws.amazon.com/cli/latest/reference/pipes/create-pipe.html)`，請使用 `kms-key-identifier`選項指定 EventBridge 的客戶受管金鑰，以用於事件匯流排上的加密。

## 更新用於 EventBridge 管道加密的 AWS KMS 金鑰
<a name="eb-encryption-pipe-cmkey-update"></a>

您可以更新用於現有管道上靜態加密的 AWS KMS 金鑰。其中包含：
+ 從預設值變更為客戶受 AWS 擁有的金鑰 管金鑰。
+ 從客戶受管金鑰變更為預設值 AWS 擁有的金鑰。
+ 從一個客戶受管金鑰變更為另一個。

當您更新管道以使用不同的 AWS KMS 金鑰時，EventBridge 會解密存放在管道上的任何資料，然後使用新的金鑰對其進行加密。

**更新用於管道加密的 KMS 金鑰 （主控台）**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**管道**。

1. 選擇您要更新的管道。

1. 在管道匯流排詳細資訊頁面上，選擇**加密**索引標籤。

1. 選擇 EventBridge 在加密存放在管道上的資料時要使用的 KMS 金鑰：
   + 選擇**用於 AWS 擁有的金鑰** EventBridge，以使用 加密資料 AWS 擁有的金鑰。

      AWS 擁有的金鑰 這是 EventBridge 擁有和管理用於多個 AWS 帳戶的 KMS 金鑰。一般而言，除非您需要稽核或控制保護 資源的加密金鑰，否則 AWS 擁有的金鑰 是不錯的選擇。

     這是預設值。
   + 選擇**使用 EventBridge 的客戶受管金鑰**，以使用您指定或建立的客戶受管金鑰來加密資料。 EventBridge 

     客戶受管金鑰是您帳戶中建立、擁有和管理 AWS 的 KMS 金鑰。您可以完全控制這些 KMS 金鑰。

     1. 指定現有的客戶受管金鑰，或選擇**建立新的 KMS 金鑰**。

       EventBridge 會顯示金鑰狀態，以及與指定客戶受管金鑰相關聯的任何金鑰別名。

**更新用於管道加密的 KMS 金鑰 (CLI)**
+ 呼叫 時`[update-pipe](https://docs.aws.amazon.com/cli/latest/reference/pipes/update-pipe.html)`，請使用 `kms-key-identifier`選項指定 EventBridge 的客戶受管金鑰，以用於加密管道資料。