

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

# 什麼是 AWS 資料庫加密 SDK？
<a name="what-is-database-encryption-sdk"></a>


****  

|  | 
| --- |
| 我們的用戶端加密程式庫已重新命名為 AWS 資料庫加密 SDK。此開發人員指南仍提供有關 [DynamoDB 加密用戶端](legacy-dynamodb-encryption-client.md)的資訊。 | 

 AWS Database Encryption SDK 是一組軟體程式庫，可讓您在資料庫設計中包含用戶端加密。 AWS Database Encryption SDK 提供記錄層級加密解決方案。您可以指定加密的欄位，以及簽章中包含的欄位，以確保資料的真實性。加密傳輸中和靜態的敏感資料有助於確保任何第三方都無法使用您的純文字資料，包括 AWS。 AWS Database Encryption SDK 是根據 Apache 2.0 授權免費提供。

此開發人員指南提供 AWS 資料庫加密 SDK 的概念概觀，包括[其架構的簡介](concepts.md)、[如何保護資料](how-it-works.md)的詳細資訊、它與[伺服器端加密](client-server-side.md)的差異，以及[為您的應用程式選擇關鍵元件](configure.md)以協助您開始使用的指引。

 AWS Database Encryption SDK 支援*具有屬性*層級加密的 Amazon DynamoDB。

 AWS Database Encryption SDK 具有下列優點：

**專為資料庫應用程式而設計**  
您不需要是密碼編譯專家，即可使用 AWS 資料庫加密 SDK。實作包括專為使用現有應用程式而設計的協助程式方法。  
在您建立和設定必要的元件之後，加密用戶端會在您將記錄新增至資料庫時，以透明方式加密和簽署您的記錄，並在擷取它們時加以驗證和解密。

**包含安全加密和簽署**  
 AWS Database Encryption SDK 包含安全實作，使用唯一的資料加密金鑰來加密每個記錄中的欄位值，然後簽署記錄以保護它免受未經授權的變更，例如新增或刪除欄位，或交換加密的值。

**使用來自任何來源的密碼編譯資料**  
 AWS Database Encryption SDK 使用 [keyring ](concepts.md#keyring-concept)來產生、加密和解密唯一資料加密金鑰，以保護您的記錄。Keyring 會決定加密該資料[金鑰的包裝](concepts.md#wrapping-key)金鑰。  
您可以使用來自任何來源的包裝金鑰，包括密碼編譯服務，例如 [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/)(AWS KMS) 或 [AWS CloudHSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/)。 AWS 資料庫加密 SDK 不需要 AWS 帳戶 或任何 AWS 服務。

**支援密碼編譯資料快取**  
[AWS KMS 階層式 keyring](use-hierarchical-keyring.md) 是一種密碼編譯資料快取解決方案，使用保留在 Amazon DynamoDB 資料表中的 AWS KMS 受保護*分支金鑰*，然後本機快取用於加密和解密操作的分支金鑰資料，以減少 AWS KMS 呼叫次數。它可讓您在對稱加密 KMS 金鑰下保護密碼編譯資料，而無需 AWS KMS 在每次加密或解密記錄時呼叫 。對於需要將呼叫降至最低的應用程式而言， AWS KMS 階層式 keyring 是理想的選擇 AWS KMS。

**可搜尋加密**  
您可以設計資料庫來搜尋加密的記錄，而無需解密整個資料庫。根據您的威脅模型和查詢需求，您可以使用[可搜尋的加密](searchable-encryption.md)，對加密的資料庫執行完全相符的搜尋或更自訂的複雜查詢。

**支援多租戶資料庫結構描述**  
 AWS 資料庫加密 SDK 可讓您使用不同的加密資料隔離每個租用戶，以共用結構描述保護存放在資料庫中的資料。如果您有多個使用者在資料庫中執行加密操作，請使用其中一個 AWS KMS keyring 為每位使用者提供可在其密碼編譯操作中使用的不同金鑰。如需詳細資訊，請參閱[使用多租戶資料庫](configure.md#config-multitenant-databases)。

**支援無縫結構描述更新**  
當您設定 AWS 資料庫加密 SDK 時，您會提供[密碼編譯動作](concepts.md#crypt-actions)，告訴用戶端要加密和簽署哪些欄位、要簽署哪些欄位 （但不加密），以及要忽略哪些欄位。使用 AWS 資料庫加密 SDK 保護您的記錄之後，您仍然可以[變更資料模型](ddb-update-data-model.md)。您可以在單一部署中更新您的密碼編譯動作，例如新增或移除加密的欄位。

## 在開放原始碼儲存庫中開發
<a name="dbesdk-repos"></a>

 AWS Database Encryption SDK 是在 GitHub 上的開放原始碼儲存庫中開發。您可以使用這些儲存庫來檢視程式碼、讀取和提交問題，以及尋找實作特有的資訊。

**適用於 DynamoDB 的 AWS 資料庫加密 SDK**
+ GitHub 上的 [aws-database-encryption-sdk-dynamodb](https://github.com/aws/aws-database-encryption-sdk-dynamodb/) 儲存庫支援 Java、.NET 和 Rust 中適用於 DynamoDB 的 AWS 資料庫加密開發套件最新版本。

  適用於 DynamoDB 的 AWS Database Encryption SDK 是 [Dafny](https://github.com/dafny-lang/dafny/blob/master/README.md) 的產品，這是一種驗證感知語言，您可以在其中撰寫規格、實作它們的程式碼，以及測試它們的證明。結果是一個程式庫，可在確保功能正確性的架構中實作適用於 DynamoDB 的 AWS Database Encryption SDK 的功能。

## 支援和維護
<a name="support"></a>

 AWS Database Encryption SDK 使用與 AWS SDK 和工具相同的[維護政策](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html)，包括其版本控制和生命週期階段。根據最佳實務，我們建議您使用 AWS 資料庫加密 SDK 的最新可用版本來執行資料庫實作，並在發行新版本時升級。

如需詳細資訊，請參閱《SDK [AWS 和工具參考指南》中的 SDKs 和工具維護政策](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html)。 AWS SDKs 

## 傳送意見回饋
<a name="feedback"></a>

我們誠摯歡迎您提供意見回饋。如果您有問題或意見、問題或報告，請使用以下資源。

如果您在 AWS 資料庫加密 SDK 中發現潛在的安全性漏洞，請[通知 AWS 安全性](https://aws.amazon.com/security/vulnerability-reporting/)。請勿建立公有 GitHub 問題。

若要提供有關此文件的意見回饋，請使用任何頁面上的意見回饋連結。