Usar etapas predefinidas - 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á.

Usar etapas predefinidas

Ao criar um fluxo de trabalho, você pode optar por adicionar uma das seguintes etapas predefinidas discutidas neste tópico. Você também pode escolher adicionar suas próprias etapas de processamento de arquivos. Para obter mais informações, consulte Use etapas personalizadas de processamento de arquivos.

Copiar arquivo

Uma etapa de cópia do arquivo cria uma cópia do arquivo carregado em um novo local do Amazon S3. Atualmente, você pode usar uma etapa de cópia de arquivo somente com o Amazon S3.

A etapa de cópia do arquivo a seguir copia os arquivos para a test pasta emamzn-s3-demo-destination-bucket.

Se a etapa de cópia do arquivo não for a primeira etapa do seu fluxo de trabalho, você poderá especificar o Local do arquivo. Ao especificar o local do arquivo, você pode copiar o arquivo usado na etapa anterior ou o arquivo original que foi carregado. Você pode usar esse recurso para fazer várias cópias do arquivo original e, ao mesmo tempo, manter o arquivo de origem intacto para arquivamento e retenção de logs. Para obter um exemplo, consulte Exemplo para marcar e excluir fluxo de trabalho.

Tela de fluxo de trabalho com Copiar o arquivo criado na etapa anterior... botão selecionado.

Informe o bucket e os principais detalhes

Você deve fornecer o nome do bucket e uma chave para o destino da etapa de cópia do arquivo. A chave pode ser um nome de caminho ou um nome de arquivo. O fato de a chave ser tratada como um nome de caminho ou nome de arquivo é determinado pelo fato de você terminar a chave com o caractere de barra (/).

Se o caractere final for /, seu arquivo será copiado para a pasta e seu nome não será alterado. Se o caractere final for alfanumérico, o arquivo enviado será renomeado para o valor-chave. Nesse caso, se um arquivo com esse nome já existir, o comportamento dependerá da configuração do campo Substituir existente.

  • Se Substituir existente for selecionado, o arquivo existente será substituído pelo arquivo que está sendo processado.

  • Se a opção Substituir existente não estiver selecionada, nada acontecerá e o processamento do fluxo de trabalho será interrompido.

    dica

    Se as gravações simultâneas forem executadas no mesmo caminho de arquivo, isso poderá resultar em um comportamento inesperado ao substituir arquivos.

Por exemplo, se o valor da chave for test/, os arquivos enviados serão copiados para a pasta test. Se o valor da chave for test/today (e a opção Substituir existente estiver selecionada), todos os arquivos enviados serão copiados para um arquivo nomeado today na pasta test, e cada arquivo seguinte substituirá o anterior.

nota

O Amazon S3 é compatível com buckets e objetos e não há nenhuma hierarquia. No entanto, você pode usar prefixos e delimitadores em nomes de chaves de objetos para sugerir uma hierarquia e organizar seus dados de forma semelhante às pastas.

Use uma variável nomeada em uma etapa de cópia do arquivo

Em uma etapa de cópia de arquivo, você pode usar uma variável para copiar dinamicamente seus arquivos em pastas específicas do usuário. Atualmente, você pode usar ${transfer:UserName} ou ${transfer:UploadDate} como uma variável para copiar arquivos para um local de destino para um determinado usuário que está fazendo o upload dos arquivos ou com base na data atual.

No exemplo a seguir, se o usuário richard-roe fizer upload de um arquivo, ele será copiado para a pasta amzn-s3-demo-destination-bucket/richard-roe/processed/. Se o usuário mary-major fizer upload de um arquivo, ele será copiado para a pasta amzn-s3-demo-destination-bucket/mary-major/processed/.

Tela de parâmetros para uma etapa de cópia, mostrando o bucket e a chave, parametrizados usando. UserName

Da mesma forma, você pode usar ${transfer:UploadDate} como variável para copiar arquivos para um local de destino nomeado com a data atual. No exemplo a seguir, se você definir o destino como ${transfer:UploadDate}/processed em 1º de fevereiro de 2022, os arquivos enviados serão copiados para a pasta amzn-s3-demo-destination-bucket/2022-02-01/processed/.

Tela de parâmetros para uma etapa de cópia, mostrando o bucket e a chave, parametrizados usando. UploadDate

Você também pode usar essas duas variáveis juntas, combinando suas funcionalidades. Por exemplo, você pode definir o prefixo da chave de destino comofolder/${transfer:UserName}/${transfer:UploadDate}/, o que criaria pastas aninhadas, por exemplo. folder/marymajor/2023-01-05/

Permissões do IAM para a etapa de copiar

