Utilice pasos predefinidos - AWS Transfer Family

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.

Utilice pasos predefinidos

Al crear un flujo de trabajo, puede optar por añadir uno de los siguientes pasos predefinidos que se describen en este tema. También puede optar por agregar sus propios pasos de procesamiento de archivos personalizados. Para obtener más información, consulte Uso de pasos de procesamiento de archivos personalizados.

Copiar archivo

El paso de copiar archivo crea una copia del archivo cargado en una nueva ubicación de Amazon S3. Actualmente, solo puede utilizar el paso de copiar archivos con Amazon S3.

El siguiente paso para copiar archivos copia los archivos en la carpeta test del bucket de destino file-test.

Si el paso de copiar el archivo no es el primer paso del flujo de trabajo, puede especificar la ubicación del archivo. Al especificar la ubicación del archivo, puede copiar el archivo que se utilizó en el paso anterior o el archivo original que se cargó. Puede utilizar esta característica para realizar varias copias del archivo original y, al mismo tiempo, mantener intacto el archivo de origen para archivarlos y conservar los registros. Para ver un ejemplo, consulte Ejemplo de flujo de trabajo de etiquetado y eliminación.

Pantalla de flujo de trabajo con Copia el archivo creado en el paso anterior... botón seleccionado.

Proporcione el bucket y los detalles de la clave

Debe proporcionar el nombre del bucket y una clave para el destino del paso de copiar el archivo. La clave puede ser un nombre de ruta o un nombre de archivo. El hecho de que la clave se trate como un nombre de ruta o como un nombre de archivo depende de si termina la clave con la barra inclinada (/).

Si el último carácter es /, el archivo se copia en la carpeta, y su nombre no cambia. Si el último carácter es alfanumérico, se cambiará el nombre del archivo cargado al valor clave. En este caso, si ya existe un archivo con ese nombre, el comportamiento depende de la configuración del campo Sobrescribir existente.

  • Si se selecciona Sobrescribir existente, el archivo existente se reemplaza por el archivo que se está procesando.

  • Si no se selecciona Sobrescribir existente, no ocurre nada, y el procesamiento del flujo de trabajo se detiene.

    sugerencia

    Si se ejecutan escrituras simultáneas en la misma ruta de archivo, es posible que se produzca un comportamiento inesperado al sobrescribir los archivos.

Por ejemplo, si el valor de la clave es test/, los archivos cargados se copian en la carpeta test. Si el valor de la clave es test/today (y la opción Sobrescribir existente está seleccionada), todos los archivos que cargue se copiarán en un archivo llamado today en la carpeta test y cada archivo posterior sobrescribirá al anterior.

nota

Amazon S3 admite buckets y objetos y no existe jerarquía. Sin embargo, puede usar prefijos y delimitadores en los nombres de las claves de los objetos para establecer una jerarquía y organizar sus datos de forma similar a las carpetas.

Utilizar una variable con nombre en el paso de copiar un archivo

En el paso de copiar un archivo, puede utilizar una variable para copiar, dinámicamente, los archivos en carpetas específicas del usuario. Actualmente, puede usar ${transfer:UserName} o ${transfer:UploadDate} como una variable para copiar archivos a una ubicación de destino para el usuario en concreto que carga los archivos o según la fecha actual.

En el siguiente ejemplo, si el usuario richard-roe carga un archivo, se copia en la carpeta file-test2/richard-roe/processed/. En el siguiente ejemplo, si el usuario mary-major carga un archivo, queda copiado en la carpeta file-test2/mary-major/processed/.

Pantalla de parámetros para un paso de copia, que muestra el cubo y la clave, parametrizados mediante. UserName

Del mismo modo, se puede utilizar ${transfer:UploadDate} como variable para copiar los archivos a una ubicación de destino con el nombre de la fecha actual. En el siguiente ejemplo, si establece el destino ${transfer:UploadDate}/processed en el 1 de febrero de 2022, los archivos cargados se copiarán en la carpeta file-test2/2022-02-01/processed/.

Pantalla de parámetros para un paso de copia, que muestra el cubo y la clave, parametrizados mediante. UploadDate

