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à.
Configurazione dei beacon
La nostra libreria di crittografia lato client è stata rinominata Database Encryption SDK. AWS Questa guida per sviluppatori fornisce ancora informazioni sul DynamoDB Encryption Client. |
Esistono due tipi di beacon che supportano la crittografia ricercabile. I beacon standard eseguono ricerche di uguaglianza. Sono il modo più semplice per implementare la crittografia ricercabile nel database. I beacon composti combinano stringhe letterali in chiaro e beacon standard per eseguire query più complesse.
I beacon sono progettati per essere implementati in nuovi database non popolati. Qualsiasi beacon configurato in un database esistente mapperà solo i nuovi record scritti nel database. I beacon vengono calcolati in base al valore in chiaro di un campo, una volta crittografato il campo non è più possibile per il beacon di mappare i dati esistenti. Dopo aver scritto nuovi record con un beacon, non è possibile aggiornare la configurazione del beacon. Tuttavia, puoi aggiungere nuovi beacon per i nuovi campi che aggiungi al tuo record.
Dopo aver determinato i modelli di accesso, la configurazione dei beacon dovrebbe essere il secondo passaggio dell'implementazione del database. Quindi, dopo aver configurato tutti i beacon, è necessario creare un portachiavi AWS KMS gerarchico, definire la versione del beacon, configurare un indice secondario per ogni beacon, definire le azioni crittografiche e configurare il database e il client Database Encryption SDK. AWS Per ulteriori informazioni, consulta Utilizzo dei beacon.
Per semplificare la definizione della versione beacon, consigliamo di creare elenchi per beacon standard e composti. Aggiungi ogni beacon che crei al rispettivo elenco di beacon standard o compositi mentre li configuri.
Argomenti
Configurazione dei beacon standard
I beacon standard sono il modo più semplice per implementare la crittografia ricercabile nel database. Possono eseguire ricerche di uguaglianza solo per un singolo campo crittografato o virtuale.
Esempio di sintassi di configurazione
Per configurare un beacon standard, fornite i seguenti valori.
- Nome del beacon
-
Il nome che usi per interrogare un campo crittografato.
Il nome di un beacon può avere lo stesso nome di un campo crittografato o di un campo virtuale, ma non può avere lo stesso nome di un campo non crittografato. Se possibile, consigliamo vivamente di utilizzare il nome del campo crittografato o del campo virtuale da cui è costruito il beacon standard. Due beacon diversi non possono avere lo stesso nome. Per informazioni su come determinare il nome del beacon migliore per l'implementazione, consulta Scelta del nome del beacon.
- Lunghezza del faro
-
Il numero di bit del valore hash del beacon che vengono conservati dopo il troncamento.
La lunghezza del faro determina il numero medio di falsi positivi prodotti da un determinato faro. Per ulteriori informazioni e assistenza nella determinazione della lunghezza del beacon appropriata per l'implementazione, vedere Determinazione della lunghezza del beacon.
- Fonte del beacon (opzionale)
-
Il campo da cui è costruito un beacon standard.
La fonte del beacon deve essere un nome di campo o un indice che si riferisce al valore di un campo annidato. Quando il nome del beacon è lo stesso della fonte del beacon, puoi omettere la fonte del beacon dalla configurazione e AWS Database Encryption SDK utilizzerà automaticamente il nome del beacon come fonte del beacon.
Creare un campo virtuale
Per creare un campo virtuale, è necessario fornire un nome per il campo virtuale e un elenco dei campi di origine. L'ordine in cui vengono aggiunti i campi di origine all'elenco delle parti virtuali determina l'ordine in cui vengono concatenati per creare il campo virtuale. L'esempio seguente concatena due campi sorgente nella loro interezza per creare un campo virtuale.
Nota
Ti consigliamo di verificare che i campi virtuali producano il risultato previsto prima di popolare il database. Per ulteriori informazioni, consulta Testing beacon outputs.
Per creare un campo virtuale con un segmento specifico di un campo sorgente, è necessario definire tale trasformazione prima di aggiungere il campo di origine all'elenco delle parti virtuali.
Considerazioni sulla sicurezza per i campi virtuali
I beacon non alterano lo stato crittografato del campo. Tuttavia, quando si utilizzano i beacon, esiste un compromesso intrinseco tra l'efficienza delle query e la quantità di informazioni rivelate sulla distribuzione dei dati. Il modo in cui configuri il beacon determina il livello di sicurezza che viene mantenuto da quel beacon.
Evitate di creare un campo virtuale con campi sorgente che si sovrappongono ai beacon standard esistenti. La creazione di campi virtuali che includono un campo sorgente che è già stato utilizzato per creare un beacon standard può ridurre il livello di sicurezza di entrambi i beacon. La misura in cui la sicurezza viene ridotta dipende dal livello di entropia aggiunto dai campi sorgente aggiuntivi. Il livello di entropia è determinato dalla distribuzione di valori univoci nel campo sorgente aggiuntivo e dal numero di bit con cui il campo sorgente aggiuntivo contribuisce alla dimensione complessiva del campo virtuale.
È possibile utilizzare la popolazione e la lunghezza del beacon per determinare se i campi di origine di un campo virtuale preservano la sicurezza del set di dati. La popolazione è il numero previsto di valori univoci in un campo. Non è necessario che la tua popolazione sia precisa. Per informazioni sulla stima della popolazione di un campo, vedi Stima della popolazione.
Considera il seguente esempio quando esamini la sicurezza dei tuoi campi virtuali.
-
Beacon1 è costruito da.
FieldA
FieldA
ha una popolazione superiore a 2 (lunghezza Beacon1). -
Beacon2 è costruito da
VirtualField
, che è costruito da,, e.FieldA
FieldB
FieldC
FieldD
Insieme,FieldB
FieldC
, eFieldD
hanno una popolazione superiore a 2 N
Beacon2 preserva la sicurezza sia di Beacon1 che di Beacon2 se le seguenti affermazioni sono vere:
N ≥ (Beacon1 length)/2
e
N ≥ (Beacon2 length)/2
Definizione degli stili dei beacon
I beacon standard possono essere utilizzati per eseguire ricerche di uguaglianza per un campo crittografato o virtuale. In alternativa, possono essere utilizzati per costruire beacon composti per eseguire operazioni di database più complesse. Per aiutarvi a organizzare e gestire i beacon standard, il AWS Database Encryption SDK fornisce i seguenti stili di beacon opzionali che definiscono l'uso previsto di un beacon standard.
Nota
Per definire gli stili dei beacon, è necessario utilizzare la versione 3.2 o successiva di Database Encryption SDK. AWS Distribuisci la nuova versione a tutti i lettori prima di aggiungere stili beacon alle configurazioni dei beacon.
Configurazione dei beacon composti
I beacon composti combinano stringhe letterali in chiaro e beacon standard per eseguire operazioni complesse sul database, come interrogare due diversi tipi di record da un singolo indice o interrogare una combinazione di campi con una chiave di ordinamento. I beacon composti possono essere costruiti da, e campi. ENCRYPT_AND_SIGN
SIGN_ONLY
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
È necessario creare un beacon standard per ogni campo crittografato incluso nel beacon composto.
Nota
Ti consigliamo di verificare che i beacon compositi producano il risultato previsto prima di popolare il database. Per ulteriori informazioni, consulta Testing beacon outputs.
Esempio di sintassi di configurazione
È possibile definire le parti crittografate e le parti firmate in elenchi definiti localmente o globalmente. Ti consigliamo di definire le parti crittografate e firmate in un elenco globale nella versione beacon, quando possibile. Definendo le parti crittografate e firmate a livello globale, è possibile definire ogni parte una volta e quindi riutilizzarle in più configurazioni beacon composte. Se intendete utilizzare una parte crittografata o firmata una sola volta, potete definirla in un elenco locale nella configurazione del beacon composto. È possibile fare riferimento sia alle parti locali che a quelle globali nell'elenco dei costruttori.
Se definite gli elenchi di parti crittografati e firmati a livello globale, dovete fornire un elenco di parti del costruttore che identifichi tutti i modi possibili in cui il beacon composto può assemblare i campi nella configurazione del beacon composto.
Nota
Per definire elenchi di parti crittografati e firmati a livello globale, è necessario utilizzare la versione 3.2 o successiva di Database Encryption SDK. AWS Distribuisci la nuova versione a tutti i lettori prima di definire nuove parti a livello globale.
Non è possibile aggiornare le configurazioni dei beacon esistenti per definire elenchi di parti crittografati e firmati a livello globale.
Per configurare un beacon composto, fornite i seguenti valori.
- Nome del beacon
-
Il nome che usi per interrogare un campo crittografato.
Il nome di un beacon può avere lo stesso nome di un campo crittografato o di un campo virtuale, ma non può avere lo stesso nome di un campo non crittografato. Due beacon non possono avere lo stesso nome di beacon. Per informazioni su come determinare il nome del beacon migliore per l'implementazione, consulta Scelta del nome del beacon.
- Carattere diviso
-
Il personaggio usato per separare le parti che compongono il faro composto.
Il carattere diviso non può apparire nei valori in chiaro di nessuno dei campi da cui è costruito il beacon composto.
- Elenco delle parti crittografato
-
Identifica i
ENCRYPT_AND_SIGN
campi inclusi nel beacon composto.Ogni parte deve includere un nome e un prefisso. Il nome della parte deve essere il nome del beacon standard costruito a partire dal campo crittografato. Il prefisso può essere qualsiasi stringa, ma deve essere univoco. Una parte crittografata non può avere lo stesso prefisso di una parte firmata. Si consiglia di utilizzare un valore breve che distingua la parte dalle altre parti servite dal beacon composto.
Ti consigliamo di definire le parti crittografate a livello globale quando possibile. Potresti prendere in considerazione la definizione locale di una parte crittografata se intendi utilizzarla solo in un beacon composto. Una parte crittografata definita localmente non può avere lo stesso prefisso o nome di una parte crittografata definita a livello globale.
- Elenco delle parti firmate
-
Identifica i campi firmati inclusi nel beacon composto.
Nota
Le parti firmate sono opzionali. È possibile configurare un beacon composto che non faccia riferimento a parti firmate.
Ogni parte deve includere un nome, una fonte e un prefisso. L'origine è il
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
campoSIGN_ONLY
o il campo identificato dalla parte. L'origine deve essere un nome di campo o un indice che si riferisce al valore di un campo annidato. Se il nome della parte identifica la fonte, puoi omettere la fonte e AWS Database Encryption SDK utilizzerà automaticamente il nome come fonte. Ti consigliamo di specificare l'origine come nome della parte quando possibile. Il prefisso può essere qualsiasi stringa, ma deve essere univoco. Una parte firmata non può avere lo stesso prefisso di una parte crittografata. Si consiglia di utilizzare un valore breve che distingua la parte dalle altre parti servite dal beacon composto.Ti consigliamo di definire le parti firmate a livello globale quando possibile. Potresti prendere in considerazione la definizione locale di una parte firmata se intendi utilizzarla solo in un beacon composto. Una parte firmata definita localmente non può avere lo stesso prefisso o nome di una parte firmata definita a livello globale.
- Elenco dei costruttori
-
Identifica i costruttori che definiscono i diversi modi in cui le parti crittografate e firmate possono essere assemblate dal beacon composto. È possibile fare riferimento sia alle parti locali che a quelle globali nell'elenco dei costruttori.
Se costruite il vostro beacon composto da parti crittografate e firmate definite a livello globale, dovete fornire un elenco di costruttori.
Se non utilizzate parti crittografate o firmate definite a livello globale per costruire il beacon composto, l'elenco dei costruttori è facoltativo. Se non specificate un elenco di costruttori, AWS Database Encryption SDK assembla il beacon composto con il seguente costruttore predefinito.
-
Tutte le parti firmate nell'ordine in cui sono state aggiunte all'elenco delle parti firmate
-
Tutte le parti crittografate nell'ordine in cui sono state aggiunte all'elenco delle parti crittografate
-
Tutte le parti sono obbligatorie
- Costruttori
-
Ogni costruttore è un elenco ordinato di parti del costruttore che definisce un modo in cui il faro composto può essere assemblato. Le parti del costruttore vengono unite nell'ordine in cui vengono aggiunte all'elenco, con ogni parte separata dal carattere di divisione specificato.
Ogni parte del costruttore nomina una parte crittografata o firmata e definisce se tale parte è obbligatoria o facoltativa all'interno del costruttore. Ad esempio, se si desidera interrogare un beacon composto su
Field1
, eField1.Field2
Field1.Field2.Field3
, contrassegnarloField3
come facoltativoField2
e creare un costruttore.Ogni costruttore deve avere almeno una parte obbligatoria. Si consiglia di rendere obbligatoria la prima parte di ogni costruttore in modo da poter utilizzare l'
BEGINS_WITH
operatore nelle query.Un costruttore ha successo se tutte le parti necessarie sono presenti nel record. Quando si scrive un nuovo record, il beacon composto utilizza l'elenco dei costruttori per determinare se il beacon può essere assemblato in base ai valori forniti. Tenta di assemblare il beacon nell'ordine in cui i costruttori sono stati aggiunti all'elenco dei costruttori e utilizza il primo costruttore che riesce. Se nessun costruttore riesce, il beacon non viene scritto nel record.
Tutti i lettori e gli scrittori devono specificare lo stesso ordine di costruttori per garantire che i risultati delle query siano corretti.
Utilizzate le seguenti procedure per specificare il vostro elenco di costruttori.
-
Create una parte costruttore per ogni parte crittografata e parte firmata per definire se quella parte è necessaria o meno.
Il nome della parte del costruttore deve essere il nome del beacon standard o del campo firmato che rappresenta.
-
Create un costruttore per ogni possibile modo in cui il beacon composto può essere assemblato utilizzando le parti del costruttore create nel passaggio 1.
Ad esempio, se si desidera eseguire un'interrogazione su
Field1.Field2.Field3
andField4.Field2.Field3
, è necessario creare due costruttori.Field1
eField4
possono essere entrambi obbligatori perché sono definiti in due costruttori separati. -
Create un elenco di costruttori che includa tutti i costruttori creati nel passaggio 2.
-
Specificate
constructorList
quando create il beacon composto.
-