

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
<a name="workflow-decrypt-tutorial"></a>

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](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/) arquivos com PGP e. AWS Transfer Family

**Topics**
+ [Etapa 1: Configure uma função de execução](#create-example-execution-role)
+ [Etapa 2: Crie um fluxo de trabalho gerenciado](#create-example-workflow)
+ [Etapa 3: Adicione o fluxo de trabalho a um servidor e crie um usuário](#add-workflow-to-server)
+ [Etapa 4: Crie um par de chaves PGP](#create-example-pgp-key-pair)
+ [Etapa 5: Armazene a chave privada PGP em AWS Secrets Manager](#output-private-key-to-secrets)
+ [Etapa 6: Criptografe um arquivo](#encrypt-example-file)
+ [Etapa 7: Execute o fluxo de trabalho e visualize os resultados](#test-decrypt-workflow)

## Etapa 1: Configure uma função de execução
<a name="create-example-execution-role"></a>

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](workflow-execution-role.md).

**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](requirements-roles.md#establish-trust-transfer).

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-bucket`Substitua 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](nominal-steps-workflow.md). As permissões necessárias para cada uma etapa personalizada estão descritas em [Permissões do IAM para a etapa de personalizar](custom-step-details.md#custom-step-iam).

****  

```
{
    "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
<a name="create-example-workflow"></a>

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/](https://console.aws.amazon.com/transfer/).

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

1. Insira os detalhes a seguir:
   + Insira uma descrição, por exemplo **Decrypt workflow example**.
   + Na seção **Etapas nominais**, escolha **Adicionar etapa**.

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

1. <a name="configure-destination-details"></a>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.

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

1. 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
<a name="add-workflow-to-server"></a>

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/](https://console.aws.amazon.com/transfer/).

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

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

1. 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.
   + Em **Fluxo de trabalho para carregamentos de arquivos completos**, escolha o fluxo de trabalho que você criou em [Etapa 2: Crie um fluxo de trabalho gerenciado](#create-example-workflow), por exemplo,**w-1234abcd5678efghi**.
   + Para a **função de execução de fluxos de trabalho gerenciados**, escolha perfil do IAM que você criou em [Etapa 1: Configure uma função de execução](#create-example-execution-role).

1. 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/](https://console.aws.amazon.com/transfer/).

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

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

1. 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](sshkeygen.md).

1. 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
<a name="create-example-pgp-key-pair"></a>

Use um dos [clientes PGP compatíveis](pgp-key-clients.md) para gerar um par de chaves PGP. Este processo está descrito em detalhes em [Gerar chaves PGP](generate-pgp-keys.md).

**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. Se você escolher **ECC**, poderá escolher NIST entre BrainPool e Curve25519 para a curva elíptica. 

1. 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 em AWS Secrets Manager
<a name="output-private-key-to-secrets"></a>

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](https://aws.amazon.com/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/](https://console.aws.amazon.com/secretsmanager/).

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

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

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

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

1. Escolha **Adicionar linha** e, na seção **Pares de chave/valor**, escolha a guia **Chave/valor**.
   + **Chave** — Insira **PGPPassphrase**.
   + **valor** – Insira a senha que você usou ao gerar seu par de chaves PGP em [Etapa 4: Crie um par de chaves PGP](#create-example-pgp-key-pair).

1. Escolha **Próximo**.

1. 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 for*`s-11112222333344445`*, você nomeia o segredo da seguinte forma.
   + Para criar um segredo padrão para todos os usuários, nomeie o segredo**aws/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**.

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

1. 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](manage-pgp-keys.md#store-pgp-key-details).

## Etapa 6: Criptografe um arquivo
<a name="encrypt-example-file"></a>

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 RFC4880](https://www.rfc-editor.org/rfc/rfc4880).
+ 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](workflow-issues.md#workflows-decrypt-anonymous) 

## Etapa 7: Execute o fluxo de trabalho e visualize os resultados
<a name="test-decrypt-workflow"></a>

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](#configure-destination-details) para ver o arquivo descriptografado.

**Para executar o fluxo de trabalho de descriptografia**

1. Abra um terminal de comando.

1. 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
   ```

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

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

   ```
   put testfile.txt.gpg
   ```

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