También puede utilizar estas dos variables juntas al combinar sus funciones. Por ejemplo:

  • Puede establecer el prefijo de la clave de destino en folder/${transfer:UserName}/${transfer:UploadDate}/, lo que crearía carpetas anidadas, por ejemplo, folder/marymajor/2023-01-05/.

  • Puede establecer el prefijo de la clave de destino en folder/${transfer:UserName}-${transfer:UploadDate}/ para concatenar las dos variables, por ejemplo, folder/marymajor-2023-01-05/.

Permisos de IAM para el paso de copiado

Para permitir que un paso de copiado se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

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

El permiso s3:ListBucket solo es necesario si no selecciona Sobrescribir existente. Este permiso comprueba el bucket para verificar si ya existe un archivo con el mismo nombre. Si ha seleccionado Sobrescribir existente, el flujo de trabajo no necesita comprobar el archivo y puede escribirlo sin más.

Si sus archivos de Amazon S3 tienen etiquetas, debe añadir uno o dos permisos a su política de IAM.

  • Añada s3:GetObjectTagging para un archivo de Amazon S3 que no tenga versiones.

  • Añada s3:GetObjectVersionTagging para un archivo de Amazon S3 que tenga versiones.

Descifrar el archivo

El blog sobre AWS almacenamiento tiene una entrada que describe cómo descifrar archivos de forma sencilla sin escribir ningún código mediante los flujos de trabajo gestionados por Transfer Family, cifrar y descifrar archivos con PGP y. AWS Transfer Family

Utilizar el descifrado PGP en su flujo de trabajo

Transfer Family cuenta con compatibilidad integrada para el descifrado Pretty Good Privacy (PGP). Puede utilizar el descifrado PGP en los archivos que se carguen mediante SFTP, FTPS o FTP a Amazon Simple Storage Service (Amazon S3) o Amazon Elastic File System (Amazon EFS).

Para utilizar el descifrado PGP, debe crear y almacenar las claves privadas de PGP que se utilizarán para descifrar sus archivos. Por ello, los usuarios pueden cifrar los archivos mediante las claves de cifrado PGP correspondientes antes de cargarlos en el servidor de Transfer Family. Después de recibir los archivos cifrados, puede descifrarlos en su flujo de trabajo. Para ver un tutorial detallado, consulte Configuración de un flujo de trabajo gestionado para descifrar un archivo.

Uso del descifrado PGP en su flujo de trabajo
  1. Identifique un servidor de Transfer Family para alojar su flujo de trabajo o cree uno nuevo. Debe tener el ID del servidor para poder almacenar sus claves PGP AWS Secrets Manager con el nombre secreto correcto.

  2. Guarde su clave PGP AWS Secrets Manager con el nombre secreto requerido. Para obtener más detalles, consulte Administración de claves PGP. Los flujos de trabajo pueden localizar, automáticamente, la clave PGP correcta que se utilizará para el descifrado en función del nombre secreto en Secrets Manager.

    nota

    Cuando guardas secretos en Secrets Manager, Cuenta de AWS incurres en cargos. Para obtener más información acerca de los precios, consulte Precios de AWS Secrets Manager.

  3. Cifre un archivo con su par de claves PGP. (Si desea obtener una lista de los clientes compatibles, consulte Clientes PGP admitidos.) Si está utilizando la línea de comando, utilice el siguiente comando. Para usar este comando, reemplace username@example.com por la dirección de correo electrónico que usó para crear el par de claves PGP. Reemplace testfile.txt por el nombre del archivo que desea cifrar.

    gpg -e -r username@example.com testfile.txt
  4. Suba el archivo cifrado a su servidor de Transfer Family.

  5. Configure un paso de descifrado en su flujo de trabajo. Para obtener más información, consulte Añada un paso de descifrado.

Añada un paso de descifrado

Un paso de descifrado descifra un archivo cifrado que se cargó en Amazon S3 o Amazon EFS como parte de su flujo de trabajo. Para obtener información detallada sobre la configuración del cifrado, consulte Utilizar el descifrado PGP en su flujo de trabajo.

Al crear el paso de descifrado para un flujo de trabajo, debe especificar el destino de los archivos descifrados. También debe seleccionar si desea sobrescribir los archivos existentes si ya existe un archivo en la ubicación de destino. Puede supervisar los resultados del flujo de trabajo de descifrado y obtener los registros de auditoría de cada archivo en tiempo real mediante Amazon CloudWatch Logs.

