Administración de claves - 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.

Administración de claves

En esta sección, encontrará información sobre SSH las claves, incluyendo cómo generarlas y cómo girarlas. Para obtener más información sobre el uso de Transfer Family with AWS Lambda para administrar las claves, consulte la entrada del blog Habilitar la administración de claves de autoservicio del usuario con A AWS Transfer Family y AWS Lambda.

nota

AWS Transfer Family acepta RSAECDSA, y ED25519 claves.

En esta sección también se explica cómo generar y administrar las claves de Pretty Good Privacy (PGP).

Algoritmos admitidos para las claves de usuario y del servidor

Los siguientes algoritmos clave son admitidos con los pares de claves de usuario y de servidor dentro de AWS Transfer Family.

nota

Para ver los algoritmos que se pueden usar con el PGP descifrado en los flujos de trabajo, consulte Algoritmos compatibles con los pares de PGP claves.

  • Para: ED25519 ssh-ed25519

  • ParaRSA:

    • rsa-sha2-256

    • rsa-sha2-512

  • ParaECDSA:

    • ecdsa-sha2-nistp256

    • ecdsa-sha2-nistp384

    • ecdsa-sha2-nistp521

nota

ssh-rsaRespaldamos nuestras políticas de seguridad más antiguas. SHA1 Para obtener más información, consulte Algoritmos criptográficos.

Genere SSH claves para los usuarios gestionados por el servicio

Puede configurar su servidor para autenticar a los usuarios mediante el método de autenticación gestionada por el servicio, en el que los nombres de usuario y SSH las claves se almacenan en el servicio. La SSH clave pública del usuario se carga en el servidor como propiedad del usuario. El servidor utiliza esta clave como parte de un proceso de autenticación estándar basado en claves. Cada usuario puede tener varias SSH claves públicas archivadas en un servidor individual. Para conocer los límites en la cantidad de claves que se pueden almacenar por usuario, consulte los puntos de conexión y cuotas de AWS Transfer Family en Referencia general de Amazon Web Services.

Como alternativa al método de autenticación gestionado por el servicio, puede autenticar a los usuarios mediante un proveedor de identidad personalizado, o bien AWS Directory Service for Microsoft Active Directory. Para obtener más información, consulte Uso de proveedores de identidad personalizados o Uso del proveedor de identidad de AWS Directory Service.

Un servidor solo puede autenticar a los usuarios mediante un método (administrado por el servicio, servicio de directorio o proveedor de identidad personalizado), y ese método no se puede cambiar una vez creado el servidor.

Creación de SSH claves en macOS, Linux o Unix

En los sistemas operativos macOS, Linux o Unix, se utiliza el ssh-keygen comando para crear una clave SSH pública y una clave SSH privada, también conocidas como key pair.

