Configurando um fluxo de trabalho gerenciado para descriptografar um arquivo - AWS Transfer Family

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

Configurando um fluxo de trabalho gerenciado para descriptografar um arquivo

Este tutorial ilustra como configurar um fluxo de trabalho gerenciado que contenha uma etapa de descriptografia. O tutorial também mostra como fazer upload de um arquivo criptografado para um bucket do Amazon S3 e, em seguida, ver o arquivo descriptografado nesse mesmo bucket.

nota

O blog AWS de armazenamento tem uma postagem que descreve como simplesmente descriptografar arquivos sem escrever nenhum código usando fluxos de trabalho do Transfer Family Managed, criptografar e descriptografar arquivos com PGP e. AWS Transfer Family

Etapa 1: Configure uma função de execução

Crie uma função de execução AWS Identity and Access Management (IAM) que a Transfer Family possa usar para iniciar um fluxo de trabalho. O processo de criação de uma função de execução está descrito em Políticas do IAM para fluxos de trabalho.

nota

Como parte da criação de uma função de execução, certifique-se de estabelecer uma relação de confiança entre a função de execução e o Transfer Family, conforme descrito em Estabelecer um relacionamento de confiança.

A política de função de execução a seguir contém todas as permissões necessárias para iniciar o fluxo de trabalho que você cria neste tutorial. Para usar esse exemplo de política, substitua os user input placeholders por suas próprias informações. amzn-s3-demo-bucketSubstitua pelo nome do bucket do Amazon S3 em que você carrega seus arquivos criptografados.

nota

Nem todo fluxo de trabalho exige todas as permissões listadas neste exemplo. Você pode restringir as permissões com base nos tipos de etapas em seu fluxo de trabalho específico. As permissões necessárias para cada tipo de etapa predefinido estão descritas em Usar etapas predefinidas. As permissões necessárias para cada uma etapa personalizada estão descritas em Permissões do IAM para a etapa de personalizar.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "WorkflowsS3Permissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectTagging", "s3:ListBucket", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:DeleteObjectVersion", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "DecryptSecret", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:aws/transfer/*" } ] }

Etapa 2: Crie um fluxo de trabalho gerenciado

Agora você precisa criar um fluxo de trabalho que contenha uma etapa de descriptografia.

Para criar um fluxo de trabalho que contenha uma etapa de descriptografia
  1. Abra o AWS Transfer Family console em https://console.aws.amazon.com/transfer/.

  2. No painel de navegação à esquerda, escolha Fluxos de trabalho e, em seguida, Criar fluxo de trabalho.

  3. Insira os detalhes a seguir:

    • Insira uma descrição, por exemplo Decrypt workflow example.

    • Na seção Etapas nominais, escolha Adicionar etapa.

  4. Em Escolher tipo de etapa, escolha Descriptografar arquivo e, em seguida, escolha Próximo.

  5. Na caixa de diálogo Configurar parâmetros, especifique o seguinte:

    • Insira um nome descritivo da etapa, por exemplo, decrypt-step. Não são permitidos espaços nos nomes das etapas.

    • Em Destino para arquivos descriptografados, escolha Amazon S3.

    • Em Nome do bucket de destino, escolha o mesmo bucket do Amazon S3 que você especificou como amzn-s3-demo-bucket na política do IAM criado na Etapa 1.

    • Em Prefixo de chave de destino, insira o nome do prefixo (pasta) em que você deseja armazenar seus os arquivos descriptografados no bucket de destino, por exemplo, decrypted-files/.

      nota

      Certifique-se de adicionar uma barra final (/) ao seu prefixo.

    • Para este tutorial, deixe Substituir existente desmarcado. Quando esta configuração estiver desmarcada, se você tentar descriptografar um arquivo com o mesmo nome de um arquivo existente, o processamento do fluxo de trabalho será interrompido, e o novo arquivo não será processado.

    Escolha Próximo para ir para a tela de revisão.

  6. Revise os detalhes da etapa. Se tudo estiver correto, escolha Criar etapa.

  7. Como seu fluxo de trabalho precisa apenas de uma única etapa de descriptografia, não há etapas adicionais a serem configuradas. Escolha Criar fluxo de trabalho para criar o novo fluxo de trabalho.

Anote a ID do fluxo de trabalho do seu novo fluxo de trabalho. Você precisará dessa ID na próxima etapa. Este tutorial usa w-1234abcd5678efghi como exemplo da ID do fluxo de trabalho.

Etapa 3: Adicione o fluxo de trabalho a um servidor e crie um usuário

