Scelta del tipo di faro - AWS Crittografia database SDK

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scelta del tipo di faro

La nostra libreria di crittografia lato client è stata rinominata Database Encryption SDK. AWS Questa guida per sviluppatori fornisce ancora informazioni sul DynamoDB Encryption Client.

Con la crittografia ricercabile, puoi cercare record crittografati mappando i valori in chiaro in un campo crittografato con un beacon. Il tipo di beacon configurato determina il tipo di interrogazioni che è possibile eseguire.

Consigliamo vivamente di identificare e pianificare i tipi di query da eseguire prima di configurare i beacon. Dopo aver configurato i beacon, è necessario configurare un indice secondario per ogni beacon prima di poter eseguire la ricerca nei campi crittografati. Per ulteriori informazioni, consulta Configurazione degli indici secondari con beacon.

I beacon creano una mappa tra il valore in chiaro scritto in un campo e il valore crittografato effettivamente memorizzato nel database. Non è possibile confrontare i valori di due beacon standard, anche se contengono lo stesso testo in chiaro sottostante. I due beacon standard produrranno due tag HMAC diversi per gli stessi valori di testo in chiaro. Di conseguenza, i beacon standard non possono eseguire le seguenti interrogazioni.

  • beacon1 = beacon2

  • beacon1 IN (beacon2)

  • value IN (beacon1, beacon2, ...)

  • CONTAINS(beacon1, beacon2)

È possibile eseguire le query precedenti solo se si confrontano le parti firmate dei beacon composti, ad eccezione dell'CONTAINSoperatore, che è possibile utilizzare con i beacon composti per identificare l'intero valore di un campo crittografato o firmato contenuto nel beacon assemblato. Quando si confrontano parti firmate, è possibile includere facoltativamente il prefisso di una parte crittografata, ma non il valore crittografato di un campo. Per ulteriori informazioni sui tipi di interrogazioni che i beacon standard e composti possono eseguire, vedete Interrogazione dei beacon.

Prendi in considerazione le seguenti soluzioni di crittografia ricercabili quando esamini i modelli di accesso al database. Gli esempi seguenti definiscono quale beacon configurare per soddisfare diversi requisiti di crittografia e interrogazione.

Beacon standard

I beacon standard possono eseguire solo ricerche di uguaglianza. È possibile utilizzare i beacon standard per eseguire le seguenti interrogazioni.

Interroga un singolo campo crittografato

Se desideri identificare i record che contengono un valore specifico per un campo crittografato, crea un beacon standard.

Per l'esempio seguente, si consideri un database denominato UnitInspection che tiene traccia dei dati di ispezione per un impianto di produzione. Ogni record del database contiene campi denominati work_idinspection_date,inspector_id_last4, eunit. L'ID ispettore completo è un numero compreso tra 0 e 99.999.999. Tuttavia, per garantire che il set di dati sia distribuito uniformemente, memorizza inspector_id_last4 solo le ultime quattro cifre dell'ID dell'ispettore. Ogni campo del database è identificato dalla chiave primaria. work_id I unit campi inspector_id_last4 e sono contrassegnati ENCRYPT_AND_SIGN nelle azioni crittografiche.

Di seguito è riportato un esempio di voce in chiaro nel database. UnitInspection