Para crear SSH claves en un sistema operativo macOS, Linux o Unix
  1. En los sistemas operativos macOS, Linux o Unix, abra una terminal de comandos.

  2. AWS Transfer Family acepta RSA claves con los ED25519 formatos ECDSA -, - y. Elija el comando apropiado en función del tipo de par de claves que esté generando.

    nota

    En los ejemplos siguientes, no especificamos una frase de contraseña: en este caso, la herramienta le pide que introduzca la frase de contraseña y, a continuación, que la repita para verificarla. La creación de una frase de contraseña ofrece una mejor protección para la clave privada y, también, podría mejorar la seguridad general del sistema. No puede recuperar la frase de contraseña: si la olvida, debe crear una clave nueva.

    Sin embargo, si va a generar una clave de host de servidor, debe especificar una frase de contraseña vacía especificando la opción -N "" en el comando (o pulsando Enter dos veces cuando se le solicite), ya que los servidores de Transfer Family no pueden solicitar una contraseña al inicio.

    • Para generar un key pair de RSA 4096 bits:

      ssh-keygen -t rsa -b 4096 -f key_name
    • Para generar un par de claves de ECDSA 521 bits (ECDSAtiene tamaños de bits de 256, 384 y 521):

      ssh-keygen -t ecdsa -b 521 -f key_name
    • Para generar un ED25519 key pair:

      ssh-keygen -t ed25519 -f key_name
    nota

    key_namees el nombre del archivo del par de SSH claves.

    A continuación se muestra un ejemplo del resultado ssh-keygen.

    ssh-keygen -t rsa -b 4096 -f key_name Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in key_name. Your public key has been saved in key_name.pub. The key fingerprint is: SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com The key's randomart image is: +---[RSA 4096]----+ | . ....E | | . = ... | |. . . = ..o | | . o + oo = | | + = .S.= * | | . o o ..B + o | | .o.+.* . | | =o*+*. | | ..*o*+. | +----[SHA256]-----+
    nota

    Al ejecutar ssh-keygen como se ha mostrado, el comando crea las claves pública y privada como archivos en el directorio actual.

    El SSH key pair ya está listo para usarse. Siga los pasos 3 y 4 para almacenar la clave SSH pública para los usuarios gestionados por el servicio. Estos usuarios utilizan las claves cuando transfieren archivos en los puntos finales del servidor Transfer Family.

  3. Desplácese hasta el archivo key_name.pub y ábralo.

  4. Copie el texto y péguelo en la clave SSH pública del usuario gestionado por el servicio.

    1. Abra la AWS Transfer Family consola en y https://console.aws.amazon.com/transfer/, a continuación, seleccione Servidores en el panel de navegación.

    2. En la página Servidores, seleccione el ID de servidor para el servidor que contiene el usuario que desea actualizar.

    3. Seleccione el usuario para el que va a añadir una clave pública.

    4. En el panel de claves SSH públicas, selecciona Añadir clave SSH pública.

      La AWS Transfer Family consola, que muestra los detalles de usuario de un usuario seleccionado.
    5. Pegue el texto de la clave pública que ha generado en el cuadro de texto de clave SSH pública y, a continuación, seleccione Añadir clave.

      La AWS Transfer Family consola, que muestra la página Añadir clave para añadir una clave pública.

      La nueva clave aparece en el panel de claves SSH públicas.

      La AWS Transfer Family consola, que muestra la clave pública recién agregada en la sección de claves SSH públicas.

Creación de SSH claves en Microsoft Windows

Windows usa un formato de SSH key pair ligeramente diferente. La clave pública debe tener el formato PUB, mientras que la clave privada debe tener el formato PPK. En Windows, puede usar P uTTYgen para crear un SSH key pair en los formatos adecuados. También puede usar P uTTYgen para convertir en un .ppk archivo una clave privada generada mediantessh-keygen.

nota

Si le SCP proporciona a Win un archivo de clave privada que no tiene ese .ppk formato, ese cliente le ofrecerá convertir la clave a ese .ppk formato por usted.

Para ver un tutorial sobre cómo crear SSH claves mediante P uTTYgen en Windows, visita el sitio web SSH .com.

Convierte una clave SSH2 pública en PEM formato

AWS Transfer Family solo acepta claves públicas PEM formateadas. Si tiene una clave SSH2 pública, debe convertirla. Una clave SSH2 pública tiene el siguiente formato:

---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20160402" AAAAB3NzaC1yc2EAAAABJQAAAgEAiL0jjDdFqK/kYThqKt7THrjABTPWvXmB3URI : : ---- END SSH2 PUBLIC KEY ----

Una clave PEM pública tiene el siguiente formato:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...

Ejecute el siguiente comando para convertir una clave pública SSH2 con formato en una clave pública PEM con formato. Reemplazar ssh2-key con el nombre de tu clave, y SSH2 PEM-key con el nombre de tu PEM llave.

ssh-keygen -i -f ssh2-key.pub > PEM-key.pub

Gire SSH las teclas