Para permitir que uma etapa de cópia seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }
nota

A permissão s3:ListBucket só é necessária se você não selecionar Substituir existente. Essa permissão verifica seu bucket para ver se já existe um arquivo com o mesmo nome. Se você selecionou Substituir existente, o fluxo de trabalho não precisa verificar o arquivo e pode simplesmente gravá-lo.

Se seus arquivos do Amazon S3 tiverem tags, você precisará adicionar uma ou duas permissões à sua política do IAM.

  • Adicione s3:GetObjectTagging para obter um arquivo Amazon S3 que não tenha versão.

  • Adicione s3:GetObjectVersionTagging para obter um arquivo Amazon S3 que tenha versão.

Descriptografar arquivo

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

Algoritmos de criptografia simétrica compatíveis

Para a decodificação PGP, o Transfer Family suporta algoritmos de criptografia simétrica que são usados para criptografar os dados reais do arquivo nos arquivos PGP.

Use a descriptografia PGP em seu fluxo de trabalho

O Transfer Family tem suporte integrado para descriptografia Pretty Good Privacy (PGP). Você pode usar a descriptografia PGP em arquivos enviados por SFTP, FTPS ou FTP para o Amazon Simple Storage Service (Amazon S3) ou o Amazon Elastic File System (Amazon EFS).

Para usar a descriptografia PGP, você deve criar e armazenar as chaves privadas PGP que serão usadas para descriptografar seus arquivos. Seus usuários podem então criptografar arquivos usando as chaves de criptografia PGP correspondentes antes de fazer o upload dos arquivos para o servidor Transfer Family. Depois de receber os arquivos criptografados, você pode descriptografar esses arquivos no seu fluxo de trabalho. Para ver um tutorial detalhado, consulte Configurando um fluxo de trabalho gerenciado para descriptografar um arquivo.

Para obter informações sobre algoritmos e recomendações de PGP compatíveis, consulte. Algoritmos de criptografia e decodificação PGP

Para usar a descriptografia PGP em seu fluxo de trabalho
  1. Identifique um servidor Transfer Family para hospedar seu fluxo de trabalho ou crie um novo. Você precisa ter o ID do servidor antes de poder armazenar suas chaves PGP no AWS Secrets Manager com o nome secreto correto.

  2. Armazene sua chave PGP AWS Secrets Manager com o nome secreto necessário. Para obter detalhes, consulte Gerenciar chaves PGP. Os fluxos de trabalho podem localizar automaticamente a chave PGP correta a ser usada para descriptografia com base no nome secreto no Gerente secreto.

    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.

  3. Criptografe um arquivo usando seu par de chaves PGP. (Para ver uma lista dos TLDs, consulte Clientes PGP compatíveis.) Se você estiver usando a linha de comando, execute o seguinte comando: Para usar esse comando, substitua username@example.com pelo endereço de e-mail que você usou para criar o par de chaves PGP. Substitua testfile.txt pelo nome do arquivo que você deseja criptografar.

    gpg -e -r username@example.com 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

  4. Faça o upload do arquivo criptografado para o servidor Transfer Family.

  5. Configure uma etapa de descriptografia em seu fluxo de trabalho. Para obter mais informações, consulte Adicionar uma etapa de decodificação.

Adicionar uma etapa de decodificação

Uma etapa de descriptografia descriptografa um arquivo criptografado que foi carregado no Amazon S3 ou no Amazon EFS como parte do seu fluxo de trabalho. Para obter detalhes sobre como configurar a descriptografia, consulte Use a descriptografia PGP em seu fluxo de trabalho.

Ao criar sua etapa de descriptografia para um fluxo de trabalho, você deve especificar o destino dos arquivos descriptografados. Você também deve selecionar se deseja substituir os arquivos existentes se um arquivo já existir no local de destino. Você pode monitorar os resultados do fluxo de trabalho de descriptografia e obter registros de auditoria para cada arquivo em tempo real usando o Amazon Logs. CloudWatch

Depois de escolher o tipo de Descriptografar arquivo para sua etapa, a página Configurar parâmetros é exibida. Preencha os valores da seção Configurar parâmetros de descriptografia do PGP.

