Etapa 4: gerar um esquema de criptografia para um arquivo tabular - AWS Clean Rooms

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Etapa 4: gerar um esquema de criptografia para um arquivo tabular

Para criptografar dados, é necessário ter um esquema de criptografia que descreva como os dados serão usados. Esta seção descreve como o cliente de criptografia C3R ajuda na geração de um esquema de criptografia para um arquivo CSV com uma linha de cabeçalho ou um arquivo Parquet.

É necessário fazer isso apenas uma vez por arquivo. Após a criação do esquema, ele poderá ser reutilizado para criptografar o mesmo arquivo (ou qualquer arquivo com nomes de coluna idênticos). Se os nomes de coluna ou o esquema de criptografia desejado mudarem, será necessário atualizar o arquivo do esquema. Para obter mais informações, consulte (Opcional) Criar um esquema (usuários avançados).

Importante

É fundamental que todas as partes colaboradoras usem a mesma chave secreta compartilhada. As partes colaboradoras também deverão coordenar os nomes de coluna levando em conta se as colunas serão unidas (JOIN) ou se serão comparadas para garantir a igualdade nas consultas. Caso contrário, as consultas SQL podem produzir resultados inesperados ou incorretos. No entanto, isso não será necessário se o criador da colaboração tiver habilitado a configuração de criptografia allowJoinsOnColumnsWithDifferentNames durante a criação da colaboração. Para ter mais informações sobre as configurações relevantes para criptografia, consulte Parâmetros de computação criptográfica.

Quando executado no modo de esquema, o cliente de criptografia C3R percorre o arquivo de entrada coluna por coluna, perguntando se e como a coluna em questão deve ser tratada. Se o arquivo contiver muitas colunas indesejadas para a saída criptografada, a geração do esquema interativo poderá se tornar fatigante porque será necessário ignorar cada coluna indesejada. Para evitar isso, escreva manualmente um esquema ou crie uma versão simplificada do arquivo de entrada com apenas as colunas desejadas. Depois, o gerador de esquema interativo poderá ser executado nesse arquivo reduzido. O cliente de criptografia C3R gera informações sobre o arquivo do esquema e pergunta como as colunas de origem devem ser incluídas ou criptografadas (se houver) na saída de destino.

Para cada coluna de origem no arquivo de entrada, será perguntado:

  1. Quantas colunas de destino devem ser geradas.

  2. Como cada coluna de destino deve ser criptografada (se for o caso).

  3. O nome da coluna de destino.

  4. Como os dados devem ser preenchidos antes da criptografia se a coluna estiver sendo criptografada como uma coluna sealed.

nota

Ao criptografar dados de uma coluna que foi criptografada como sealed, é necessário determinar quais dados precisam ser preenchidos. Durante a geração do esquema, o cliente de criptografia C3R sugere um preenchimento padrão que usa o mesmo tamanho para preencher todas as entradas em uma coluna.

Ao determinar o tamanho de fixed, observe que o preenchimento está em bytes, não em bits.

Veja a seguir uma tabela de decisão para criar o esquema.

Tabela de decisão do esquema
Decisão Número de colunas de destino da coluna de origem <' name-of-column '>? Tipo de coluna de destino: [c] cleartext, [f] fingerprint ou [s] sealed? Nome do cabeçalho da coluna de destino <default 'name-of-column'> Adicione um sufixo <suffix> ao cabeçalho para indicar como ele foi criptografado, [y] yes ou [n] no <default 'yes'> <' name-of-column _sealed'> tipo de preenchimento: [n] um, [f] fixo ou [m] max <default 'max'>
Deixe a coluna sem criptografia. 1 c Não aplicável Não aplicável Não aplicável
Criptografe a coluna como fingerprint. 1 f Escolha o padrão ou insira um novo nome de cabeçalho. Digite y para escolher o padrão (_fingerprint) ou insira n. Não aplicável
Criptografe a coluna como sealed. 1 s Escolha o padrão ou insira um novo nome de cabeçalho. Digite y para escolher o padrão (_sealed) ou insira n.

Escolha o tipo de preenchimento.

Para obter mais informações, consulte (Opcional) Criar um esquema (usuários avançados).

Criptografe a coluna como fingerprint e sealed. 2

Insira a primeira coluna de destino: f.

Insira a segunda coluna de destino: s.

Selecione os cabeçalhos de destino para cada coluna de destino. Digite y para escolher o padrão ou insira n.

Escolha o tipo de preenchimento (somente para colunas sealed).

Para obter mais informações, consulte (Opcional) Criar um esquema (usuários avançados).

Veja a seguir dois exemplos de como criar esquemas de criptografia. O conteúdo exato da sua interação depende do arquivo de entrada e das respostas fornecidas.

Exemplo: gerar um esquema de criptografia para as colunas fingerprint e cleartext

Neste exemplo, para ads.csv, há apenas duas colunas: username e ad_variant. Para essas colunas, queremos o seguinte:

  • A coluna username seja criptografada como fingerprint.

  • A coluna ad_variant seja uma cleartext.