Por motivos de seguridad, la mejor práctica es rotar las SSH llaves. Normalmente, la rotación se especifica como parte de una política de seguridad y se implementa con algún mecanismo automático. Según el nivel de seguridad, en el caso de una comunicación muy sensible, es posible que un SSH key pair solo se utilice una vez. Esto elimina cualquier riesgo derivado del almacenamiento de las claves. Sin embargo, es mucho más común almacenar SSH las credenciales durante un período de tiempo y establecer un intervalo que no suponga una carga excesiva para los usuarios. Un intervalo de tres meses es habitual.

Se utilizan dos métodos para realizar la rotación de SSH claves:

  • En la consola, puede cargar una clave SSH pública nueva y eliminar una clave SSH pública existente.

  • Con ellaAPI, puede actualizar los usuarios existentes DeleteSshPublicKeyAPIpara eliminar la clave pública de Secure Shell (SSH) de un usuario y ImportSshPublicKeyAPIañadir una nueva clave pública de Secure Shell (SSH) a la cuenta del usuario.

Console
Cómo realizar una rotación de claves en la consola
  1. Abra la AWS Transfer Family consola en https://console.aws.amazon.com/transfer/.

  2. Navegue a la página Servidores.

  3. Elija el identificador en la columna ID de servidor para ver la página Detalles del servidor.

  4. En Usuarios, active la casilla de verificación del usuario cuya clave SSH pública desee rotar, elija Acciones y, a continuación, elija Agregar clave para ver la página Agregar clave.

    o

    Elige el nombre de usuario para ver la página de detalles del usuario y, a continuación, selecciona Añadir clave SSH pública para ver la página Añadir clave.

  5. Introduce la nueva clave SSH pública y selecciona Añadir clave.

    importante

    El formato de la clave SSH pública depende del tipo de clave que hayas generado.

    • En el RSA caso de las claves, el formato esssh-rsa string.

    • En el ED25519 caso de las claves, el formato esssh-ed25519 string.

    • En el caso de ECDSA las clavesecdsa-sha2-nistp256, la clave comienza por ecdsa-sha2-nistp384ecdsa-sha2-nistp521, o, según el tamaño de la clave que haya generado. A continuación, la cadena inicial va seguida de string, de forma similar a los demás tipos de clave.

    Volverá a la página de detalles del usuario y la nueva clave SSH pública que acaba de introducir aparecerá en la sección de claves SSH públicas.

  6. Seleccione las casillas de verificación situadas junto a las claves que desea eliminar y seleccione Eliminar.

  7. Confirme la operación de eliminación escribiendo la palabra delete y, a continuación, seleccione Eliminar.

API
Para realizar una rotación de clave mediante el API
  1. En los sistemas operativos macOS, Linux o Unix, abra una terminal de comandos.

  2. Para recuperar la SSH clave que desee eliminar, introduzca el siguiente comando. Para usar este comando, reemplace serverID por el ID del servidor de su servidor de Transfer Family y reemplace username por su nombre de usuario.

    aws transfer describe-user --server-id='serverID' --user-name='username'

    El comando devuelve detalles sobre el usuario. Copie el contenido del campo "SshPublicKeyId":. Tendrá que introducir este valor más tarde en este mismo procedimiento.

    "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID", "DateImported": 1621969331.072 } ],
  3. A continuación, importe una nueva SSH clave para su usuario. Cuando se le solicite, introduzca el comando siguiente. Para usar este comando, reemplace serverID por el ID del servidor de su servidor de Transfer Family, reemplace username por su nombre de usuario, y reemplace public-key por la huella digital de su clave pública nueva.

    aws transfer import-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-body='public-key'

    Si el comando se ejecuta correctamente, no se muestra ningún resultado.

  4. Por último, elimine la clave anterior mediante el siguiente comando. Para usar este comando, reemplace serverID por el ID del servidor de su servidor de Transfer Family, reemplace username por su nombre de usuario, y reemplace keyID-from-step-2 por el valor de identificador de clave que copió en el paso 2 de este procedimiento

    aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-id='keyID-from-step-2'
  5. (Opcional) Para confirmar que la clave anterior ya no existe, repita el paso 2.

