

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

# 使用伺服器端加密保護 Amazon SNS 資料
<a name="sns-server-side-encryption"></a>

伺服器端加密 (SSE) 可讓您使用 AWS Key Management Service () 中管理的金鑰來保護 Amazon SNS 主題中的訊息內容，以將敏感資料儲存在加密的主題中AWS KMS。

Amazon SNS 一收到訊息，SSE 就會將其加密。訊息會以加密形式儲存，且只在傳送時才會解密。
+ 如需有關使用 AWS 管理主控台 或 管理 SSE 的資訊 適用於 Java 的 AWS SDK （透過使用 `[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)`和 `[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)` API 動作設定 `KmsMasterKeyId` 屬性），請參閱 [使用伺服器端加密設定 Amazon SNS 主題加密](sns-enable-encryption-for-topic.md)。
+ 如需有關使用 CloudFormation （透過使用 `[AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)` 資源設定 `KmsMasterKeyId` 屬性） 建立加密主題的資訊，請參閱 *AWS CloudFormation 使用者指南*。

**重要**  
所有對啟用 SSE 之主題的請求都必須使用 HTTPS 和[簽章版本 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)。  
如需有關其他服務與加密主題之間相容性的資訊，請參閱您的服務說明文件。  
Amazon SNS 只支援對稱加密 KMS 金鑰。您無法使用任何其他類型的 KMS 金鑰來加密服務資源。如需判斷 KMS 金鑰是否為對稱加密金鑰的說明，請參閱[識別非對稱 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)。

AWS KMS 結合了安全、高可用性的硬體和軟體，以提供針對雲端擴展的金鑰管理系統。當您搭配 使用 Amazon SNS 時 AWS KMS，加密訊息資料[的資料金鑰](#sse-key-terms)也會加密，並使用其保護的資料存放。

以下為使用 AWS KMS的優點：
+ 您可以自行建立和管理 [AWS KMS key](#sse-key-terms) 金鑰。
+ 您也可以使用 AWS Amazon SNS 的受管 KMS 金鑰，這些金鑰對於每個帳戶和區域都是唯一的。
+  AWS KMS 安全標準可協助您符合加密相關的合規要求。

如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[什麼是 AWS Key Management Service？](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

## 加密範圍
<a name="what-does-sse-encrypt"></a>

SSE 會加密 Amazon SNS 主題中的訊息內文。

SSE 不會加密下列項目：
+ 主題中繼資料 (主題名稱和屬性)
+ 訊息中繼資料 (主旨、訊息 ID、時間戳記和屬性)
+ 資料保護政策 
+ 每個主題指標

**注意**  
只有在啟用加密主題後傳送的訊息，才會對訊息進行加密。Amazon SNS 不會加密待處理訊息。
即使已停用其主題的加密，已加密訊息仍會維持加密。

## 重要用語
<a name="sse-key-terms"></a>

以下重要術語有助於您更加了解 SSE 的功能。如需描述的詳細資訊，請參閱 *[Amazon Simple Notification Service API 參考](https://docs.aws.amazon.com/sns/latest/api/)*。

**資料金鑰**  
資料加密金鑰 (DEK) 負責加密 Amazon SNS 訊息的內容。  
如需詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的[資料金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)，以及 *AWS Encryption SDK 開發人員指南*中的[信封加密](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/how-it-works.html#envelope-encryption)。

**AWS KMS key ID**  
別名、別名 ARN、金鑰 ID 或 的金鑰 ARN AWS KMS key，或自訂 AWS KMS- 在您的 帳戶或其他帳戶中。雖然 AWS KMS Amazon SNS AWS 受管 的別名一律為 `alias/aws/sns`，但自訂的別名 AWS KMS 可以是 `alias/{{MyAlias}}`。您可以使用這些 AWS KMS 金鑰來保護 Amazon SNS 主題中的訊息。  
請謹記以下幾點：  
+ 第一次使用 AWS 管理主控台 來指定主題的 Amazon SNS AWS 受管 KMS 時， 會 AWS KMS 建立 Amazon SNS 的 AWS 受管 KMS。
+ 或者，當您第一次在已啟用 SSE 的主題上使用 `Publish`動作時， 會 AWS KMS 建立 Amazon SNS 的 AWS 受管 KMS。
您可以建立 AWS KMS 金鑰、定義控制如何使用 AWS KMS 金鑰的政策，以及使用 AWS KMS 主控台的 **AWS KMS keys**區段或 `[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)` AWS KMS 動作來稽核 AWS KMS 用量。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的 [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) 和[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。如需識別 AWS KMS 符的更多範例，請參閱 *AWS Key Management Service API 參考*中的 [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)。如需尋找 AWS KMS 識別符的資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[尋找金鑰 ID 和 ARN](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn)。  
使用 需支付額外費用 AWS KMS。如需詳細資訊，請參閱 [估算 AWS KMS 成本](sns-key-management.md#sse-estimate-kms-usage-costs) 和 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing)。