Como gerar um esquema de criptografia para as colunas fingerprint e cleartext
  1. (Opcional) Para garantir que o arquivo c3r-cli.jar e o arquivo a ser criptografado estejam presentes:

    1. Acesse o diretório desejado e execute ls (se estiver usando o Mac ou o Unix/Linux) ou dir se estiver usando o Windows).

    2. Visualize a lista de arquivos de dados tabulares (por exemplo, .csv) e escolha um arquivo para criptografar.

      Neste exemplo, ads.csv é o arquivo que queremos criptografar.

  2. Na CLI, execute o comando a seguir para criar um esquema interativamente.

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

    nota
    • É possível executar java --jar PATH/TO/c3r-cli.jar. Ou, se você adicionou PATH/TO/c3r-cli.jar à variável de ambiente CLASSPATH, também poderá executar o nome da classe. O cliente de criptografia C3R vai examinar o CLASSPATH para encontrá-la (por exemplo, java com.amazon.psion.cli.Main).

    • O sinalizador --interactive seleciona o modo interativo para desenvolver o esquema. Isso orienta o usuário por um assistente para criação do esquema. Usuários com habilidades avançadas podem criar um esquema JSON próprio sem usar o assistente. Para obter mais informações, consulte (Opcional) Criar um esquema (usuários avançados).

    • O sinalizador --output define um nome de saída. Se você não incluir o sinalizador --output, o cliente de criptografia C3R tentará escolher um nome de saída padrão (como <input>.out.csv, ou <input>.json para o esquema).

  3. Em Number of target columns from source column ‘username’?, insira 1 e pressione Enter.

  4. Em Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, insira f e pressione Enter.

  5. Em Target column headername <default 'username'>, pressione Enter.

    O nome padrão “username” é usado.

  6. Em Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>, insira y e pressione Enter.

    nota

    O modo interativo sugere sufixos para adicionar aos cabeçalhos das colunas criptografadas (_fingerprint para colunas fingerprint e _sealed para colunas sealed). Os sufixos podem ser úteis quando você está executando tarefas como carregar dados Serviços da AWS ou criar AWS Clean Rooms colaborações. Esses sufixos podem ajudar a indicar o que pode ser feito com os dados criptografados em cada coluna. Por exemplo, os recursos não funcionarão se você criptografar uma coluna como sealed (_sealed) e tentar JOIN ou o contrário.

  7. Em Number of target columns from source column ‘ad_variant’?, insira 1 e pressione Enter.

  8. Em Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, insira c e pressione Enter.

  9. Em Target column headername <default 'username'>, pressione Enter.

    O nome padrão “ad_variant” é usado.

    O esquema é gravado em um novo arquivo chamado ads.json.

    nota

    É possível visualizar o esquema abrindo-o em qualquer editor de texto, como o Notepad no Windows ou o TextEdit no macOS.

  10. Agora está tudo pronto para criptografar dados.

Exemplo: gerar um esquema de criptografia com as colunas sealed, fingerprint e cleartext.

Neste exemplo, para sales.csv, há três colunas: username, purchased e product. Para essas colunas, queremos o seguinte:

  • A coluna product seja uma sealed.

  • A coluna username seja criptografada como fingerprint.

  • A coluna purchased seja uma cleartext.

Como gerar um esquema de criptografia com as colunas sealed, fingerprint e cleartext
  1. (Opcional) Para garantir que o arquivo c3r-cli.jar e o arquivo a ser criptografado estejam presentes:

    1. Acesse o diretório desejado e execute ls (se estiver usando o Mac ou o Unix/Linux) ou dir se estiver usando o Windows).

    2. Visualize a lista de arquivos de dados tabulares (.csv) e escolha um arquivo para criptografar.

      Neste exemplo, sales.csv é o arquivo que queremos criptografar.

  2. Na CLI, execute o comando a seguir para criar um esquema interativamente.

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

    nota
    • O sinalizador --interactive seleciona o modo interativo para desenvolver o esquema. Isso orienta o usuário por um assistente guiado para criação do esquema.

    • Se você for um usuário avançado, poderá criar um esquema JSON próprio sem usar o fluxo de trabalho guiado. Para obter mais informações, consulte (Opcional) Criar um esquema (usuários avançados).

    • Com relação a arquivos .csv sem cabeçalhos de coluna, consulte o sinalizador --noHeaders do comando schema disponível na CLI.

    • O sinalizador --output define um nome de saída. Se você não incluir o sinalizador --output, o cliente de criptografia C3R tentará escolher um nome de saída padrão (como <input>.out, ou <input>.json para o esquema).

  3. Em Number of target columns from source column ‘username’?, insira 1 e pressione Enter.

  4. Em Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, insira f e pressione Enter.

  5. Em Target column headername <default 'username'>, pressione Enter.

    O nome padrão “username” é usado.

  6. Em Add suffix '_fingerprint' to header to indicate how it was encrypted, [y]es or [n]o <default 'yes'>, insira y e pressione Enter.

  7. Em Number of target columns from source column ‘purchased’?, insira 1 e pressione Enter.

  8. Em Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, insira c e pressione Enter.

  9. Em Target column headername <default 'purchased'>, pressione Enter.

    O nome padrão “purchased” é usado.

  10. Em Number of target columns from source column ‘product’?, insira 1 e pressione Enter.

  11. Em Target column type: [c]leartext, [f]ingerprint, or [s]ealed?, insira s e pressione Enter.

  12. Em Target column headername <default 'product'>, pressione Enter.

    O nome padrão “product” é usado.

  13. Em ‘product_sealed’ padding type: [n]one, [f]ixed, or [m]ax <default ’max’?>, pressione Enter para escolher o padrão.

  14. Em Byte-length beyond max length to pad cleartext to in ‘product_sealed’ <default ‘0’>?, pressione Enter para escolher o padrão.

    O esquema é gravado em um novo arquivo chamado sales.json.

  15. Agora está tudo pronto para criptografar dados.