Genera y gestiona PGP las claves

Puede utilizar el descifrado de Pretty Good Privacy (PGP) con los archivos que Transfer Family procesa con los flujos de trabajo. Para utilizar el descifrado en un paso del flujo de trabajo, debe proporcionar una PGP clave.

El blog sobre AWS almacenamiento tiene una entrada que describe cómo cifrar y descifrar archivos, cifrar y descifrar archivos con y. PGP AWS Transfer Family

Generar claves PGP

El método que utilices para generar PGP las claves depende del sistema operativo y de la versión del software de generación de claves que utilices.

Si utiliza Linux o Unix, utilice el instalador de paquetes para realizar la instalación de gpg. Dependiendo de su distribución de Linux, uno de los siguientes comandos debería funcionar para usted.

sudo yum install gnupg
sudo apt-get install gnupg

Para Windows o macOS, puede descargar lo que necesite desde https://gnupg.org/download/.

Tras instalar el software generador de PGP claves, ejecute el gpg --gen-key comando gpg --full-gen-key o para generar un par de claves.

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

Algoritmos compatibles con los pares de PGP claves

Los pares de PGP claves admiten los siguientes algoritmos:

  • RSA

  • ElGamal

  • ECC:

    • NIST

    • BrainPool

nota

No se admiten claves Curve25519.

Subcomandos de gpg útiles

Los siguientes son algunos subcomandos útiles para gpg:

  • gpg --help: este comando muestra las opciones disponibles y puede incluir algunos ejemplos.

  • gpg --list-keys: este comando muestra los detalles de todos los pares de claves que ha creado.

  • gpg --fingerprint: este comando muestra los detalles de todos los pares de claves, incluida la huella digital de cada clave.

  • gpg --export -a user-name: este comando exporta la parte de la clave pública de la clave para user-name que se utilizó cuando se generó la clave.

Administra PGP las claves

Para administrar sus PGP claves, debe usar AWS Secrets Manager.

nota

Su nombre secreto incluye su ID de servidor de Transfer Family. Esto significa que ya debe haber identificado o creado un servidor antes de poder almacenar su información PGP clave AWS Secrets Manager.

Si quieres usar una clave y una frase de contraseña para todos tus usuarios, puedes almacenar la información del bloque de PGP claves bajo el nombre secretoaws/transfer/server-id/@pgp-default, que server-id es el ID de tu servidor Transfer Family. Esta clave predeterminada se usa si no hay ninguna clave en la que user-name coincida con el usuario que está ejecutando el flujo de trabajo.

Si lo prefiere, puede crear una clave para un usuario específico. En este caso, el formato del nombre secreto es aws/transfer/server-id/user-name, en el cual user-name coincide con el usuario que ejecuta el flujo de trabajo para un servidor de Transfer Family.

nota

Puedes almacenar un máximo de 3 claves PGP privadas por servidor Transfer Family y por usuario.

