Configuración de un flujo de trabajo gestionado para descifrar un archivo - 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.

Configuración de un flujo de trabajo gestionado para descifrar un archivo

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 AWS de almacenamiento tiene una entrada que describe cómo cifrar y descifrar archivos, cifrar y descifrar archivos con y. PGP AWS Transfer Family

Paso 1: creación y configuración de un rol de ejecución de IAM

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 IAMpolíticas para flujos de trabajo.

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.

La siguiente política de roles de ejecución contiene todos los permisos necesarios para ejecutar correctamente el flujo de trabajo que va a crear en este tutorial. Para utilizar esta política de ejemplo, sustituya user input placeholders por su propia información. Sustituya DOC-EXAMPLE-BUCKET por el nombre del bucket de Amazon S3 donde cargará sus archivos cifrados.

nota

No todos los flujos de trabajo requieren todos los permisos que se enumeran en este ejemplo. Puede limitar 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. Los permisos necesarios para un paso personalizado se describen en IAMpermisos para un paso personalizado.

{ "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:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET"] "Condition": { "StringEquals": { "s3:RequestObjectTag/Archive": "yes" } } }, { "Sid": "DecryptSecret", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*" } ] }

Paso 2: creación de un flujo de trabajo administrado

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. 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 y, a continuación, Crear flujo de trabajo.

  3. Escriba la información siguiente:

    • Introduzca una descripción, por ejemplo, Decrypt workflow example.

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

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

  5. 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ó DOC-EXAMPLE-BUCKET en la IAM política 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.

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

  7. 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 ID de flujo de trabajo de ejemplo.

Paso 3: agregar el flujo de trabajo a un servidor y crear un usuario

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 SFTP entrar 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/.

  2. 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 SFTP protocolo.

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

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

  5. 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 utilizas para almacenar PGP las claves 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/.

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

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

  4. 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, DOC-EXAMPLE-BUCKET.

    • En el caso de las claves SSH públicas, pegue una clave pública que corresponda a la clave privada que tenga. Para obtener más información, consulte Genere SSH claves para los usuarios gestionados por el servicio.

  5. 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: Crear un PGP key pair

Utilice uno de los PGPclientes compatibles para generar un PGP key pair. Este proceso se describe en detalle en Generar claves PGP.

Para generar un PGP key pair
  1. Para este tutorial, puede usar el cliente gpg (GnuPG) versión 2.0.22 para generar un PGP key pair que se 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. ECC Sin embargo, si lo deseaECC, asegúrese de elegir una de las dos NIST o BrainPool para la curva elíptica. No elija Curve 25519.

  2. 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 PGP privada en AWS Secrets Manager

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 Precios de AWS Secrets Manager.

Para almacenar una clave PGP privada en Secrets Manager
  1. Inicie sesión en AWS Management Console y abra la AWS Secrets Manager consola en https://console.aws.amazon.com/secretsmanager/.

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

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

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

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

  6. Seleccione Añadir fila y, en la sección de Pares clave/valor, seleccione la pestaña Clave/valor.

  7. Elija Next (Siguiente).

  8. En la página Configurar secreto, introduzca un nombre y una descripción para el secreto. En este tutorial, puede crear un secreto predeterminado que puedan usar todos los usuarios. Suponiendo que el ID del servidor es s-11112222333344445, dime el secreto. aws/transfer/s-11112222333344445/@pgp-default Reemplace s-11112222333344445 con el ID de su servidor de Transfer Family. Escriba una descripción de su secreto.

    nota

    Para crear un secreto solo para el usuario que creó anteriormente, asigne un nombre al secreto aws/transfer/s-11112222333344445/decrypt-user.

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

  10. 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 PGP privada a Secrets Manager, consulta Usar AWS Secrets Manager para almacenar tu PGP clave.

Paso 6: cifrado de un archivo

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 -r argumento, marymajor@example.com sustitúyalo por la dirección de correo electrónico que utilizaste al crear el PGP key pair.

  • La etiqueta --openpgp es opcional. Este indicador hace que el archivo cifrado se ajuste al estándar Open PGP RFC488 0.

  • Este comando crea un archivo cuyo nombre se encuentra testfile.txt.gpg en la misma ubicación que testfile.txt.

Paso 7: ejecución del flujo de trabajo y visualización de los resultados

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 para ver el archivo descifrado.

Ejecución del flujo de trabajo de descifrado
  1. Abra un terminal de comandos.

  2. Ejecute el siguiente comando y your-endpoint sustitúyalo por su punto final actual y transfer-key por la clave SSH privada 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
  3. Ejecute el comando pwd. Si se ejecuta correctamente, este comando devuelve lo siguiente:

    Remote working directory: /DOC-EXAMPLE-BUCKET/decrypt-user

    El directorio refleja el nombre del bucket de Amazon S3.

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

    put testfile.txt.gpg
  5. 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.