

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

# 使用 AWS KMS 金鑰加密 EventBridge 連線授權
<a name="encryption-connections"></a>

當您建立或更新連線時，您可以指定該連線的授權參數。EventBridge 接著會將這些參數安全地存放在 中的秘密中 AWS Secrets Manager。根據預設，EventBridge 會使用 AWS 擁有的金鑰 來加密和解密此秘密。您可以指定 EventBridge 改用客戶自管金鑰。

## AWS KMS 連線的金鑰政策
<a name="encryption-connections-key-policy"></a>

 AWS KMS 金鑰政策必須代表您授予 EventBridge 下列許可：
+ `kms:DescribeKey`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`

下列政策範例會授予所有 AWS KMS 許可。

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

****  

```
{
  "Id": "key-policy-example",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{012345678901}}:root"
      },
      "Action": "kms:*",
      "Resource": "*"
    }
  ]
}
```

------

 若要讓 EventBridge 使用客戶受管金鑰，您必須將資源標籤新增至金鑰，金鑰為 `EventBridgeApiDestinations`且值為 `true`。如需資源標籤的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[將標籤新增至 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/add-tags.html)。

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

```
"Condition": {
  "StringLike": {
    "kms:ViaService": "secretsmanager.*.amazonaws.com",
    "kms:EncryptionContext:SecretARN": [
      "arn:aws:secretsmanager:*:*:secret:events!connection/*"
    ]
  },
  "StringEquals": {
    "kms:ResourceTag/EventBridgeApiDestinations": "true"
  }
}
```

## 連線加密內容
<a name="encryption-connections-context"></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 會在所有 AWS KMS 密碼編譯操作中使用相同的加密內容。內容包含單一索引鍵/值對，其中包含秘密 ARN。

```
"encryptionContext": {
    "kms:EncryptionContext:SecretARN": "{{secret-arn}}"
}
```

## 使用跨帳戶或跨區域客戶受管金鑰進行連線
<a name="encryption-connections-cross"></a>

您可以允許不同 AWS 帳戶中的使用者或角色在您的帳戶中使用 KMS 金鑰。跨帳戶存取需要 KMS 金鑰的金鑰政策和外部使用者帳戶之 IAM 政策中的許可。

若要使用來自另一個帳戶的客戶受管金鑰，具有客戶受管金鑰的帳戶必須包含下列政策：

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::{{account}}:role/AmazonEventBridgeApiDestinationsInternalServiceRolePolicy"
  },
  "Action": [
    "kms:Decrypt",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[允許其他帳戶中的使用者使用 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。

## 撤銷客戶受管金鑰對連線的存取
<a name="encryption-connections-revoke"></a>

請注意，當您撤銷客戶受管金鑰時，即透過停用、刪除或輪換金鑰，或更新金鑰政策時，EventBridge 可能已快取金鑰值，因此金鑰仍然可以在短時間內保留對連線秘密的存取。

若要立即撤銷對連線秘密的客戶受管金鑰存取權，請取消授權或刪除連線。如需詳細資訊，請參閱[取消授權連線](eb-target-connection-deauthorize.md)及[刪除連線](eb-target-connection-delete.md)。

## 由於客戶受管金鑰錯誤而導致連線取消授權
<a name="encryption-connections-deauth"></a>

如果在嘗試加密或解密連線的秘密時遇到下列錯誤，EventBridge 會取消授權連線：
+ 已刪除客戶受管金鑰。
+ 客戶受管金鑰已停用。
+ 連線沒有存取客戶受管金鑰的必要許可。

如需詳細資訊，請參閱[取消授權連線](eb-target-connection-deauthorize.md)。