Tras elegir el tipo de archivo de descifrado para el paso, aparecerá la página de configuración de parámetros. Complete los valores de la sección Configuración de parámetros de descifrado de PGP.

Las opciones disponibles son las siguientes:

  • Nombre del paso: escriba un nombre descriptivo para el paso.

  • Ubicación del archivo: al especificar la ubicación del archivo, puede cifrar el archivo utilizado en el paso anterior o el archivo original que se cargó.

    nota

    Este parámetro no está disponible si este paso es el primero del flujo de trabajo.

  • Destino de los archivos descifrados: elija un bucket de Amazon S3 o un sistema de archivos Amazon EFS como destino del archivo descifrado.

    • Si elige Amazon S3, debe proporcionar un nombre de bucket de destino y un prefijo de clave. Para establecer los parámetros del prefijo de la clave de destino por nombre de usuario, introduzca ${transfer:UserName} como el prefijo de la clave de destino. De igual manera, para establecer los parámetros del prefijo de la clave de destino por fecha de carga, introduzca ${Transfer:UploadDate} para el prefijo de la clave de destino.

    • Si elige Amazon EFS, debe proporcionar una ruta y un sistema de archivos de destino.

    nota

    La opción de almacenamiento que elija aquí debe coincidir con el sistema de almacenamiento que utilice el servidor de Transfer Family al que está asociado este flujo de trabajo. De lo contrario, se producirá un error al intentar ejecutar este flujo de trabajo.

  • Sobrescribir existente: si carga un archivo y ya existe un archivo con el mismo nombre de archivo en el destino, el comportamiento depende de la configuración de este parámetro:

    • Si se selecciona Sobrescribir existente, el archivo existente se reemplaza por el archivo que se está procesando.

    • Si no se selecciona Sobrescribir existente, no ocurre nada, y el procesamiento del flujo de trabajo se detiene.

      sugerencia

      Si se ejecutan escrituras simultáneas en la misma ruta de archivo, es posible que se produzca un comportamiento inesperado al sobrescribir los archivos.

La siguiente captura de pantalla muestra un ejemplo de las opciones que puede elegir para el paso de descifrado del archivo.

La AWS Transfer Family consola, que muestra la sección Configurar los parámetros de descifrado de PGP con valores de muestra.

Permisos de IAM para el paso de cifrado

Para permitir que un paso de descifrado se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

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

El permiso s3:ListBucket solo es necesario si no selecciona Sobrescribir existente. Este permiso comprueba el bucket para verificar si ya existe un archivo con el mismo nombre. Si ha seleccionado Sobrescribir existente, el flujo de trabajo no necesita comprobar el archivo y puede escribirlo sin más.

Si sus archivos de Amazon S3 tienen etiquetas, debe añadir uno o dos permisos a su política de IAM.

  • Añada s3:GetObjectTagging para un archivo de Amazon S3 que no tenga versiones.

  • Añada s3:GetObjectVersionTagging para un archivo de Amazon S3 que tenga versiones.

Etiquetado de archivos

Para etiquetar los archivos entrantes para su posterior procesamiento, utilice un paso de etiquetado. Introduzca el valor de la etiqueta que desea asignar a los archivos entrantes. Actualmente, la operación de etiquetado solo se admite si utiliza Amazon S3 para el almacenamiento de su servidor de Transfer Family.

El siguiente ejemplo de paso de etiquetado asigna scan_outcome y clean como la clave y el valor de la etiqueta respectivamente.

Pantalla de flujos de trabajo que muestra los detalles de un paso de etiquetado.

Para permitir que un paso de etiquetado se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