{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
Interroga un singolo campo crittografato in un record

Se il inspector_id_last4 campo deve essere crittografato, ma è comunque necessario interrogarlo per verificare le corrispondenze esatte, costruisci un beacon standard a partire dal campo. inspector_id_last4 Quindi, utilizzate il beacon standard per creare un indice secondario. È possibile utilizzare questo indice secondario per eseguire query sul campo inspector_id_last4 crittografato.

Per informazioni sulla configurazione dei beacon standard, vedere Configurazione dei beacon standard.

Interroga un campo virtuale

Un campo virtuale è un campo concettuale costruito da uno o più campi di origine. Se desideri eseguire ricerche di uguaglianza per un segmento specifico di un campo crittografato o eseguire ricerche di uguaglianza sulla concatenazione di più campi, costruisci un beacon standard da un campo virtuale. Tutti i campi virtuali devono includere almeno un campo sorgente crittografato.

Gli esempi seguenti creano campi virtuali per il Employees database. Di seguito è riportato un esempio di record di testo in chiaro nel Employees database.

{ "EmployeeID": 101, "SSN": 000-00-0000, "LastName": "Jones", "FirstName": "Mary", "Address": { "Street": "123 Main", "City": "Anytown", "State": "OH", "ZIPCode": 12345 } }
Interroga un segmento di un campo crittografato

Per questo esempio, il SSN campo è crittografato.

Se desideri interrogare il SSN campo utilizzando le ultime quattro cifre di un numero di previdenza sociale, crea un campo virtuale che identifichi il segmento che intendi interrogare.

Un Last4SSN campo virtuale, costruito da, Suffix(4) consente di eseguire interrogazioni. Last4SSN=0000 Usa questo campo virtuale per costruire un beacon standard. Quindi, usa il beacon standard per creare un indice secondario. È possibile utilizzare questo indice secondario per eseguire interrogazioni sul campo virtuale. Questa query restituisce tutti i record con un SSN valore che termina con le ultime quattro cifre specificate.

Interroga la concatenazione di più campi
Nota

L'esempio seguente illustra i tipi di trasformazioni e interrogazioni che è possibile eseguire con un campo virtuale. In applicazione, i campi di esempio utilizzati in questo esempio potrebbero non soddisfare le raccomandazioni sull'unicità della distribuzione e della correlazione per i beacon.

Se desideri eseguire ricerche di uguaglianza su una concatenazione di LastName campi FirstName and, puoi creare un NameTag campo virtuale, composto dalla prima lettera del campo, seguito dal FirstName campo, tutto in minuscolo. LastName Usa questo campo virtuale per costruire un beacon standard. Quindi, usa il beacon standard per creare un indice secondario. È possibile utilizzare questo indice secondario per eseguire interrogazioni NameTag=mjones sul campo virtuale.

Almeno uno dei campi di origine deve essere crittografato. FirstNameO LastName potrebbero essere crittografati oppure potrebbero essere crittografati entrambi. Tutti i campi sorgente in testo semplice devono essere contrassegnati come SIGN_ONLY o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT nelle azioni crittografiche.

Per informazioni sulla configurazione dei campi virtuali e dei beacon che li utilizzano, consulta Creazione di un campo virtuale.

Beacon composti

I beacon composti creano un indice a partire da stringhe letterali in chiaro e beacon standard per eseguire operazioni complesse sul database. È possibile utilizzare i beacon composti per eseguire le seguenti interrogazioni.

Interroga una combinazione di campi crittografati su un singolo indice

Se devi interrogare una combinazione di campi crittografati su un singolo indice, crea un beacon composto che combini i singoli beacon standard costruiti per ogni campo crittografato per formare un unico indice.

Dopo aver configurato il beacon composto, è possibile creare un indice secondario che lo specifichi come chiave di partizione per eseguire query con corrispondenza esatta o con una chiave di ordinamento per eseguire query più complesse. Gli indici secondari che specificano il beacon composto come chiave di ordinamento possono eseguire query di corrispondenza esatta e query complesse più personalizzate.

Per gli esempi seguenti, prendete in considerazione un database denominato UnitInspection che tiene traccia dei dati di ispezione per un impianto di produzione. Ogni record del database contiene campi denominati work_idinspection_date,inspector_id_last4, eunit. L'ID ispettore completo è un numero compreso tra 0 e 99.999.999. Tuttavia, per garantire che il set di dati sia distribuito uniformemente, memorizza inspector_id_last4 solo le ultime quattro cifre dell'ID dell'ispettore. Ogni campo del database è identificato dalla chiave primaria. work_id I unit campi inspector_id_last4 e sono contrassegnati ENCRYPT_AND_SIGN nelle azioni crittografiche.

Di seguito è riportato un esempio di voce in chiaro nel database. UnitInspection

{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
Esegue ricerche di uguaglianza su una combinazione di campi crittografati

Se desideri interrogare il UnitInspection database per verificare le corrispondenze esatteinspector_id_last4.unit, crea innanzitutto beacon standard distinti per i inspector_id_last4 campi and. unit Quindi, create un faro composto dai due beacon standard.

Dopo aver configurato il beacon composto, create un indice secondario che specifichi il beacon composto come chiave di partizione. Utilizzate questo indice secondario per ricercare le corrispondenze esatte su. inspector_id_last4.unit Ad esempio, è possibile interrogare questo faro per trovare un elenco di ispezioni eseguite da un ispettore per una determinata unità.

Esegui interrogazioni complesse su una combinazione di campi crittografati

Se desideri interrogare il UnitInspection database su inspector_id_last4 andinspector_id_last4.unit, crea innanzitutto beacon standard distinti per i inspector_id_last4 campi and. unit Quindi, create un beacon composto dai due beacon standard.

Dopo aver configurato il beacon composto, create un indice secondario che specifichi il beacon composto come chiave di ordinamento. Utilizzate questo indice secondario per interrogare il UnitInspection database alla ricerca di voci che iniziano con un determinato ispettore o interrogare il database per ottenere un elenco di tutte le unità all'interno di uno specifico intervallo di ID di unità che sono state ispezionate da un determinato ispettore. Puoi anche eseguire ricerche con corrispondenze esatte su. inspector_id_last4.unit

Per informazioni sulla configurazione dei beacon composti, consulta Configurazione dei beacon composti.

Interroga una combinazione di campi crittografati e di testo semplice su un singolo indice

Se devi interrogare una combinazione di campi crittografati e di testo in chiaro su un singolo indice, crea un beacon composto che combini singoli beacon standard e campi di testo in chiaro per formare un unico indice. I campi di testo in chiaro utilizzati per costruire il beacon composto devono essere contrassegnati o nelle azioni crittografiche. SIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT

Dopo aver configurato il beacon composto, è possibile creare un indice secondario che specifichi il beacon composto come chiave di partizione per eseguire query con corrispondenza esatta o con una chiave di ordinamento per eseguire query più complesse. Gli indici secondari che specificano il beacon composto come chiave di ordinamento possono eseguire query di corrispondenza esatta e query complesse più personalizzate.

Per gli esempi seguenti, prendete in considerazione un database denominato UnitInspection che tiene traccia dei dati di ispezione per un impianto di produzione. Ogni record del database contiene campi denominati work_idinspection_date,inspector_id_last4, eunit. L'ID ispettore completo è un numero compreso tra 0 e 99.999.999. Tuttavia, per garantire che il set di dati sia distribuito uniformemente, memorizza inspector_id_last4 solo le ultime quattro cifre dell'ID dell'ispettore. Ogni campo del database è identificato dalla chiave primaria. work_id I unit campi inspector_id_last4 e sono contrassegnati ENCRYPT_AND_SIGN nelle azioni crittografiche.

Di seguito è riportato un esempio di voce in chiaro nel database. UnitInspection

{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
Esegue ricerche di uguaglianza su una combinazione di campi

Se desideri interrogare il UnitInspection database per le ispezioni condotte da un ispettore specifico in una data specifica, crea innanzitutto un beacon standard per il campo. inspector_id_last4 Il inspector_id_last4 campo è contrassegnato ENCRYPT_AND_SIGN nelle azioni crittografiche. Tutte le parti crittografate richiedono un proprio beacon standard. Il inspection_date campo è contrassegnato SIGN_ONLY e non richiede un beacon standard. Quindi, create un faro composto dal inspection_date campo e dal faro standard. inspector_id_last4

Dopo aver configurato il beacon composto, create un indice secondario che specifichi il beacon composto come chiave di partizione. Utilizzate questo indice secondario per interrogare i database alla ricerca di record con corrispondenze esatte con una determinata data di ispezione e ispezione. Ad esempio, è possibile interrogare il database per ottenere un elenco di tutte le ispezioni 8744 condotte dall'ispettore il cui ID termina in una data specifica.

Esegui interrogazioni complesse su una combinazione di campi

Se desideri interrogare il database per le ispezioni condotte all'interno di un inspection_date intervallo o interrogare il database per le ispezioni inspection_date condotte su un particolare vincolo inspector_id_last4 oinspector_id_last4.unit, crea prima beacon standard distinti per i campi and. inspector_id_last4 unit Quindi, create un beacon composto dal campo di testo in chiaro e dai due beacon standard. inspection_date

Dopo aver configurato il beacon composto, create un indice secondario che specifichi il beacon composto come chiave di ordinamento. Utilizzate questo indice secondario per eseguire interrogazioni relative alle ispezioni condotte in date specifiche da un ispettore specifico. Ad esempio, è possibile interrogare il database per ottenere un elenco di tutte le unità ispezionate nella stessa data. In alternativa, è possibile interrogare il database per ottenere un elenco di tutte le ispezioni eseguite su un'unità specifica tra un determinato intervallo di date di ispezione.

Per informazioni sulla configurazione dei beacon composti, consulta Configurazione dei beacon composti.