Agora que você tem um fluxo de trabalho com uma etapa de descriptografia, você deve associá-lo a um servidor do Transfer Family. Este tutorial mostra como anexar o fluxo de trabalho a um servidor do Transfer Family existente. Você também pode criar um novo servidor para usar com seu fluxo de trabalho.

Depois de anexar o fluxo de trabalho a um servidor, você deve criar um usuário que possa usar o SFTP no servidor e acionar a execução do fluxo de trabalho.

Para configurar um servidor do Transfer Family para executar um fluxo de trabalho
  1. Abra o AWS Transfer Family console em https://console.aws.amazon.com/transfer/.

  2. No painel de navegação esquerdo, selecione Servidores e em seguida escolha um servidor da lista. Verifique se esse servidor é compatível com o protocolo SFTP.

  3. Na página de detalhes do servidor, role para baixo até a seção Detalhes adicionais e escolha Editar.

  4. Na página Editar detalhes adicionais, na seção Fluxos de trabalho gerenciados, escolha seu fluxo de trabalho e escolha uma função de execução correspondente.

  5. Navegue até a parte inferior da página e escolha Salvar para salvar suas alterações.

Anote a ID do servidor que você está usando. O nome do AWS Secrets Manager segredo que você usa para armazenar suas chaves PGP é baseado em parte na ID do servidor.

Para adicionar um usuário que possa acionar o fluxo de trabalho
  1. Abra o AWS Transfer Family console em https://console.aws.amazon.com/transfer/.

  2. No painel de navegação esquerdo, selecione Servidores e selecione o servidor que você está usando para o fluxo de trabalho de descriptografia.

  3. Na página de detalhes do servidor, role para baixo até a seção Usuários e escolha Adicionar usuário.

  4. Para seu novo usuário, insira os seguintes detalhes:

    • Em Nome do usuário, insira decrypt-user.

    • Em Função, escolha uma função do usuário que possa acessar seu servidor.

    • Para o Diretório inicial, escolha o bucket do Amazon S3 que você usou anteriormente, por exemplo, amzn-s3-demo-bucket.

    • Para chaves públicas SSH, cole uma chave pública que corresponda a uma chave privada que você tem. Para obter detalhes, consulte Gere chaves SSH para usuários gerenciados por serviços.

  5. Escolha Adicionar para salvar seu novo usuário.

Anote o nome do usuário do Transfer Family para esse servidor. O segredo é parcialmente baseado no nome do usuário. Para simplificar, este tutorial usa um segredo padrão que pode ser usado por qualquer usuário do servidor.

Etapa 4: Crie um par de chaves PGP

Use um dos clientes PGP compatíveis para gerar um par de chaves PGP. Este processo está descrito em detalhes em Gerar chaves PGP.

Para gerar um par de chaves PGP
  1. Neste tutorial, é possível usar o cliente gpg (GnuPG) versão 2.0.22 para gerar um par de chaves PGP que usa RSA como algoritmo de criptografia. Para esse cliente, execute o seguinte comando e forneça um endereço de e-mail e uma senha. É possível usar qualquer nome ou endereço de e-mail que desejar. Lembre-se dos valores que usar, pois você precisará inseri-los posteriormente no tutorial.

    gpg --gen-key
    nota

    Se você estiver usando o GnuPG versão 2.3.0 ou mais recente, deverá executar gpg --full-gen-key. Quando solicitado sobre o tipo de chave a ser criada, escolha RSA ou ECC. No entanto, se você escolher ECC, certifique-se de escolher NIST ou BrainPool para a curva elíptica. Não escolha Curve 25519.

  2. Exporte a chave privada executando o seguinte comando. Substitua user@example.com pelo endereço de e-mail que você usou quando gerou a chave.

    gpg --output workflow-tutorial-key.pgp --armor --export-secret-key user@example.com

    Este comando exporta a chave privada para o arquivo workflow-tutorial-key.pgp. É possível nomear o arquivo de saída como quiser. Você também pode excluir o arquivo de chave privada depois de adicioná-lo ao AWS Secrets Manager.

Etapa 5: Armazene a chave privada PGP no AWS Secrets Manager

Você precisa armazenar a chave privada no Secrets Manager de uma forma muito específica para que o fluxo de trabalho possa encontrar a chave privada quando o fluxo de trabalho executar uma etapa de descriptografia em um arquivo carregado.

nota

Quando você armazena segredos no Secrets Manager, você Conta da AWS incorre em cobranças. Para obter mais informações sobre preços consulte AWS Secrets Manager Pricing.

