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à.
Fase 4: Generazione di uno schema di crittografia per un file tabulare
Per crittografare i dati, è necessario uno schema di crittografia che descriva come verranno utilizzati i dati. Questa sezione descrive come il client di crittografia C3R aiuta a generare uno schema di crittografia per un file CSV con una riga di intestazione o un Parquet file.
È necessario eseguire questa operazione solo una volta per file. Una volta che lo schema esiste, può essere riutilizzato per crittografare lo stesso file (o qualsiasi file con nomi di colonna identici). Se i nomi delle colonne o lo schema di crittografia desiderato cambiano, è necessario aggiornare il file dello schema. Per ulteriori informazioni, consulta (Facoltativo) Creare uno schema (utenti esperti).
Importante
È fondamentale che tutte le parti che collaborano utilizzino la stessa chiave segreta condivisa. Le parti che collaborano dovrebbero inoltre coordinare i nomi delle colonne in modo che corrispondano, se lo saranno JOINed o altrimenti confrontato per quanto riguarda l'uguaglianza nelle interrogazioni. In caso contrario, le query SQL potrebbero produrre risultati imprevisti o errati. Tuttavia, ciò non è necessario se il creatore della collaborazione ha abilitato l'impostazione di allowJoinsOnColumnsWithDifferentNames crittografia durante la creazione della collaborazione. Per ulteriori informazioni sulle impostazioni relative alla crittografia, vedere. Parametri di calcolo crittografico
Quando viene eseguito in modalità schema, il client di crittografia C3R analizza il file di input colonna per colonna, chiedendo se e come tale colonna debba essere trattata. Se il file contiene molte colonne non desiderate per l'output crittografato, la generazione dello schema interattivo potrebbe diventare noiosa perché è necessario saltare ogni colonna indesiderata. Per evitare ciò, è possibile scrivere manualmente uno schema o creare una versione semplificata del file di input contenente solo le colonne desiderate. Quindi, il generatore di schemi interattivo potrebbe essere eseguito su quel file ridotto. Il client di crittografia C3R fornisce informazioni sul file di schema e chiede all'utente come includere o crittografare (se del caso) le colonne di origine nell'output di destinazione.
Per ogni colonna di origine nel file di input, viene richiesto di:
-
Quante colonne di destinazione devono essere generate
-
In che modo ogni colonna di destinazione deve essere crittografata (se non del tutto)
-
Il nome di ogni colonna di destinazione
-
Come devono essere aggiunti i dati prima della crittografia se la colonna viene crittografata come sealed column
Nota
Quando si crittografano i dati per una colonna che è stata crittografata come sealed colonna, è necessario determinare quali dati devono essere riempiti. Il client di crittografia C3R suggerisce un padding predefinito durante la generazione dello schema che riempie tutte le voci di una colonna con la stessa lunghezza.
Quando si determina la lunghezza difixed, si noti che il padding è in byte, non in bit.
Di seguito è riportata una tabella decisionale per la creazione dello schema.
| Decisione | Numero di colonne di destinazione dalla colonna di origine <' name-of-column '>? | Tipo di colonna di destinazione: [c] cleartext, [f] fingerprint, oppure [s] sealed ? | Nome dell'intestazione della colonna di destinazione <default 'name-of-column'> | Aggiungi il suffisso <suffix>all'intestazione per indicare come è stata crittografata, [y] sì o [n] no <default 'yes'> | <' name-of-column _sealed'> tipo di imbottitura: [n] one, [f] fissa o [m] max <default 'max'> |
|---|---|---|---|---|---|
| Lascia la colonna non crittografata. | 1 | c | Non applicabile | Non applicabile | Non applicabile |
| Crittografa la colonna come fingerprint colonna. | 1 | f | Scegli il valore predefinito o inserisci un nuovo nome di intestazione. | Immettete y per scegliere default (_fingerprint) o invion. |
Non applicabile |
| Crittografa la colonna come sealed colonna. | 1 | s | Scegli il valore predefinito o inserisci un nuovo nome di intestazione. | Immettete y per scegliere default (_sealed) o invion. |
Scegliete il tipo di imbottitura. Per ulteriori informazioni, consulta (Facoltativo) Creare uno schema (utenti esperti). |
| Crittografa la colonna come entrambe fingerprint e sealed. | 2 |
Inserisci la prima colonna di destinazione: f. Inserisci la seconda colonna di destinazione: s. |
Scegli le intestazioni di destinazione per ogni colonna di destinazione. | Inserisci y per scegliere il valore predefinito o inserisci n. |
Scegli il tipo di imbottitura (per sealed solo colonne). Per ulteriori informazioni, consulta (Facoltativo) Creare uno schema (utenti esperti). |
Di seguito sono riportati due esempi di come creare schemi di crittografia. Il contenuto esatto dell'interazione dipende dal file di input e dalle risposte fornite.
Esempi
Esempio: generare uno schema di crittografia per un fingerprint colonna e a cleartext column
In questo esempio, forads.csv, ci sono solo due colonne: username ead_variant. Per queste colonne, vogliamo quanto segue:
-
Affinché la
usernamecolonna venga crittografata comefingerprintcolonna -
Perché la
ad_variantcolonna sia unacleartextcolonna
Per generare uno schema di crittografia per un fingerprint colonna e a cleartext column
-
(Facoltativo) Per garantire c3r-cli.jar sono presenti il file e il file da crittografare:
-
Accedere alla directory desiderata ed eseguire
ls(se si utilizza un Mac oppure Unix/Linux) odirse si utilizza Windows). -
Visualizza l'elenco dei file di dati tabulari (ad esempio, .csv) e scegli un file da crittografare.
In questo esempio,
ads.csvè il file che vogliamo crittografare.
-
-
Dalla CLI, esegui il comando seguente per creare uno schema in modo interattivo.
java -jar c3r-cli.jar schema ads.csv --interactive --output=ads.jsonNota
-
Puoi correre.
java --jar PATH/TO/c3r-cli.jarOppure, se l'hai aggiuntaPATH/TO/c3r-cli.jaralla variabile di ambiente CLASSPATH, puoi anche eseguire il nome della classe. Il client di crittografia C3R cercherà nel CLASSPATH per trovarla (ad esempio,).java com.amazon.psion.cli.Main -
Il
--interactiveflag seleziona la modalità interattiva per lo sviluppo dello schema. Questo guida l'utente attraverso una procedura guidata per la creazione dello schema. Gli utenti con competenze avanzate possono creare il proprio schema JSON senza utilizzare la procedura guidata. Per ulteriori informazioni, consulta (Facoltativo) Creare uno schema (utenti esperti). -
Il
--outputflag imposta un nome di output. Se non includi il--outputflag, il client di crittografia C3R tenta di scegliere un nome di output predefinito (ad esempio<input>.out.csvo per lo schema,<input>.json).
-
-
Per
Number of target columns from source column ‘username’?, inserisci1e poi premi Invio. -
Per
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, inseriscife poi premi Invio. -
Per
Target column headername <default 'username'>, premi Invio.Viene utilizzato il nome predefinito
username''. -
Per
Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>, inserisciye poi premi Invio.Nota
La modalità interattiva suggerisce suffissi da aggiungere alle intestazioni delle colonne crittografate (per
_fingerprintfingerprint colonne e per_sealedsealed colonne). I suffissi potrebbero essere utili quando esegui attività come il caricamento di dati Servizi AWS o la creazione di collaborazioni. AWS Clean Rooms Questi suffissi possono aiutare a indicare cosa si può fare con i dati crittografati in ogni colonna. Ad esempio, le cose non funzioneranno se si crittografa una colonna come sealed column (_sealed) e prova a JOIN su di esso o prova il contrario. -
Per
Number of target columns from source column ‘ad_variant’?, inserisci1e poi premi Invio. -
Per
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, inseriscice poi premi Invio. -
Per
Target column headername <default 'username'>, premi Invio.Viene utilizzato il nome predefinito
ad_variant''.Lo schema viene scritto in un nuovo file chiamato
ads.json.Nota
È possibile visualizzare lo schema aprendolo in qualsiasi editor di testo, ad esempio Notepad on Windows oppure TextEdit on macOS.
-
Ora sei pronto per crittografare i dati.
Esempio: generare uno schema di crittografia con sealed, fingerprinte cleartext columns
In questo esempio, persales.csv, ci sono tre colonne: usernamepurchased, eproduct. Per queste colonne, vogliamo quanto segue:
-
Perché la
productcolonna sia unasealedcolonna -
Perché la
usernamecolonna venga crittografata comefingerprintcolonna -
Perché la
purchasedcolonna sia unacleartextcolonna
Per generare uno schema di crittografia con sealed, fingerprinte cleartext columns
-
(Facoltativo) Per garantire c3r-cli.jar sono presenti il file e il file da crittografare:
-
Accedere alla directory desiderata ed eseguire
ls(se si utilizza un Mac oppure Unix/Linux) odirse si utilizza Windows). -
Visualizza l'elenco dei file di dati tabulari (.csv) e scegli un file da crittografare.
In questo esempio,
sales.csvè il file che vogliamo crittografare.
-
-
Dalla CLI, esegui il comando seguente per creare uno schema in modo interattivo.
java -jar c3r-cli.jar schema sales.csv --interactive --output=sales.jsonNota
-
Il
--interactiveflag seleziona la modalità interattiva per lo sviluppo dello schema. Questo guida l'utente attraverso un flusso di lavoro guidato per la creazione dello schema. -
Se sei un utente esperto, puoi creare il tuo schema JSON senza utilizzare il flusso di lavoro guidato. Per ulteriori informazioni, consulta (Facoltativo) Creare uno schema (utenti esperti).
-
Per i file.csv senza intestazioni di colonna, consulta il
--noHeadersflag per il comando schema disponibile nella CLI. -
Il
--outputflag imposta un nome di output. Se non includi il--outputflag, il client di crittografia C3R tenta di scegliere un nome di output predefinito (ad esempio<input>.outo per lo schema,<input>.json).
-
-
Per
Number of target columns from source column ‘username’?, inserisci1e poi premi Invio. -
Per
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, inseriscife poi premi Invio. -
Per
Target column headername <default 'username'>, premi Invio.Viene utilizzato il nome predefinito
username''. -
Per
Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>, inserisciye poi premi Invio. -
Per
Number of target columns from source column ‘purchased’?, inserisci1e poi premi Invio. -
Per
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, inseriscice poi premi Invio. -
Per
Target column headername <default 'purchased'>, premi Invio.Viene utilizzato il nome predefinito
purchased''. -
Per
Number of target columns from source column ‘product’?, inserisci1e poi premi Invio. -
Per
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, inseriscise poi premi Invio. -
Per
Target column headername <default 'product'>, premi Invio.Viene utilizzato il nome predefinito
product''. -
Per
‘product_sealed’ padding type: [n]one, [f]ixed, or [m]ax <default ’max’?>, premi Invio per scegliere il valore predefinito. -
Per
Byte-length beyond max length to pad cleartext to in ‘product_sealed’ <default ‘0’>?premere Invio per scegliere l'impostazione predefinita.Lo schema viene scritto in un nuovo file chiamato
sales.json. -
Ora sei pronto per crittografare i dati.