Para configurar PGP las claves para su uso con el descifrado
  1. Según la versión GPG que utilice, ejecute uno de los siguientes comandos para generar un PGP key pair que no utilice un algoritmo de cifrado Curve 25519.

    • Si utiliza la versión 2.3.0 de GnuPG o posterior, ejecute el siguiente comando:

      gpg --full-gen-key

      Puede elegir RSA o, si elige ECC, puede elegir NIST o BrainPool para la curva elíptica. Si, gpg --gen-key en su lugar, ejecuta, crea un par de claves que utilice el algoritmo de cifrado ECC Curve 25519, que actualmente no admitimos para PGP las claves.

    • Para las versiones GnuPG anteriores a la 2.3.0, puedes usar el siguiente comando, ya que RSA es el tipo de cifrado predeterminado.

      gpg --gen-key
    importante

    Durante el proceso de generación de claves, debe proporcionar una frase de contraseña y una dirección de correo electrónico. Asegúrese de tomar nota de estos valores. Debe proporcionar la frase de contraseña cuando introduzca los detalles de la clave en AWS Secrets Manager más adelante en este procedimiento. Además, debe proporcionar la misma dirección de correo electrónico para exportar la clave privada en el siguiente paso.

  2. Ejecute el siguiente comando para exportar la clave privada. Para usar este comando, reemplace private.pgp por el nombre del archivo en el que se va a guardar el bloque de clave privada, y reemplace marymajor@example.com por la dirección de correo electrónico que utilizó al generar el par de claves.

    gpg --output private.pgp --armor --export-secret-key marymajor@example.com
  3. Se usa AWS Secrets Manager para almacenar la PGP clave.

    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.

        nota

        Debe introducir la cadena PGPPrivateKey con precisión: no añada espacios antes o entre los caracteres.

      • valor: pegue el texto de su clave privada en el campo valor. Puede encontrar el texto de la clave privada en el archivo (por ejemplo, private.pgp) que especificó al exportar la clave al principio de este procedimiento. La clave comienza con -----BEGIN PGP PRIVATE KEY BLOCK----- y termina con -----END PGP PRIVATE KEY BLOCK-----.

        nota

        Asegúrese de que el bloque de texto contenga solo la clave privada y que no contenga también la clave pública.

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

      • Clave: introduzca PGPPassphrase.

        nota

        Debe introducir la cadena PGPPassphrase con precisión: no añada espacios antes o entre los caracteres.

      • valor: introduce la contraseña que utilizaste al generar el key pairPGP.

      La AWS Secrets Manager consola, que muestra las claves y los valores que se introducen para gestionar las claves. PGP
      nota

      Puede agregar hasta 3 conjuntos de claves y frases de contraseña. Para añadir un segundo conjunto, añada dos filas nuevas, introduzca PGPPrivateKey2 y PGPPassphrase2 para las claves, y pegue otra clave privada y frase de contraseña. Para añadir un tercer conjunto, los valores de la clave deben ser PGPPrivateKey3 y PGPPassphrase3.

    7. Seleccione Siguiente.

    8. En la página Configurar secreto, introduzca un nombre y una descripción para el secreto.

      • Si va a crear una clave predeterminada, es decir, una clave que pueda utilizar cualquier usuario de Transfer Family, introduzca aws/transfer/server-id/@pgp-default. Reemplace server-id por el ID del servidor que contiene el flujo de trabajo que tiene un paso de descifrado.

      • Si va a crear una clave para que la utilice un usuario específico de Transfer Family, introduzca aws/transfer/server-id/user-name. Reemplace server-id por el ID del servidor que contiene el flujo de trabajo que tiene un paso de descifrado y reemplace user-name por el nombre del usuario que ejecuta el flujo de trabajo. user-name se almacena en el proveedor de identidad que utiliza el servidor de Transfer Family.

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

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

La siguiente captura de pantalla muestra los detalles del usuario marymajor para un servidor de Transfer Family específico. En este ejemplo, se muestran tres claves y sus frases de contraseñas correspondientes.

La AWS Secrets Manager consola, que muestra la página de detalles secretos con tres claves y contraseñas para un servidor y un usuario de Transfer Family.

Clientes compatibles PGP

Los siguientes clientes se han probado con Transfer Family y se pueden utilizar para generar PGP claves y cifrar los archivos que desee descifrar con un flujo de trabajo.

  • Gpg4win + Kleopatra.

    nota

    Cuando seleccione Firmar/cifrar archivos, asegúrese de borrar la selección de Firmar como: actualmente no se admite la firma de archivos cifrados.

    Las opciones de Kleopatra para firmar y cifrar archivos. La opción Firmar como está desactivada y está seleccionada la opción Cifrar por mí.
  • Versiones principales de GnuPG: 2.4, 2.3, 2.2, 2.0 y 1.4.

Tenga en cuenta que otros PGP clientes también podrían funcionar, pero solo los clientes mencionados aquí han sido probados con Transfer Family.