信標 - AWS 資料庫加密 SDK

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

信標

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

信標 (Beacon) 是截斷的雜湊型訊息驗證碼 (HMAC) 標記,可在寫入欄位的純文字值與實際儲存在資料庫中的加密值之間建立對應。信標不會改變欄位的加密狀態。信標通過字段的純文本值計算 HMAC,並將其與加密值一起存儲。此 HMAC 輸出是該欄位的純文字值的一對一 (1:1) 相符項目。HMAC 輸出會被截斷,以便多個不同的明文值對應到相同的截斷 HMAC 標籤。這些誤報會限制未經授權的使用者識別有關純文字值的區別資訊的能力。

信標只能從標記ENCRYPT_AND_SIGN的字段或SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT在您的加密操作中構建。SIGN_ONLY信標本身並未簽署或加密。您無法建構含有標記欄位的信標DO_NOTHING

您設定的信標類型會決定您可以執行的查詢類型。有兩種類型的信標支持可搜索的加密。標準信標執行相等搜尋。複合信標會結合常值純文字字串和標準信標,以執行複雜的資料庫作業。設定信標之後,您必須先設定每個信標的次要索引,才能搜尋加密的欄位。如需詳細資訊,請參閱 使用信標設定次要索引

標準信標

標準信標是在數據庫中實現可搜索加密的最簡單方法。它們只能針對單一加密或虛擬欄位執行相等搜尋。若要瞭解如何設定標準信標,請參閱設定標準信標

建構標準信標的欄位稱為信標來源。它會識別信標需要對應之資料的位置。信標來源可以是加密欄位或虛擬欄位。每個標準信標中的信標來源必須是唯一的。您無法設定兩個具有相同信標來源的信標。

標準信標可用於對加密或虛擬欄位執行相等搜尋。或者,它們可用於構建複合信標以執行更複雜的數據庫操作。為了協助您組織及管理標準信標,Datab AWS ase Encryption SDK 提供下列選擇性信標樣式,以定義標準信標的預定用途。如需詳細資訊,請參閱定義信標樣式

您可以建立對單一加密欄位執行相等搜尋的標準信標,也可以建立標準信標,透過建立虛擬欄位,在多個ENCRYPT_AND_SIGNSIGN_ONLY、和SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT欄位的串連上執行相等搜尋。

虛擬領域

虛擬欄位是由一或多個來源欄位建構的概念欄位。建立虛擬欄位不會將新欄位寫入記錄。虛擬欄位未明確儲存在資料庫中。它可用於標準信標組態,提供如何識別欄位的特定區段或串連記錄中的多個欄位以執行特定查詢的信標指示。虛擬欄位至少需要一個加密欄位。

注意

下列範例會示範轉換的類型,以及您可以使用虛擬欄位執行的查詢。在應用程式中,此範例中使用的範例欄位可能不符合信標的分佈相互關聯唯一性建議。

例如,如果您想要對FirstNameLastName欄位的串連執行相等搜尋,您可以建立下列其中一個虛擬欄位。

  • 一個虛擬字NameTag段,由字段的第一個字母構成,後跟字LastName段,全部以小寫形式構成。FirstName此虛擬欄位可讓您進行查詢NameTag=mjones

  • 一個虛擬LastFirst字段,它是從LastName現場構建的,然後是字FirstName段。此虛擬欄位可讓您進行查詢LastFirst=JonesMary

或者,如果您想要在加密欄位的特定區段上執行相等搜尋,請建立一個虛擬欄位來識別您要查詢的區段。

例如,如果您想要使用 IP 位址的前三個區段來查詢加密IPAddress欄位,請建立下列虛擬欄位。

  • 一個虛擬IPSegment領域,從構造Segments(‘.’, 0, 3)。此虛擬欄位可讓您進行查詢IPSegment=192.0.2。查詢會傳回以「192.0.2」開頭IPAddress值的所有記錄。

虛擬欄位必須是唯一的。無法從完全相同的來源欄位建構兩個虛擬欄位。

如需設定虛擬欄位及其使用它們的信標的說明,請參閱建立虛擬欄位。

複合信標

複合信標會建立可改善查詢效能的索引,並可讓您執行更複雜的資料庫作業。您可以使用複合信標來結合常值純文字字串和標準信標,以對加密記錄執行複雜的查詢,例如從單一索引查詢兩種不同的記錄類型,或查詢具有排序索引鍵的欄位組合。如需更多複合信標解決方案範例,請參閱選擇信標類型

複合信標可以使用標準信標或標準信標和簽名字段的組合來構建。它們是從零件清單中建構的。所有複合信標都應包含一份加密零件清單,以識別信標中包含的ENCRYPT_AND_SIGN欄位。每個ENCRYPT_AND_SIGN欄位都必須由標準信標識。更複雜的複合信標也可能包括一份已簽署零件的清單,這些零件可識別信標中包含的一SIGN_ONLY或多個純文SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT字欄位,以及識別複合信標可組合欄位的所有可能方式的建構函式零件清單。

注意

資 AWS 料庫加密 SDK 也支援可完全從純文字SIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT欄位設定的已簽署信標。簽署的信標是一種複合信標,可在已簽署但未加密的欄位上編製索引和執行複雜查詢。如需詳細資訊,請參閱 建立已簽署的信標

如需設定複合信標的說明,請參閱設定複合信標

您配置複合信標的方式決定了它可以執行的查詢類型。例如,您可以將某些加密和簽署的零件設定為選用,以便在查詢中獲得更大的彈性。如需複合信標可執行之查詢類型的詳細資訊,請參閱查詢信標