Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Paso 4: generar un esquema de cifrado para un archivo tabular
Para cifrar datos, se requiere un esquema de cifrado que describa cómo se utilizarán los datos. En esta sección se describe cómo el cliente de cifrado C3R ayuda a generar un esquema de cifrado para un CSV archivo con una fila de encabezado o un Parquet archivo.
Solo tiene que hacerlo una vez por archivo. Una vez creado el esquema, se puede volver a utilizar para cifrar el mismo archivo (o cualquier archivo con nombres de columna idénticos). Si los nombres de las columnas o el esquema de cifrado deseado cambian, debe actualizar el archivo de esquema. Para obtener más información, consulte (Opcional) Crear un esquema (usuarios avanzados).
importante
Es imprescindible que todas las partes colaboradoras utilicen la misma clave secreta compartida. Las partes colaboradoras también deben coordinar los nombres de las columnas para que coincidan si se va a ejecutar en ellas una operación JOIN o si se van a comparar de cualquier otro modo para garantizar la igualdad en las consultas. De lo contrario, las SQL consultas podrían producir resultados inesperados o incorrectos. No obstante, esto no será necesario si el creador de la colaboración habilitó la configuración de cifrado allowJoinsOnColumnsWithDifferentNames
al crear la colaboración. Para obtener más información acerca de los ajustes relevantes para el cifrado, consulte Parámetros de computación criptográfica.
Cuando se ejecuta en modo de esquema, el cliente de cifrado de C3R revisa el archivo de entrada columna por columna y le pregunta si debe tratarse esa columna y de qué manera. Si el archivo contiene un gran número de columnas que no son necesarias para la salida cifrada, la generación del esquema interactivo podría resultar tediosa, ya que habría que saltarse todas las columnas no deseadas. Para evitarlo, puede escribir un esquema manualmente o crear una versión simplificada del archivo de entrada que incluya solo las columnas deseadas. Entonces, el generador de esquemas interactivo podrá ejecutarse en ese archivo reducido. El cliente de cifrado de C3R genera información sobre el archivo de esquema y le pregunta cómo se deben incluir o cifrar las columnas de origen (si es que se deben incluir) en el resultado de destino.
Para cada columna de origen del archivo de entrada, se le preguntará lo siguiente:
-
Cuántas columnas de destino se deben generar
-
Cómo se debe cifrar cada columna de destino (si procede)
-
El nombre de cada columna de destino
-
Cómo deben rellenarse los datos antes del cifrado si la columna se cifra como columna sealed
nota
Al cifrar datos de una columna que se ha cifrado como columna sealed, debe determinar qué datos precisan relleno. El cliente de cifrado de C3R sugiere un relleno predeterminado durante la generación del esquema, consistente en rellenar todas las entradas de una columna hasta que alcancen la misma longitud.
Al determinar la longitud fixed
, tenga en cuenta que el relleno está en bytes, no en bits.
A continuación se proporciona una tabla de decisión para crear el esquema.
Decisión | ¿Número de columnas de destino de la columna de origen <' name-of-column '>? | Tipo de columna de destino: [c] cleartext, [f] fingerprint o [s] sealed? | Nombre del encabezado de la columna de destino <default 'name-of-column'> | Añadir un sufijo <sufijo> al encabezado para indicar cómo se cifró, [y] sí o [n] no <predeterminado 'yes'> | <' name-of-column _sealed'> tipo de relleno: [n] uno, [f] fijo o [m] máximo <default 'max'> |
---|---|---|---|---|---|
Deje la columna sin cifrar. | 1 | c | No aplicable | No aplicable | No aplicable |
Cifre la columna como columna fingerprint. | 1 | f | Elija el nombre predeterminado o introduzca un nombre de encabezado nuevo. | Introduzca y para elegir el valor predeterminado (_fingerprint ) o introduzcan . |
No aplicable |
Cifre la columna como columna sealed. | 1 | s | Elija el nombre predeterminado o introduzca un nombre de encabezado nuevo. | Introduzca y para elegir el valor predeterminado (_sealed ) o introduzcan . |
Elija el tipo de relleno. Para obtener más información, consulte (Opcional) Crear un esquema (usuarios avanzados). |
Cifre la columna como fingerprint y sealed. | 2 |
Introduzca la primera columna de destino: f. Introduzca la segunda columna de destino: s. |
Elija los encabezados de destino para cada columna de destino. | Introduzca y para elegir el valor predeterminado o introduzca n. . |
Elija el tipo de relleno (solo para columnas sealed). Para obtener más información, consulte (Opcional) Crear un esquema (usuarios avanzados). |
A continuación se muestran dos ejemplos de cómo crear esquemas de cifrado. El contenido exacto de la interacción depende del archivo de entrada y de las respuestas que proporcione.
Ejemplos
Ejemplo: Generar un esquema de cifrado para una columna fingerprint y una columna cleartext
En este ejemplo, para ads.csv
, solo hay dos columnas: username
y ad_variant
. Para estas columnas, queremos lo siguiente:
-
Que la columna
username
se cifre como columnafingerprint
-
Que la columna
ad_variant
sea una columnacleartext
Para generar un esquema de cifrado para una columna fingerprint y una columna cleartext
-
(Opcional) Para garantizar que el archivo c3r-cli.jar y el archivo que se va a cifrar estén presentes:
-
Desplácese al directorio deseado y ejecute
ls
(si utiliza Mac o Unix/Linux) odir
si utiliza Windows). -
Vea la lista de archivos de datos tabulares (por ejemplo, .csv) y elija el archivo que desea cifrar.
En este ejemplo,
ads.csv
es el archivo que queremos cifrar.
-
-
DesdeCLI, ejecuta el siguiente comando para crear un esquema de forma interactiva.
java -jar c3r-cli.jar schema ads.csv --interactive --output=ads.json
nota
-
Puede ejecutar
java --jar PATH/TO/c3r-cli.jar
. O bien, si la ha agregadoPATH/TO/c3r-cli.jar
a su variable de CLASSPATH entorno, también puede ejecutar el nombre de la clase. El cliente de cifrado C3R buscará en el CLASSPATH para encontrarlo (por ejemplo,java com.amazon.psion.cli.Main
). -
El indicador
--interactive
selecciona el modo interactivo para desarrollar el esquema. Esto guía al usuario a través de un asistente para crear el esquema. Los usuarios con conocimientos avanzados pueden crear su propio esquema JSON sin necesidad de utilizar el asistente. Para obtener más información, consulte (Opcional) Crear un esquema (usuarios avanzados). -
El indicador
--output
establece un nombre de salida. Si no incluye el indicador--output
, el cliente de cifrado de C3R intentará elegir un nombre de salida predeterminado (por ejemplo,<input>.out.csv
o, para el esquema,<input>.json
).
-
-
En
Number of target columns from source column ‘username’?
, escriba1
y luego presione Intro. -
En
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?
, escribaf
y luego presione Intro. -
En
Target column headername <default 'username'>
, presione Intro.Se utiliza el nombre predeterminado ‘
username
’. -
En
Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>
, escribay
y luego presione Intro.nota
El modo interactivo sugiere añadir sufijos a los encabezados de las columna cifrados (
_fingerprint
para las columnas fingerprint y_sealed
para las columnas sealed). Los sufijos pueden resultar útiles a la hora de realizar tareas como cargar datos Servicios de AWS o crear AWS Clean Rooms colaboraciones. Estos sufijos pueden ayudar a indicar qué se puede hacer con los datos cifrados de cada columna. Por ejemplo, la operación no funcionará si cifra una columna como columna sealed (_sealed
) e intenta una operación JOIN en ella o a la inversa. -
En
Number of target columns from source column ‘ad_variant’?
, escriba1
y luego presione Intro. -
En
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?
, escribac
y luego presione Intro. -
En
Target column headername <default 'username'>
, presione Intro.Se utiliza el nombre predeterminado ‘
ad_variant
’.El esquema se escribe en un nuevo archivo llamado
ads.json
.nota
Puede ver el esquema abriéndolo en cualquier editor de texto, por ejemplo, Notepad en Windows o TextEdit en macOS.
-
Ahora ya puede cifrar datos.
Ejemplo: Generar un esquema de cifrado con columnas sealed, fingerprint y columnas
En este ejemplo, para sales.csv
, hay tres columnas: username
, purchased
y product
. Para estas columnas, queremos lo siguiente:
-
Que la
product
columna sea una columnasealed
-
Que la columna
username
se cifre como columnafingerprint
-
Que la
purchased
columna sea una columnacleartext
Para generar un esquema de cifrado con columnas sealed, fingerprint y cleartext
-
(Opcional) Para garantizar que el archivo c3r-cli.jar y el archivo que se va a cifrar estén presentes:
-
Desplácese al directorio deseado y ejecute
ls
(si utiliza Mac o Unix/Linux) odir
si utiliza Windows). -
Vea la lista de archivos de datos tabulares (.csv) y elija el archivo que desea cifrar.
En este ejemplo,
sales.csv
es el archivo que queremos cifrar.
-
-
DesdeCLI, ejecuta el siguiente comando para crear un esquema de forma interactiva.
java -jar c3r-cli.jar schema sales.csv --interactive --output=sales.json
nota
-
El indicador
--interactive
selecciona el modo interactivo para desarrollar el esquema. Esto guía al usuario a través de un flujo de trabajo guiado para crear el esquema. -
Si es un usuario avanzado, puede crear su propio esquema JSON sin utilizar el flujo de trabajo guiado. Para obtener más información, consulte (Opcional) Crear un esquema (usuarios avanzados).
-
Para los archivos.csv sin encabezados de columna, consulte la
--noHeaders
marca del comando de esquema disponible en. CLI -
El indicador
--output
establece un nombre de salida. Si no incluye el indicador--output
, el cliente de cifrado de C3R intentará elegir un nombre de salida predeterminado (por ejemplo,<input>.out
o, para el esquema,<input>.json
).
-
-
En
Number of target columns from source column ‘username’?
, escriba1
y luego presione Intro. -
En
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?
, escribaf
y luego presione Intro. -
En
Target column headername <default 'username'>
, presione Intro.Se utiliza el nombre predeterminado ‘
username
’. -
En
Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>
, escribay
y luego presione Intro. -
En
Number of target columns from source column ‘purchased’?
, escriba1
y luego presione Intro. -
En
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?
, escribac
y luego presione Intro. -
En
Target column headername <default 'purchased'>
, presione Intro.Se utiliza el nombre predeterminado ‘
purchased
’. -
En
Number of target columns from source column ‘product’?
, escriba1
y luego presione Intro. -
En
Target column type: [c]leartext, [f]ingerprint, or [s]ealed?
, escribas
y luego presione Intro. -
En
Target column headername <default 'product'>
, presione Intro.Se utiliza el nombre predeterminado ‘
product
’. -
En
‘product_sealed’ padding type: [n]one, [f]ixed, or [m]ax <default ’max’?>
, presione Intro para elegir el valor predeterminado. -
Para
Byte-length beyond max length to pad cleartext to in ‘product_sealed’ <default ‘0’>?
, presione Intro para elegir el valor predeterminado.El esquema se escribe en un nuevo archivo llamado
sales.json
. -
Ahora ya puede cifrar datos.