As opções disponíveis são as seguintes:

  • Nome da etapa — Insira um nome descritivo para a etapa.

  • Local do arquivo — Ao especificar o local do arquivo, você pode descriptografar o arquivo usado na etapa anterior ou o arquivo original que foi carregado.

    nota

    Esse parâmetro não estará disponível se essa etapa for a primeira etapa do fluxo de trabalho.

  • Destino para arquivos descriptografados — Escolha um bucket do Amazon S3 ou um sistema de arquivos do Amazon EFS como destino para o arquivo descriptografado.

    • Se você escolher o Amazon S3, deverá fornecer um nome de bucket de destino e um prefixo de chave de destino. Para parametrizar o prefixo da chave de destino por nome de usuário, insira ${transfer:UserName} para Prefixo da chave de destino. Da mesma foram, para parametrizar o prefixo da chave de destino por data de carregamento, insira ${Transfer:UploadDate} para Prefixo da chave de destino.

    • Se você escolher o Amazon EFS, deverá fornecer um sistema de arquivos e um caminho de destino.

    nota

    A opção de armazenamento escolhida aqui deve corresponder ao sistema de armazenamento usado pelo servidor Transfer Family ao qual esse fluxo de trabalho está associado. Caso contrário, você receberá um erro ao tentar executar esse fluxo de trabalho.

  • Substituir existente — Se você fizer upload de um arquivo e já existir um arquivo com o mesmo nome de arquivo no destino, o comportamento dependerá da configuração desse parâmetro:

    • Se Substituir existente for selecionado, o arquivo existente será substituído pelo arquivo que está sendo processado.

    • Se a opção Substituir existente não estiver selecionada, nada acontecerá e o processamento do fluxo de trabalho será interrompido.

      dica

      Se as gravações simultâneas forem executadas no mesmo caminho de arquivo, isso poderá resultar em um comportamento inesperado ao substituir arquivos.

A captura de tela a seguir mostra um exemplo das opções que você pode escolher para a etapa de descriptografia do arquivo.

O AWS Transfer Family console, mostrando a seção Configurar parâmetros de descriptografia do PGP com valores de amostra.

Permissões do IAM para a etapa de descriptografar

Para permitir que uma etapa de descriptografia seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Sid": "Decrypt", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*" }
nota

A permissão s3:ListBucket só é necessária se você não selecionar Substituir existente. Essa permissão verifica seu bucket para ver se já existe um arquivo com o mesmo nome. Se você selecionou Substituir existente, o fluxo de trabalho não precisa verificar o arquivo e pode simplesmente gravá-lo.

Se seus arquivos do Amazon S3 tiverem tags, você precisará adicionar uma ou duas permissões à sua política do IAM.

  • Adicione s3:GetObjectTagging para obter um arquivo Amazon S3 que não tenha versão.

  • Adicione s3:GetObjectVersionTagging para obter um arquivo Amazon S3 que tenha versão.

Arquivo de marcação

Para marcar arquivos recebidos para processamento posterior, use uma etapa de marcação. Insira o valor da tag que você gostaria de atribuir aos arquivos recebidos. Atualmente, a operação de marcação é suportada somente se você estiver usando o Amazon S3 para o armazenamento do servidor Transfer Family.

O exemplo a seguir, a etapa de marcação atribui scan_outcome e clean como chave e valor da tag, respectivamente.

Tela de fluxos de trabalho mostrando os detalhes de uma etapa de marcação.

Para permitir que uma etapa de marcação seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