Para armazenar uma chave privada PGP no Secrets Manager
  1. Faça login no Console de gerenciamento da AWS e abra o AWS Secrets Manager console em https://console.aws.amazon.com/secretsmanager/.

  2. No painel de navegação à esquerda, selecione Segredos.

  3. Na página Segredos, escolha Armazenar um novo segredo.

  4. Na página Escolher tipo de segredo, em Tipo de segredo, escolha Outro tipo de segredo.

  5. Na seção Pares de chave/valor, escolha a guia Chave/valor.

    • Chave — Insira PGPPrivateKey.

    • valor – cole o texto da sua chave privada no campo de valor.

  6. Escolha Adicionar linha e, na seção Pares de chave/valor, escolha a guia Chave/valor.

  7. Escolha Próximo.

  8. Na página Configurar segredo, insira um nome e uma descrição para seu segredo. Você pode criar um segredo para um usuário específico ou um que possa ser usado por todos os usuários. Se o ID do seu servidor fors-11112222333344445, você nomeia o segredo da seguinte forma.

    • Para criar um segredo padrão para todos os usuários, nomeie o segredoaws/transfer/s-11112222333344445/@pgp-default.

    • Para criar um segredo somente para o usuário que você criou anteriormente, nomeie o segredo aws/transfer/s-11112222333344445/decrypt-user.

  9. Escolha Próximo e aceite os padrões na página Configurar alternância. Em seguida, escolha Próximo.

  10. Na página Revisão, escolha Armazenar para criar e armazenar o segredo.

Para obter mais informações sobre como adicionar sua chave privada PGP ao Secrets Manager, consulte Usar AWS Secrets Manager para armazenar sua chave PGP.

Etapa 6: Criptografe um arquivo

Use o programa gpg para criptografar um arquivo para usar em seu fluxo de trabalho. Execute o seguinte comando para criptografar um arquivo:

gpg -e -r marymajor@example.com --openpgp testfile.txt

Antes de executar este comando, observe o seguinte:

  • Para o argumento -r, substitua marymajor@example.com pelo endereço de e-mail que você usou ao criar o par de chaves PGP.

  • O sinalizador --openpgp é opcional. Esse sinalizador faz com que o arquivo criptografado esteja em conformidade com o padrão OpenPGP 0 RFC488.

  • Este comando cria um arquivo chamado testfile.txt.gpg no mesmo local que testfile.txt.

Importante

Ao criptografar arquivos para uso com AWS Transfer Family fluxos de trabalho, sempre certifique-se de especificar um destinatário não anônimo usando o parâmetro. -r A criptografia anônima (sem especificar um destinatário) pode causar falhas de decodificação no fluxo de trabalho porque o sistema não conseguirá identificar qual chave usar para decodificação. As informações de depuração desse problema estão disponíveis em. Solucionar problemas de criptografia de destinatários anônimos

Etapa 7: Execute o fluxo de trabalho e visualize os resultados

Para executar o fluxo de trabalho, você se conecta ao servidor do Transfer Family com o usuário criado na Etapa 3. Em seguida, é possível pesquisar no bucket do Amazon S3 que você especificou na Etapa 2.5, configurar os parâmetros de destino para ver o arquivo descriptografado.

Para executar o fluxo de trabalho de descriptografia
  1. Abra um terminal de comando.

  2. Execute o seguinte comando, substituindo your-endpoint pelo seu endpoint real e transfer-key pela chave privada SSH do seu usuário:

    sftp -i transfer-key decrypt-user@your-endpoint

    Por exemplo, se a chave privada estiver armazenada em ~/.ssh/decrypt-user e seu endpoint for s-11112222333344445.server.transfer.us-east-2.amazonaws.com, o comando será o seguinte:

    sftp -i ~/.ssh/decrypt-user decrypt-user@s-11112222333344445.server.transfer.us-east-2.amazonaws.com
  3. Execute o comando pwd. Se tiver êxito, o comando retornará o seguinte:

    Remote working directory: /amzn-s3-demo-bucket/decrypt-user

    Seu diretório reflete o nome do seu bucket do Amazon S3.

  4. Execute o seguinte comando para fazer upload do arquivo e acionar o fluxo de trabalho para ser executado:

    put testfile.txt.gpg
  5. Como destino dos arquivos descriptografados, você especificou a pasta decrypted-files/ ao criar o fluxo de trabalho. Agora, é possível navegar até essa pasta e listar o conteúdo.

    cd ../decrypted-files/ ls

    Se for bem-sucedido, o comando ls listará o arquivo testfile.txt. É possível fazer download desse arquivo e verificar se ele é igual ao arquivo original que você criptografou anteriormente.