{ "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }
nota

Si su flujo de trabajo contiene un paso de etiquetado que se ejecuta antes de un paso de copiado o descifrado, debe añadir uno o dos permisos a su política de IAM.

  • Añada s3:GetObjectTagging para un archivo de Amazon S3 que no tenga versiones.

  • Añada s3:GetObjectVersionTagging para un archivo de Amazon S3 que tenga versiones.

Eliminar archivo

Para eliminar un archivo procesado de un paso anterior del flujo de trabajo o para eliminar el archivo cargado originalmente, utilice un paso de eliminación de archivo.

Pantalla de flujos de trabajo que muestra los detalles de un paso de eliminación.

Para permitir que un paso de eliminación se realice correctamente, asegúrese de que el rol de ejecución de su flujo de trabajo contenga los siguientes permisos.

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

Variables con nombre para los flujos de trabajo

Para los pasos de copiado y descifrado, puede utilizar una variable para realizar acciones de forma dinámica. Actualmente, AWS Transfer Family admite las siguientes variables con nombre.

  • Se utiliza ${transfer:UserName} para copiar o descifrar archivos a un destino en función del usuario que los carga.

  • Se utiliza ${transfer:UploadDate} para copiar o descifrar archivos a una ubicación de destino en función de la fecha actual.

Ejemplo de flujo de trabajo de etiquetado y eliminación

El siguiente ejemplo ilustra un flujo de trabajo que etiqueta los archivos entrantes que deben ser procesados por una aplicación secundaria, como una plataforma de análisis de datos. Tras etiquetar el archivo entrante, el flujo de trabajo elimina el archivo cargado originalmente para ahorrar costos de almacenamiento.

Console
Ejemplo de etiquetado y flujos de trabajo
  1. Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/.

  2. En el panel de navegación izquierdo, seleccione Flujos de trabajo.

  3. En la página Flujos de trabajo, seleccione Crear flujo de trabajo.

  4. En la página Crear flujo de trabajo, escriba una descripción. Esta descripción aparece en la página Flujos de trabajo.

  5. Añada el primer paso (copiado).

    1. En la sección Pasos nominales, seleccione Añadir paso.

    2. Seleccione Copiar archivo, y después Siguiente.

    3. Introduzca un nombre de paso y, a continuación, seleccione un bucket de destino y un prefijo de clave.

      Pantalla de flujos de trabajo que muestra los detalles de un paso de copia, con el depósito de destino y el key prefijo.
    4. Seleccione Siguiente y, a continuación, revise los detalles del paso.

    5. Seleccione Crear paso para añadir el paso y continuar.

  6. Añada el segundo paso (etiquetado).

    1. En la sección Pasos nominales, seleccione Añadir paso.

    2. Seleccione Etiquete archivo, y después Siguiente.

    3. Introduzca un nombre de paso.

    4. En Ubicación del archivo, seleccione Etiquetar el archivo creado en el paso anterior.

    5. Introduzca una clave y un valor.

      La pantalla de configuración de un paso del flujo de trabajo de etiquetado, con el botón de opción Etiquetar el archivo creado a partir del paso anterior seleccionado.
    6. Seleccione Siguiente y, a continuación, revise los detalles del paso.

    7. Seleccione Crear paso para añadir el paso y continuar.

  7. Añada el tercer paso (eliminación).

    1. En la sección Pasos nominales, seleccione Añadir paso.

    2. Seleccione Eliminar pilas y, a continuación, Siguiente.

      La pantalla de configuración de un paso del flujo de trabajo de eliminación, con el botón de opción Eliminar el archivo fuente original seleccionado.
    3. Introduzca un nombre de paso.

    4. En Ubicación del archivo, seleccione Eliminar el archivo fuente original.

    5. Seleccione Siguiente y, a continuación, revise los detalles del paso.

    6. Seleccione Crear paso para añadir el paso y continuar.

  8. Revise la configuración del flujo de trabajo y, a continuación, seleccione Crear flujo de trabajo.

CLI
Ejemplo de etiquetado y flujos de trabajo
  1. Guarde el siguiente código en un archivo, por ejemplo, tagAndMoveWorkflow.json. Reemplace cada user input placeholder por su propia información.

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

    El primer paso copia el archivo cargado en una nueva ubicación de Amazon S3. El segundo paso agrega una etiqueta (par clave-valor) al archivo (previous.file) que se copió en la nueva ubicación. Y, por último, el tercer paso elimina el archivo original (original.file).

  2. Cree un flujo de trabajo a partir del archivo guardado. Reemplace cada user input placeholder por su propia información.

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

    Por ejemplo:

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

    Para obtener más información sobre el uso de archivos para cargar parámetros, consulte Cómo cargar parámetros desde un archivo.

  3. Actualización de un servidor existente.

    nota

    En este paso, se supone que ya tiene un servidor de Transfer Family y que desea asociarle un flujo de trabajo. Si no es así, consulte Configuración de un punto final de servidor SFTP, FTPS o FTP. Reemplace cada user input placeholder por su propia información.

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

    Por ejemplo:

    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"}]}'