用戶端加密和伺服器端加密 - AWS 資料庫加密 SDK

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

用戶端加密和伺服器端加密

我們的用戶端加密程式庫已重新命名為AWS資料庫加密 SDK。本開發人員指南仍提供 DynamoDB 加密用戶端的相關資訊。

適用於 DynamoDB 的資料AWS庫加密 SDK 支援用戶端加密,您可以在其中加密表格資料,然後再將資料表資料傳送到資料庫。不過,DynamoDB 提供伺服器端靜態加密功能,可在資料表保留至磁碟時透明地加密資料表,並在您存取資料表時對其進行解密。

您所應選擇的工具,取決於資料的敏感度以及應用程式的安全性需求。您可以針對 DynamoDB 使用AWS資料庫加密開發套件,也可以使用靜態加密。當您將加密和簽署的項目傳送到 DynamoDB 時,DynamoDB 無法將這些項目識別為受保護。它只會偵測具有二進位屬性值的一般資料表項目。

伺服器端靜態加密

DynamoDB 支援靜態加密,這是一項伺服器端加密功能,其中 DynamoDB 會在資料表保留至磁碟時為您透明地為您加密資料表,並在您存取資料表資料時對其進行解密。

當您使用 AWS SDK 與 DynamoDB 互動時,預設情況下,您的資料會在透過 HTTPS 連線傳輸過程中加密、在 DynamoDB 端點解密,然後再重新加密,然後再儲存在 DynamoDB 中。

  • 默認情況下加密。DynamoDB 會在寫入所有表格時透明地加密和解密這些資料表。沒有啟用或停用靜態加密的選項。

  • DynamoDB 會建立和管理加密編譯金鑰。每個表的唯一AWS KMS key密鑰受到永遠不會離開 AWS Key Management Service(AWS KMS)未加密的保護。根據預設,DynamoDB 會AWS 擁有的金鑰在 DynamoDB 服務帳戶中使用,但您可以在帳戶中選擇AWS 受管金鑰客戶管理的金鑰來保護部分或全部表格。

  • 所有表格資料都會在磁碟上加密。將加密的表格儲存到磁碟時,DynamoDB 會加密所有表格資料,包括主索引鍵以及本機和全域次要索引。如果您的資料表有排序索引鍵,則某些標示範圍界限的排序索引鍵將會以純文字的格式存放在資料表中繼資料中。

  • 與資料表相關的物件也會加密。靜態加密可在 DynamoDB 串流全域資料表備份寫入耐用媒體時提供保護。

  • 當您訪問它們時,您的項目將被解密。當您存取資料表時,DynamoDB 會解密包含目標項目的表格部分,並將純文字項目傳回給您。

AWS適用於資料庫加密開發套件

無論是在傳輸中、靜態時,還是從來源儲存至 DynamoDB 時,用戶端加密都可為資料提供端對端的保護。您的純文字資料絕不會對任何第三方公開,包括 AWS 在內。您可以將適用於 DynamoDB 的AWS資料庫加密開發套件與新的 DynamoDB 表格搭配使用,也可以將現有的 Amazon DynamoDB 表格遷移到第 3 版。 適用於 Java 用戶端加密程式庫的 x 個。

  • 傳輸中和靜態的資料都受到保護。它永遠不會暴露給任何第三方,包括AWS.

  • 您可以簽署您的資料表項目。您可以指示 DynamoDB 的AWS資料庫加密 SDK 計算全部或部分表格項目 (包括主索引鍵屬性) 的簽章。此簽章可讓您偵測對整體項目的未授權變更,包括新增或刪除屬性,或是交換屬性值。

  • 您可以透過選取金鑰圈來決定資料受到保護方式。您的金鑰圈會決定保護資料金鑰的包裝金鑰,以及最終保護資料的金鑰。使用對您的任務實用的最安全的包裝密鑰。

  • 適用於 DynamoDB 的AWS資料庫加密開發套件不會加密整個資料表。您可以選擇項目中要加密的屬性。適用於 DynamoDB 的AWS資料庫加密開發套件不會加密整個項目。它不會加密屬性名稱,或是主索引鍵 (分割區索引鍵和排序索引鍵) 屬性的名稱或值。

AWS Encryption SDK

如果您要加密儲存在 DynamoDB 中的資料,我們建議您使用適用於 DynamoDB 的資料AWS庫加密開發套件。

AWS Encryption SDK 是用戶端加密程式庫,可協助您進行一般資料的加密和解密。雖然它可保護任何類型的資料,但在設計上並不是用來處理結構化資料 (例如資料庫記錄)。與 DynamoDB 的AWS資料庫加密 SDK 不同,AWS Encryption SDK無法提供項目層級完整性檢查,也沒有邏輯可識別屬性或防止主金鑰加密。

如果您使用AWS Encryption SDK來加密表格的任何元素,請記住它與 DynamoDB 的AWS資料庫加密 SDK 不相容。您無法用一個程式庫加密,但用另一個程式庫解密。