Fase 4: Generazione di uno schema di crittografia per un file tabulare - AWS Clean Rooms

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 CSV file con una riga di intestazione o un file. Parquet

È 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 verranno visualizzati o JOIN confrontati in altro modo per garantire l'uguaglianza nelle interrogazioni. In caso contrario, le SQL interrogazioni 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, consulta. 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:

  1. Quante colonne di destinazione devono essere generate

  2. Come deve essere crittografata ogni colonna di destinazione (se non del tutto)

  3. Il nome di ogni colonna di destinazione

  4. Come devono essere aggiunti i dati prima della crittografia se la colonna viene crittografata come sealed colonna

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 riempimento 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.

Tabella decisionale dello schema
Decisione Numero di colonne di destinazione dalla colonna di origine <' name-of-column '>? Tipo di colonna di destinazione: [c]cleartext, [f] fingerprint o [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 sia come siafingerprint. 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 spaziatura (solo per sealed le 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.

Esempio: generazione di uno schema di crittografia per una fingerprint colonna e una cleartext colonna

In questo esempio, perads.csv, ci sono solo due colonne: username ead_variant. Per queste colonne, vogliamo quanto segue:

  • Affinché la username colonna venga crittografata come fingerprint colonna

  • Perché la ad_variant colonna sia una cleartext colonna

Per generare uno schema di crittografia per una fingerprint colonna e una cleartext colonna
  1. (Facoltativo) Per garantire la presenza del c3r-cli.jar file e del file da crittografare:

    1. Accedere alla directory desiderata ed eseguire ls (se si utilizza un Mac oUnix/Linux) o dir se si utilizzaWindows).

    2. 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.

  2. DaCLI, esegui il seguente comando per creare uno schema in modo interattivo.

    java -jar c3r-cli.jar schema ads.csv --interactive --output=ads.json

    Nota
    • Puoi correrejava --jar PATH/TO/c3r-cli.jar. Oppure, se l'hai aggiunta PATH/TO/c3r-cli.jar alla variabile di CLASSPATH ambiente, puoi anche eseguire il nome della classe. Il client di crittografia C3R cercherà di trovarla (ad esempio,java com.amazon.psion.cli.Main). CLASSPATH

    • Il --interactive flag 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 --output flag imposta un nome di output. Se non includi il --output flag, il client di crittografia C3R tenta di scegliere un nome di output predefinito (ad esempio <input>.out.csv o per lo schema,<input>.json).

  3. PerNumber of target columns from source column ‘username’?, inserisci 1 e poi premi Invio.

  4. PerTarget column type: [c]leartext, [f]ingerprint, or [s]ealed?, inserisci f e poi premi Invio.

  5. PerTarget column headername <default 'username'>, premi Invio.

    Viene utilizzato il nome predefinito username ''.

  6. PerAdd suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>, inserisci y e poi premi Invio.

    Nota

    La modalità interattiva suggerisce suffissi da aggiungere alle intestazioni delle colonne crittografate (_fingerprintper fingerprint colonne e _sealed per sealed colonne). I suffissi possono essere utili quando si eseguono attività come il caricamento di dati o la creazione di collaborazioni. Servizi AWS 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 colonna (_sealed) e si tenta di inserirla o si tenta il JOIN contrario.

  7. PerNumber of target columns from source column ‘ad_variant’?, inserisci 1 e poi premi Invio.

  8. PerTarget column type: [c]leartext, [f]ingerprint, or [s]ealed?, inserisci c e poi premi Invio.

  9. PerTarget column headername <default 'username'>, premi Invio.

    Viene utilizzato il nome predefinito ad_variant ''.

    Lo schema viene scritto in un nuovo file chiamatoads.json.

    Nota

    È possibile visualizzare lo schema aprendolo in qualsiasi editor di testo, ad esempio Notepad on Windows or TextEdit onmacOS.

  10. Ora sei pronto per crittografare i dati.

Esempio: generazione di uno schema di crittografia con sealedfingerprint, e colonne cleartext

In questo esempio, forsales.csv, sono presenti tre colonne:username,purchased, eproduct. Per queste colonne, vogliamo quanto segue:

  • Perché la product colonna sia una sealed colonna

  • Perché la username colonna venga crittografata come fingerprint colonna

  • Perché la purchased colonna sia una cleartext colonna

Per generare uno schema di crittografia con sealedfingerprint, e cleartext colonne
  1. (Facoltativo) Per garantire la presenza del c3r-cli.jar file e del file da crittografare:

    1. Accedere alla directory desiderata ed eseguire ls (se si utilizza un Mac oUnix/Linux) o dir se si utilizzaWindows).

    2. 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.

  2. DaCLI, esegui il seguente comando per creare uno schema in modo interattivo.

    java -jar c3r-cli.jar schema sales.csv --interactive --output=sales.json

    Nota
    • Il --interactive flag 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, consultate il --noHeaders flag relativo al comando schema disponibile in. CLI

    • Il --output flag imposta un nome di output. Se non includi il --output flag, il client di crittografia C3R tenta di scegliere un nome di output predefinito (ad esempio <input>.out o per lo schema,<input>.json).

  3. PerNumber of target columns from source column ‘username’?, inserisci 1 e poi premi Invio.

  4. PerTarget column type: [c]leartext, [f]ingerprint, or [s]ealed?, inserisci f e poi premi Invio.

  5. PerTarget column headername <default 'username'>, premi Invio.

    Viene utilizzato il nome predefinito username ''.

  6. PerAdd suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>, inserisci y e poi premi Invio.

  7. PerNumber of target columns from source column ‘purchased’?, inserisci 1 e poi premi Invio.

  8. PerTarget column type: [c]leartext, [f]ingerprint, or [s]ealed?, inserisci c e poi premi Invio.

  9. PerTarget column headername <default 'purchased'>, premi Invio.

    Viene utilizzato il nome predefinito purchased ''.

  10. PerNumber of target columns from source column ‘product’?, inserisci 1 e poi premi Invio.

  11. PerTarget column type: [c]leartext, [f]ingerprint, or [s]ealed?, inserisci s e poi premi Invio.

  12. PerTarget column headername <default 'product'>, premi Invio.

    Viene utilizzato il nome predefinito product ''.

  13. Per‘product_sealed’ padding type: [n]one, [f]ixed, or [m]ax <default ’max’?>, premi Invio per scegliere il valore predefinito.

  14. 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 chiamatosales.json.

  15. Ora sei pronto per crittografare i dati.