{ "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }
nota

Se seu fluxo de trabalho contiver uma etapa de marcação executada antes de uma etapa de cópia ou descriptografia, você precisará adicionar uma ou duas permissões à sua política do IAM.

  • Adicione s3:GetObjectTagging para obter um arquivo Amazon S3 que não tenha versão.

  • Adicione s3:GetObjectVersionTagging para obter um arquivo Amazon S3 que tenha versão.

Excluir arquivo

Para excluir um arquivo processado de uma etapa anterior do fluxo de trabalho ou excluir o arquivo originalmente carregado, use uma etapa de exclusão de arquivo.

Tela de fluxos de trabalho mostrando os detalhes de uma etapa de exclusão.

Para permitir que uma etapa de exclusão seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

{ "Sid": "Delete", "Effect": "Allow", "Action": [ "s3:DeleteObjectVersion", "s3:DeleteObject" ], "Resource": "arn:aws:secretsmanager:region:account-ID:secret:aws/transfer/*" }

Variáveis nomeadas para fluxos de trabalho

Para etapas de cópia e descriptografia, você pode usar uma variável para executar ações dinamicamente. Atualmente, AWS Transfer Family oferece suporte às seguintes variáveis nomeadas.

  • Use ${transfer:UserName} para copiar ou descriptografar arquivos para um destino com base no usuário que está fazendo o upload dos arquivos.

  • Use ${transfer:UploadDate} para copiar ou descriptografar arquivos em um local de destino com base na data atual.

Exemplo para marcar e excluir fluxo de trabalho

O exemplo a seguir ilustra um fluxo de trabalho que marca os arquivos recebidos que precisam ser processados por um aplicativo downstream, como uma plataforma de análise de dados. Depois de marcar o arquivo de entrada, o fluxo de trabalho exclui o arquivo originalmente carregado para economizar nos custos de armazenamento.

Console
Exemplo para marcar e mover fluxo de trabalho
  1. Abra o AWS Transfer Family console em https://console.aws.amazon.com/transfer/.

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

  3. Na página Fluxos de trabalho, escolha Criar um fluxo de trabalho.

  4. Na página Criar fluxo de trabalho, insira uma descrição. Essa descrição aparece na página Fluxos de trabalho.

  5. Adicione a primeira etapa (cópia).

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

    2. Escolha Copiar arquivo, e, em seguida, Próximo.

    3. Insira o nome da etapa e selecione um bucket de destino e um prefixo de chave.

      Tela de fluxos de trabalho mostrando os detalhes de uma etapa de cópia, mostrando o bucket de destino e o prefixo da chave.
    4. Escolha Próximo e, em seguida, revise os detalhes da etapa.

    5. Escolha Criar etapa para adicionar a etapa e continuar.

  6. Adicione a segunda etapa (tag).

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

    2. Escolha Marcar arquivo, e, em seguida, Próximo.

    3. Insira um nome de etapa.

    4. Em Local do arquivo, selecione Marcar o arquivo criado na etapa anterior.

    5. Insira uma Chave e Valor.

      A tela de configuração de uma etapa do fluxo de trabalho de marcação, com o botão de opção Marcar o arquivo criado na etapa anterior selecionado.
    6. Escolha Próximo e, em seguida, revise os detalhes da etapa.

    7. Escolha Criar etapa para adicionar a etapa e continuar.

  7. Adicione a terceira etapa (excluir).

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

    2. Escolha Excluir arquivo, e, em seguida, Próximo.

      A tela de configuração de uma etapa de exclusão do fluxo de trabalho, com o botão de opção Excluir o arquivo de origem original selecionado.
    3. Insira um nome de etapa.

    4. Em Local do arquivo, selecione Excluir o arquivo de origem original.

    5. Escolha Próximo e, em seguida, revise os detalhes da etapa.

    6. Escolha Criar etapa para adicionar a etapa e continuar.

  8. Reveja o fluxo de trabalho e selecione Criar fluxo de trabalho.

CLI
Exemplo para marcar e mover fluxo de trabalho
  1. Salve o código a seguir em um arquivo; por exemplo, tagAndMoveWorkflow.json. Substitua cada user input placeholder por suas próprias informações.

    [ { "Type": "COPY", "CopyStepDetails": { "Name": "CopyStep", "DestinationFileLocation": { "S3FileLocation": { "Bucket": "amzn-s3-demo-bucket", "Key": "test/" } } } }, { "Type": "TAG", "TagStepDetails": { "Name": "TagStep", "Tags": [ { "Key": "name", "Value": "demo" } ], "SourceFileLocation": "${previous.file}" } }, { "Type": "DELETE", "DeleteStepDetails":{ "Name":"DeleteStep", "SourceFileLocation": "${original.file}" } } ]

    A primeira etapa copia o arquivo carregado para um novo local do Amazon S3. A segunda etapa adiciona uma tag (par de valor-chave) ao arquivo (previous.file) que foi copiado para o novo local. E, finalmente, a terceira etapa exclui o arquivo original (original.file).

  2. Crie um fluxo de trabalho a partir do arquivo salvo. Substitua cada user input placeholder por suas próprias informações.

    aws transfer create-workflow --description "short-description" --steps file://path-to-file --region region-ID

    Por exemplo:

    aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
    nota

    Para obter mais detalhes sobre o uso de arquivos para carregar parâmetros, consulte Como carregar parâmetros de um arquivo.

  3. Atualizar um servidor existente.

    nota

    Essa etapa pressupõe que você já tenha um servidor Transfer Family e queira associar um fluxo de trabalho a ele. Se não, consulte Configurando um endpoint de servidor SFTP, FTPS ou FTP. Substitua cada user input placeholder por suas próprias informações.

    aws transfer update-server --server-id server-ID --region region-ID --workflow-details '{"OnUpload":[{ "WorkflowId": "workflow-ID","ExecutionRole": "execution-role-ARN"}]}'

    Por exemplo:

    aws transfer update-server --server-id s-1234567890abcdef0 --region us-east-2 --workflow-details '{"OnUpload":[{ "WorkflowId": "w-abcdef01234567890","ExecutionRole": "arn:aws:iam::111111111111:role/nikki-wolf-execution-role"}]}'