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 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
Temas
- Paso 1: creación y configuración de un rol de ejecución de IAM
- Paso 2: creación de un flujo de trabajo administrado
- Paso 3: agregar el flujo de trabajo a un servidor y crear un usuario
- Paso 4: creación de un par de claves PGP
- Paso 5: guardar la clave privada PGP en AWS Secrets Manager
- Paso 6: cifrado de un archivo
- Paso 7: ejecución del flujo de trabajo y visualización de los resultados
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 Políticas de IAM 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 iniciar el flujo de trabajo que cree en este tutorial. Para utilizar esta política de ejemplo, sustituya
por su propia información. user input placeholders
DOC-EXAMPLE-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. Los permisos necesarios para un paso personalizado se describen en Permisos de IAM 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
-
Abre la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/
. -
En el panel de navegación izquierdo, seleccione Flujos de trabajo y, a continuación, Crear flujo de trabajo.
-
Escriba la información siguiente:
-
Introduzca una descripción, por ejemplo,
Decrypt workflow example
. -
En la sección Pasos nominales, seleccione Añadir paso.
-
-
En Elegir el tipo de paso, elija Descifrar archivo y, a continuación, elija Siguiente.
-
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
DOC-EXAMPLE-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.
-
-
Revise los detalles del paso. Si todo es correcto, seleccione Crear paso.
-
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
como ejemplo el ID del flujo de trabajo. w-1234abcd5678efghi
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 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
-
Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/
. -
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.
-
En la página de detalles del servidor, desplácese hacia abajo hasta la sección Detalles adicionales y, a continuación, seleccione Editar.
-
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, 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.
-
-
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
-
Abre la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/
. -
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.
-
En la página de detalles del servidor, desplácese hacia abajo hasta la sección Usuarios y seleccione Añadir usuario.
-
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 públicas de SSH, pega una clave pública que corresponda a la clave privada que tengas. Para obtener más detalles, consulte Genere claves SSH para los usuarios administrados por el servicio.
-
-
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
Utilice uno de los clientes PGP compatibles para generar un par de claves PGP. Este proceso se describe en detalle en Generar claves PGP.
Generación de un par de claves PGP
-
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 ejecutargpg --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). Sin embargo, si elige ECC, asegúrese de seleccionar una NIST o BrainPool para la curva elíptica. No seleccione Curve 25519. -
Exporte la clave privada mediante el siguiente comando. Sustituya
por la dirección de correo electrónico que utilizó al momento de generar la clave.user@example.com
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: guardar la clave privada PGP 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
Almacenamiento de una clave privada PGP en Secrets Manager
-
Inicia sesión en la AWS Secrets Manager consola AWS Management Console y ábrela en https://console.aws.amazon.com/secretsmanager/
. -
En el panel de navegación izquierdo, seleccione Secretos.
-
En la página Secretos, seleccione Almacenar un nuevo secreto.
-
En la página Seleccionar tipo de secreto, en Tipo de secreto, seleccione Otro tipo de secreto.
-
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.
-
-
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.
-
-
Elija Siguiente.
-
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
, asigne el nombre al secreto de la siguiente manera.s-11112222333344445
-
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
-
-
Seleccione Siguiente y, a continuación, acepte los valores predeterminados de la página Configurar rotación. A continuación, elija Siguiente.
-
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.
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 argumento
-r
, sustituya
por la dirección de correo electrónico que utilizó al crear el par de claves PGP.marymajor@example.com
-
La etiqueta
--openpgp
es opcional. Este indicador hace que el archivo cifrado se ajuste al estándar RFC4880 de OpenPGP. -
Este comando crea un archivo cuyo nombre se encuentra
testfile.txt.gpg
en la misma ubicación quetestfile.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
-
Abra un terminal de comandos.
-
Ejecute el siguiente comando y sustituya
por su punto de conexión actual yyour-endpoint
por la clave privada SSH de su usuario:transfer-key
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 ess-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
-
Ejecute el comando
pwd
. Si se ejecuta correctamente, este comando devuelve lo siguiente:Remote working directory: /
DOC-EXAMPLE-BUCKET
/decrypt-userEl directorio refleja el nombre del bucket de Amazon S3.
-
Ejecute el siguiente comando para cargar el archivo y activar el flujo de trabajo:
put testfile.txt.gpg
-
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 archivotestfile.txt
. Puede descargar este archivo y comprobar que es el mismo que el archivo original que cifró anteriormente.