

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.

# Configuración de un flujo de trabajo gestionado para descifrar un archivo
<a name="workflow-decrypt-tutorial"></a>

En este tutorial se muestra cómo configurar un flujo de trabajo administrado que contenga un paso de descifrado. El tutorial también muestra cómo cargar un archivo cifrado en un bucket de Amazon S3 y, a continuación, ver el archivo descifrado en ese mismo bucket.

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

**Topics**
+ [Paso 1: creación y configuración de un rol de ejecución de IAM](#create-example-execution-role)
+ [Paso 2: creación de un flujo de trabajo administrado](#create-example-workflow)
+ [Paso 3: agregar el flujo de trabajo a un servidor y crear un usuario](#add-workflow-to-server)
+ [Paso 4: creación de un par de claves PGP](#create-example-pgp-key-pair)
+ [Paso 5: Guarde la clave privada PGP en AWS Secrets Manager](#output-private-key-to-secrets)
+ [Paso 6: cifrado de un archivo](#encrypt-example-file)
+ [Paso 7: ejecución del flujo de trabajo y visualización de los resultados](#test-decrypt-workflow)

## Paso 1: creación y configuración de un rol de ejecución de IAM
<a name="create-example-execution-role"></a>

Cree una función de ejecución AWS Identity and Access Management (IAM) que Transfer Family pueda utilizar para iniciar un flujo de trabajo. El proceso de creación de un rol de ejecución se describe en [Políticas de IAM para flujos de trabajo](workflow-execution-role.md).

**nota**  
Como parte de la creación de un rol de ejecución, asegúrese de establecer una relación de confianza entre el rol de ejecución y Transfer Family, tal y como se describe en [Para establecer una relación de confianza](requirements-roles.md#establish-trust-transfer).

La siguiente política de roles de ejecución contiene todos los permisos necesarios para iniciar el flujo de trabajo que cree en este tutorial. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información. `amzn-s3-demo-bucket`Sustitúyalo por el nombre del depósito de Amazon S3 en el que carga los archivos cifrados.

**nota**  
No todos los flujos de trabajo requieren todos los permisos que se enumeran en este ejemplo. Puede restringir los permisos en función de los tipos de pasos de su flujo de trabajo específico. Los permisos necesarios para cada tipo de paso predefinido se describen en [Utilice pasos predefinidos](nominal-steps-workflow.md). Los permisos necesarios para un paso personalizado se describen en [Permisos de IAM para un paso personalizado](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/*"
        }
    ]
}
```

## Paso 2: creación de un flujo de trabajo administrado
<a name="create-example-workflow"></a>

Ahora necesita crear un flujo de trabajo que contenga un paso de descifrado.

**Creación de un flujo de trabajo que contenga un paso de descifrado**

1. Abre la AWS Transfer Family consola en [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. En el panel de navegación izquierdo, seleccione **Flujos de trabajo** y, a continuación, **Crear flujo de trabajo**. 

1. Escriba la información siguiente:
   + Introduzca una descripción, por ejemplo, **Decrypt workflow example**.
   + En la sección **Pasos nominales**, seleccione **Añadir paso**.

1. En **Elegir el tipo de paso**, elija **Descifrar archivo** y, a continuación, elija **Siguiente**.

1. <a name="configure-destination-details"></a>En el cuadro de diálogo **Configurar parámetros**, especifique lo siguiente:
   + Introduzca un nombre de paso descriptivo, por ejemplo, **decrypt-step**. No se permiten espacios en los nombres de los pasos.
   + Para el **Destino de los archivos descifrados**, elija Amazon S3.
   + Para el **nombre del bucket de destino**, elija el mismo bucket de Amazon S3 que especificó como `amzn-s3-demo-bucket` en la política de IAM que creó en el paso 1.
   + Para el **prefijo de clave de destino**, introduzca el nombre del prefijo (carpeta) en el que desee almacenar los archivos descifrados en el bucket de destino, por ejemplo, **decrypted-files/**.
**nota**  
Asegúrese de añadir una barra (**/**) final al prefijo.
   + Para este tutorial, deja desactivada la opción **Sobrescribir existente**. Si se borra esta configuración, si intenta descifrar un archivo con el mismo nombre que un archivo existente, el procesamiento del flujo de trabajo se detiene y el nuevo archivo no se procesa.

   Elija **Siguiente** para pasar a la pantalla de revisión.

1. Revise los detalles del paso. Si todo es correcto, seleccione **Crear paso**.

1. Su flujo de trabajo solo necesita un único paso de descifrado, por lo que no es necesario configurar ningún paso adicional. Seleccione **Crear flujo de trabajo** para crear el nuevo flujo de trabajo.

Anote el ID de flujo de trabajo del nuevo flujo de trabajo. Necesitará este ID en el siguiente paso. En este tutorial se utiliza *`w-1234abcd5678efghi`* como ejemplo el ID del flujo de trabajo. 

## Paso 3: agregar el flujo de trabajo a un servidor y crear un usuario
<a name="add-workflow-to-server"></a>

Ahora que tiene un flujo de trabajo con un paso de descifrado, debe asociarlo a un servidor de Transfer Family. En este tutorial se muestra cómo adjuntar el flujo de trabajo a un servidor de Transfer Family existente. Si lo desea, puede crear un nuevo servidor para usarlo con su flujo de trabajo.

Tras adjuntar el flujo de trabajo a un servidor, debe crear un usuario que pueda introducir el SFTP en el servidor y activar la ejecución del flujo de trabajo.

**Configuración de un servidor de Transfer Family para ejecutar un flujo de trabajo**

1. Abra la AWS Transfer Family consola en [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. En el panel de navegación izquierdo, seleccione **Servidores** y, a continuación, seleccione un servidor de la lista. Asegúrese de que este servidor es compatible con el protocolo SFTP.

1. En la página de detalles del servidor, desplácese hacia abajo hasta la sección **Detalles adicionales** y, a continuación, seleccione **Editar**. 

1. En la página **Editar detalles adicionales**, en la sección **Flujos de trabajo administrados**, elija su flujo de trabajo y elija el rol de ejecución correspondiente.
   + En **Flujos de trabajo para cargas completas de archivos**, elija el flujo de trabajo que haya creado en [Paso 2: creación de un flujo de trabajo administrado](#create-example-workflow), por ejemplo, **w-1234abcd5678efghi**.
   + En el **rol de ejecución de flujos de trabajo administrados**, elija el rol de IAM que creó en [Paso 1: creación y configuración de un rol de ejecución de IAM](#create-example-execution-role).

1. Desplácese hasta la parte inferior de la página y elija **Guardar** para guardar sus cambios.

Anote el ID del servidor que está utilizando. El nombre del AWS Secrets Manager secreto que se utiliza para almacenar las claves PGP se basa en parte en el ID del servidor.

**Cómo añadir un usuario que pueda activar el flujo de trabajo**

1. Abra la AWS Transfer Family consola en. [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)

1. En el panel de navegación izquierdo, seleccione **Servidores** y, a continuación, seleccione el servidor que utilice para el flujo de trabajo de descifrado.

1. En la página de detalles del servidor, desplácese hacia abajo hasta la sección **Usuarios** y seleccione **Añadir usuario**. 

1. Para el nuevo usuario, introduzca los siguientes detalles:
   + En **Nombre de usuario**, introduzca **decrypt-user**.
   + En **Rol**, elija un rol de usuario que pueda acceder a su servidor.
   + En el **Directorio de inicio**, elija el bucket de Amazon S3 que utilizó anteriormente, por ejemplo, `amzn-s3-demo-bucket`.
   + En el caso de las **claves públicas de SSH**, pega una clave pública que corresponda a la clave privada que tengas. Para obtener más información, consulte [Genere claves SSH para los usuarios administrados por el servicio](sshkeygen.md).

1. Seleccione **Añadir** para guardar el nuevo usuario.

Anote el nombre de su usuario de Transfer Family para este servidor. El secreto se basa parcialmente en el nombre del usuario. Para simplificar, este tutorial usa un secreto predeterminado que puede usar cualquier usuario del servidor.

## Paso 4: creación de un par de claves PGP
<a name="create-example-pgp-key-pair"></a>

Utilice uno de los [clientes PGP compatibles](pgp-key-clients.md) para generar un par de claves PGP. Este proceso se describe en detalle en [Generar claves PGP](generate-pgp-keys.md).

**Generación de un par de claves PGP**

1. Para este tutorial, puede usar el cliente `gpg` (`GnuPG`) versión 2.0.22 para generar un par de claves PGP que utilice RSA como algoritmo de cifrado. Para este cliente, ejecute el siguiente comando y proporcione una dirección de correo electrónico y una frase de contraseña. Puede usar cualquier nombre o dirección de correo electrónico que desee. Asegúrese de recordar los valores que utiliza, ya que tendrá que introducirlos más adelante en el tutorial.

   ```
   gpg --gen-key
   ```
**nota**  
Si utiliza la versión 2.3.0 o posterior de `GnuPG`, debe ejecutar `gpg --full-gen-key`. Cuando se le pida el tipo de clave que desea crear, elija RSA o Elliptic Curve Cryptography (ECC, criptografía de curva elíptica). Si elige **ECC**, puede elegir NIST entre BrainPool y Curve25519 para la curva elíptica. 

1. Exporte la clave privada mediante el siguiente comando. Sustituya `user@example.com` por la dirección de correo electrónico que utilizó al momento de generar la clave.

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

   Este comando exporta la clave privada al archivo **workflow-tutorial-key.pgp**. Puede asignar al archivo de salida el nombre que desee. También puede eliminar el archivo de clave privada una vez que lo haya agregado AWS Secrets Manager.

## Paso 5: Guarde la clave privada PGP en AWS Secrets Manager
<a name="output-private-key-to-secrets"></a>

Debe almacenar la clave privada en Secrets Manager, de una manera muy específica, para que el flujo de trabajo pueda encontrar la clave privada cuando el flujo de trabajo ejecute un paso de descifrado en un archivo cargado.

**nota**  
Cuando guardas secretos en Secrets Manager, Cuenta de AWS incurres en cargos. Para obtener más información acerca de los precios, consulte [AWS Secrets Manager Precios](https://aws.amazon.com/secrets-manager/pricing).

**Almacenamiento de una clave privada PGP en Secrets Manager**

1. Inicia sesión en Consola de administración de AWS y abre la AWS Secrets Manager consola en [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. En el panel de navegación izquierdo, seleccione **Secretos**. 

1. En la página **Secretos**, seleccione **Almacenar un nuevo secreto**.

1. En la página **Seleccionar tipo de secreto**, en **Tipo de secreto**, seleccione **Otro tipo de secreto**.

1. En la sección de **Pares clave-valor**, seleccione la pestaña **Clave/valor**.
   + **Clave**: introduzca **PGPPrivateKey**.
   + **valor**: pegue el texto de su clave privada en el campo valor.

1. Seleccione **Añadir fila** y, en la sección de **Pares clave/valor**, seleccione la pestaña **Clave/valor**.
   + **Clave**: introduzca **PGPPassphrase**.
   + **valor**: introduzca la contraseña que utilizó al generar su par de claves PGP en [Paso 4: creación de un par de claves PGP](#create-example-pgp-key-pair).

1. Elija **Siguiente**.

1. En la página **Configurar secreto**, introduzca un nombre y una descripción para el secreto. Puede crear un secreto para un usuario específico o uno que puedan usar todos los usuarios. Si su ID de servidor es*`s-11112222333344445`*, asigne el nombre al secreto de la siguiente manera.
   + Para crear un secreto predeterminado para todos los usuarios, asigne un nombre al secreto**aws/transfer/*s-11112222333344445*/@pgp-default**.
   + Para crear un secreto solo para el usuario que creó anteriormente, asigne un nombre al secreto **aws/transfer/*s-11112222333344445*/decrypt-user**.

1. Seleccione **Siguiente** y, a continuación, acepte los valores predeterminados de la página **Configurar rotación**. A continuación, elija **Siguiente**.

1. En la página de **Revisión**, elija **Guardar** para crear y almacenar el secreto.

Para obtener más información sobre cómo añadir tu clave privada PGP a Secrets Manager, consulta [Usar AWS Secrets Manager para almacenar tu clave PGP](manage-pgp-keys.md#store-pgp-key-details).

## Paso 6: cifrado de un archivo
<a name="encrypt-example-file"></a>

Use el programa `gpg` para cifrar un archivo para usarlo en su flujo de trabajo. Para cifrar el archivo, ejecute el siguiente comando:

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

Antes de ejecutar este comando, tenga en cuenta lo siguiente:
+ Para el argumento `-r`, sustituya `marymajor@example.com` por la dirección de correo electrónico que utilizó al crear el par de claves PGP.
+ La etiqueta `--openpgp` es opcional. Este indicador hace que el archivo cifrado cumpla con el estándar [ RFC4880OpenPGP](https://www.rfc-editor.org/rfc/rfc4880).
+ Este comando crea un archivo cuyo nombre se encuentra **testfile.txt.gpg** en la misma ubicación que **testfile.txt**.

**importante**  
Al cifrar archivos para usarlos con AWS Transfer Family flujos de trabajo, asegúrese siempre de especificar un destinatario no anónimo mediante el parámetro. `-r` El cifrado anónimo (sin especificar un destinatario) puede provocar errores de descifrado en el flujo de trabajo, ya que el sistema no podrá identificar qué clave utilizar para el descifrado. La información sobre la depuración de este problema está disponible en. [Solucione problemas de cifrado de destinatarios anónimos](workflow-issues.md#workflows-decrypt-anonymous) 

## Paso 7: ejecución del flujo de trabajo y visualización de los resultados
<a name="test-decrypt-workflow"></a>

Para ejecutar el flujo de trabajo, debe conectarse al servidor de Transfer Family con el usuario que creó en el paso 3. A continuación, puede buscar en el bucket de Amazon S3 que especificó en el [paso 2.5 y configurar los parámetros de destino](#configure-destination-details) para ver el archivo descifrado.

**Ejecución del flujo de trabajo de descifrado**

1. Abra un terminal de comandos.

1. Ejecute el siguiente comando y sustituya `your-endpoint` por su punto de conexión actual y `transfer-key` por la clave privada SSH de su usuario:

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

   Por ejemplo, si la clave privada está almacenada en `~/.ssh/decrypt-user` y su punto de conexión es `s-11112222333344445.server.transfer.us-east-2.amazonaws.com`, el comando es el siguiente:

   ```
   sftp -i  ~/.ssh/decrypt-user decrypt-user@s-11112222333344445.server.transfer.us-east-2.amazonaws.com
   ```

1. Ejecute el comando `pwd`. Si se ejecuta correctamente, este comando devuelve lo siguiente:

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

   El directorio refleja el nombre del bucket de Amazon S3.

1. Ejecute el siguiente comando para cargar el archivo y activar el flujo de trabajo:

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

1. Como destino de los archivos descifrados, especificó la carpeta `decrypted-files/` al crear el flujo de trabajo. Ahora, puede ir a esa carpeta y enumerar el contenido.

   ```
   cd ../decrypted-files/
   ls
   ```

   Si tiene éxito, el comando `ls` muestra el archivo `testfile.txt`. Puede descargar este archivo y comprobar que es el mismo que el archivo original que cifró anteriormente.