Gestion des clés - AWS Transfer Family

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des clés

Dans cette section, vous trouverez des informations sur SSH les clés, notamment sur la façon de les générer et de les faire pivoter. Pour en savoir plus sur l'utilisation de Transfer Family with AWS Lambda pour gérer les clés, consultez le billet de blog Enabling user self-service key management with A AWS Transfer Family and AWS Lambda.

Note

AWS Transfer Family accepte RSAECDSA, et ED25519 clés.

Cette section explique également comment générer et gérer les clés Pretty Good Privacy (PGP).

Algorithmes pris en charge pour les clés utilisateur et serveur

Les algorithmes clés suivants sont pris en charge pour les paires de clés utilisateur et serveur qu'elles contiennent. AWS Transfer Family

Note

Pour les algorithmes à utiliser avec le PGP déchiffrement dans les flux de travail, voir Algorithmes pris en charge pour les paires de PGP clés.

  • Pour ED25519 : ssh-ed25519

  • Pour RSA :

    • rsa-sha2-256

    • rsa-sha2-512

  • Pour ECDSA :

    • ecdsa-sha2-nistp256

    • ecdsa-sha2-nistp384

    • ecdsa-sha2-nistp521

Note

Nous prenons ssh-rsa en SHA1 charge nos anciennes politiques de sécurité. Pour plus de détails, consultez Algorithmes cryptographiques.

Génération de SSH clés pour les utilisateurs gérés par des services

Vous pouvez configurer votre serveur pour authentifier les utilisateurs à l'aide de la méthode d'authentification gérée par le service, dans laquelle les noms d'utilisateur et SSH les clés sont stockés dans le service. La SSH clé publique de l'utilisateur est téléchargée sur le serveur en tant que propriété de l'utilisateur. Cette clé est utilisée par le serveur dans le cadre d'un processus d'authentification standard basé sur des clés. Chaque utilisateur peut avoir plusieurs SSH clés publiques enregistrées sur un serveur individuel. Pour connaître les limites du nombre de clés pouvant être stockées par utilisateur, voir les AWS Transfer Family points de terminaison et les quotas dans le Référence générale d'Amazon Web Services.

Comme alternative à la méthode d'authentification gérée par le service, vous pouvez authentifier les utilisateurs à l'aide d'un fournisseur d'identité personnalisé, ou AWS Directory Service for Microsoft Active Directory. Pour plus d’informations, consultez Travailler avec des fournisseurs d'identité personnalisés ou Utilisation du fournisseur d'identité du AWS Directory Service.

Un serveur ne peut authentifier les utilisateurs qu'à l'aide d'une seule méthode (service géré, service d'annuaire ou fournisseur d'identité personnalisé), et cette méthode ne peut pas être modifiée une fois le serveur créé.

Création de SSH clés sous macOS, Linux ou Unix

Sur les systèmes d'exploitation macOS, Linux ou Unix, vous utilisez la ssh-keygen commande pour créer une clé SSH publique et une clé SSH privée, également appelées paire de clés.

Pour créer des SSH clés sur un système d'exploitation macOS, Linux ou Unix
  1. Sur les systèmes d'exploitation macOS, Linux ou Unix, ouvrez un terminal de commande.

  2. AWS Transfer Family accepte les RSA clés ED25519 formatées en ECDSA -, - et -. Choisissez la commande appropriée en fonction du type de paire de clés que vous générez.

    Note

    Dans les exemples suivants, nous n'indiquons pas de phrase secrète : dans ce cas, l'outil vous demande de saisir votre mot de passe, puis de le répéter pour vérifier. La création d'une phrase secrète permet de mieux protéger votre clé privée et peut également améliorer la sécurité globale du système. Vous ne pouvez pas récupérer votre mot de passe : si vous l'oubliez, vous devez créer une nouvelle clé.

    Toutefois, si vous générez une clé d'hôte de serveur, vous devez spécifier une phrase secrète vide, en spécifiant l'-N ""option dans la commande (ou en appuyant Enter deux fois lorsque vous y êtes invité), car les serveurs Transfer Family ne peuvent pas demander de mot de passe au démarrage.

    • Pour générer une RSA paire de clés de 4 096 bits :

      ssh-keygen -t rsa -b 4096 -f key_name
    • Pour générer une paire de clés ECDSA de 521 bits (ECDSAdont les tailles de bits sont de 256, 384 et 521) :

      ssh-keygen -t ecdsa -b 521 -f key_name
    • Pour générer une paire de ED25519 clés :

      ssh-keygen -t ed25519 -f key_name
    Note

    key_nameest le nom du fichier de paires de SSH clés.

    Voici un exemple de ssh-keygen sortie.

    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]-----+
    Note

    Lorsque vous exécutez la commande ssh-keygen telle qu'elle est présentée ci-dessus, elle crée les clés publique et privée sous forme de fichiers dans le répertoire actuel.

    Votre paire de SSH clés est maintenant prête à être utilisée. Suivez les étapes 3 et 4 pour enregistrer la clé SSH publique pour les utilisateurs gérés par le service. Ces utilisateurs utilisent les clés lorsqu'ils transfèrent des fichiers sur les terminaux du serveur Transfer Family.

  3. Accédez au key_name.pub fichier et ouvrez-le.

  4. Copiez le texte et collez-le dans la clé SSH publique pour l'utilisateur géré par le service.

    1. Ouvrez la AWS Transfer Family console sur https://console.aws.amazon.com/transfer/, puis sélectionnez Serveurs dans le volet de navigation.

    2. Sur la page Serveurs, sélectionnez l'ID du serveur qui contient l'utilisateur que vous souhaitez mettre à jour.

    3. Sélectionnez l'utilisateur pour lequel vous ajoutez une clé publique.

    4. Dans le volet des clés SSH publiques, choisissez Ajouter une clé SSH publique.

      La AWS Transfer Family console, qui affiche les détails de l'utilisateur sélectionné.
    5. Collez le texte de la clé publique que vous avez générée dans la zone de texte de la clé SSH publique, puis choisissez Ajouter une clé.

      La AWS Transfer Family console, qui affiche la page Ajouter une clé pour ajouter une clé publique.

      La nouvelle clé est répertoriée dans le volet SSH des clés publiques.

      La AWS Transfer Family console, qui affiche la clé publique récemment ajoutée dans la section des clés SSH publiques.

Création de SSH clés sous Microsoft Windows

Windows utilise un format de paire de SSH clés légèrement différent. La clé publique doit être au format PUB et la clé privée au format PPK. Sous Windows, vous pouvez utiliser P uTTYgen pour créer une paire de SSH clés dans les formats appropriés. Vous pouvez également utiliser P uTTYgen pour convertir une clé privée générée ssh-keygen à l'aide d'un .ppk fichier.

Note

Si vous présentez SCP à Win un fichier de clé privée non .ppk formaté, ce client propose de convertir la clé en .ppk format pour vous.

Pour un didacticiel sur la création de SSH clés à l'aide de P uTTYgen sous Windows, consultez le site Web SSH .com.

Convertir une clé SSH2 publique au PEM format

AWS Transfer Family accepte uniquement les clés publiques PEM formatées. Si vous avez une clé SSH2 publique, vous devez la convertir. Le format d'une clé SSH2 publique est le suivant :

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

Le format d'une clé PEM publique est le suivant :

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...

Exécutez la commande suivante pour convertir une clé publique SSH2 formatée en clé publique PEM formatée. Remplacez ssh2-key avec le nom de votre SSH2 clé, et PEM-key avec le nom de votre PEM clé.

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

Faire pivoter SSH les touches

Pour des raisons de sécurité, nous recommandons la meilleure pratique qui consiste à faire pivoter vos SSH clés. Généralement, cette rotation est spécifiée dans le cadre d'une politique de sécurité et est mise en œuvre de manière automatisée. Selon le niveau de sécurité, pour une communication très sensible, une paire de SSH clés peut être utilisée une seule fois. Cela élimine les risques liés au stockage des clés. Cependant, il est beaucoup plus courant de stocker les SSH informations d'identification pendant un certain temps et de définir un intervalle qui n'impose pas une charge excessive aux utilisateurs. Cette période est souvent de trois mois.

Deux méthodes sont utilisées pour effectuer la rotation des SSH touches :

  • Sur la console, vous pouvez télécharger une nouvelle clé SSH publique et supprimer une clé SSH publique existante.

  • À l'aide deAPI, vous pouvez mettre DeleteSshPublicKeyAPIà jour les utilisateurs existants en utilisant la clé publique Secure Shell (SSH) d'un utilisateur et en ajoutant une nouvelle clé publique Secure Shell (SSH) au compte de l'utilisateur. ImportSshPublicKeyAPI

Console
Pour effectuer une rotation des touches dans la console
  1. Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.

  2. Accédez à la page Serveurs.

  3. Choisissez l'identifiant dans la colonne ID du serveur pour afficher la page de détails du serveur.

  4. Sous Utilisateurs, cochez la case de l'utilisateur dont vous souhaitez faire pivoter la clé SSH publique, puis choisissez Actions, puis choisissez Ajouter une clé pour afficher la page Ajouter une clé.

    or

    Choisissez le nom d'utilisateur pour voir la page des détails de l'utilisateur, puis choisissez Ajouter une clé SSH publique pour afficher la page Ajouter une clé.

  5. Entrez la nouvelle clé SSH publique et choisissez Ajouter une clé.

    Important

    Le format de la clé SSH publique dépend du type de clé que vous avez générée.

    • Pour RSA les clés, le format estssh-rsa string.

    • Pour ED25519 les clés, le format estssh-ed25519 string.

    • Pour ECDSA les clés, la clé commence par ecdsa-sha2-nistp256ecdsa-sha2-nistp384, ouecdsa-sha2-nistp521, selon la taille de la clé que vous avez générée. La chaîne de début est ensuite suivie destring, comme pour les autres types de clés.

    Vous êtes renvoyé à la page des détails de l'utilisateur, et la nouvelle clé SSH publique que vous venez de saisir apparaît dans la section des clés SSH publiques.

  6. Cochez la case correspondant à l'ancienne touche YOU que vous souhaitez supprimer, puis choisissez Supprimer.

  7. Confirmez l'opération de suppression en saisissant le motdelete, puis choisissez Supprimer.

API
Pour effectuer une rotation des touches à l'aide du API
  1. Sur les systèmes d'exploitation macOS, Linux ou Unix, ouvrez un terminal de commande.

  2. Récupérez la SSH clé que vous souhaitez supprimer en saisissant la commande suivante. Pour utiliser cette commande, remplacez-la serverID par l'ID de serveur de votre serveur Transfer Family, puis par username votre nom d'utilisateur.

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

    La commande renvoie des informations sur l'utilisateur. Copiez le contenu du "SshPublicKeyId": champ. Vous devrez saisir cette valeur ultérieurement dans cette procédure.

    "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID", "DateImported": 1621969331.072 } ],
  3. Importez ensuite une nouvelle SSH clé pour votre utilisateur. À l'invite , entrez la commande suivante. Pour utiliser cette commande, serverID remplacez-la par l'ID du serveur de votre serveur Transfer Family, username par votre nom d'utilisateur et public-key par l'empreinte digitale de votre nouvelle clé publique.

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

    Si la commande aboutit, aucune sortie n'est renvoyée.

  4. Enfin, supprimez l'ancienne clé en exécutant la commande suivante. Pour utiliser cette commande, remplacez serverID par l'ID de serveur de votre serveur Transfer Family, remplacez par username votre nom d'utilisateur et remplacez par la valeur keyID-from-step-2 d'ID clé que vous avez copiée à l'étape 2 de cette procédure

    aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-id='keyID-from-step-2'
  5. (Facultatif) Pour confirmer que l'ancienne clé n'existe plus, répétez l'étape 2.

Génération et gestion PGP des clés

Vous pouvez utiliser le décryptage Pretty Good Privacy (PGP) avec les fichiers que Transfer Family traite avec les flux de travail. Pour utiliser le déchiffrement dans une étape du flux de travail, vous devez fournir une PGP clé.

Le blog sur le AWS stockage contient un article qui décrit comment crypter et déchiffrer des fichiers, crypter et déchiffrer des fichiers avec et. PGP AWS Transfer Family

Générer des PGP clés

La méthode que vous utilisez pour générer vos PGP clés dépend de votre système d'exploitation et de la version du logiciel de génération de clés que vous utilisez.

Si vous utilisez Linux ou Unix, utilisez le programme d'installation de votre package pour l'installergpg. En fonction de votre distribution Linux, l'une des commandes suivantes devrait fonctionner pour vous.

sudo yum install gnupg
sudo apt-get install gnupg

Pour Windows ou macOS, vous pouvez télécharger ce dont vous avez besoin sur https://gnupg.org/download/.

Après avoir installé votre logiciel de génération de PGP clés, vous devez exécuter la gpg --gen-key commande gpg --full-gen-key or pour générer une paire de clés.

Note

Si vous utilisez la GnuPG version 2.3.0 ou une version plus récente, vous devez exécutergpg --full-gen-key. Lorsque vous êtes invité à saisir le type de clé à créer, choisissez RSA ouECC. Toutefois, si vous le souhaitezECC, assurez-vous de choisir l'un des deux NIST or BrainPool pour la courbe elliptique. Ne choisissez pas Curve 25519.

Algorithmes pris en charge pour les paires de PGP clés

Les algorithmes suivants sont pris en charge pour les paires de PGP clés :

  • RSA

  • Elgamal

  • ECC:

    • NIST

    • BrainPool

Note

Les touches Curve25519 ne sont pas prises en charge.

gpgSous-commandes utiles

Voici quelques sous-commandes utiles pour gpg :

  • gpg --help— Cette commande répertorie les options disponibles et peut inclure quelques exemples.

  • gpg --list-keys— Cette commande répertorie les détails de toutes les paires de clés que vous avez créées.

  • gpg --fingerprint— Cette commande répertorie les détails de toutes vos paires de clés, y compris l'empreinte digitale de chaque clé.

  • gpg --export -a user-name— Cette commande exporte la partie clé publique de la user-name clé utilisée lors de la génération de la clé.

Gérer les clés PGP

Pour gérer vos PGP clés, vous devez utiliser AWS Secrets Manager.

Note

Votre nom secret inclut votre identifiant de serveur Transfer Family. Cela signifie que vous devez déjà avoir identifié ou créé un serveur avant de pouvoir y stocker vos informations PGP clés AWS Secrets Manager.

Si vous souhaitez utiliser une seule clé et une seule phrase secrète pour tous vos utilisateurs, vous pouvez enregistrer les informations du bloc de PGP clés sous le nom secretaws/transfer/server-id/@pgp-default, où se server-id trouve l'identifiant de votre serveur Transfer Family. Cette clé par défaut est utilisée si aucune clé ne user-name correspond à l'utilisateur qui exécute le flux de travail.

Vous pouvez également créer une clé pour un utilisateur spécifique. Dans ce cas, le format du nom du secret est aws/transfer/server-id/user-name « où user-name correspond à l'utilisateur qui exécute le flux de travail pour un serveur Transfer Family ».

Note

Vous pouvez stocker un maximum de 3 clés PGP privées, par serveur Transfer Family, par utilisateur.

Pour configurer les PGP clés à utiliser avec le déchiffrement
  1. Selon la version GPG que vous utilisez, exécutez l'une des commandes suivantes pour générer une paire de PGP clés qui n'utilise pas d'algorithme de chiffrement Curve 25519.

    • Si vous utilisez la GnuPG version 2.3.0 ou une version plus récente, exécutez la commande suivante :

      gpg --full-gen-key

      Vous pouvez choisirRSA, ou, si vous le souhaitezECC, vous pouvez choisir l'une NIST ou BrainPool l'autre courbe elliptique. Si vous exécutez gpg --gen-key plutôt, vous créez une paire de clés qui utilise l'algorithme de chiffrement ECC Curve 25519, que nous ne prenons actuellement pas en charge pour les PGP clés.

    • Pour les versions GnuPG antérieures à 2.3.0, vous pouvez utiliser la commande suivante, car RSA il s'agit du type de chiffrement par défaut.

      gpg --gen-key
    Important

    Pendant le processus de génération des clés, vous devez fournir un mot de passe et une adresse e-mail. Assurez-vous de prendre note de ces valeurs. Vous devez fournir le mot de passe lorsque vous entrez les détails de la clé AWS Secrets Manager plus loin dans cette procédure. Et vous devez fournir la même adresse e-mail pour exporter la clé privée à l'étape suivante.

  2. Exécutez la commande suivante pour exporter la clé privée. Pour utiliser cette commande, private.pgp remplacez-la par le nom du fichier dans lequel vous souhaitez enregistrer le bloc de clé privée et marymajor@example.com par l'adresse e-mail que vous avez utilisée lors de la génération de la paire de clés.

    gpg --output private.pgp --armor --export-secret-key marymajor@example.com
  3. AWS Secrets Manager Utilisez-le pour ranger votre PGP clé.

    1. Connectez-vous à la AWS Secrets Manager console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/secretsmanager/.

    2. Dans le volet de navigation de gauche, choisissez Secrets.

    3. Sur la page Secrets, choisissez Enregistrer un nouveau secret.

    4. Sur la page Choisir un type de secret, pour Type de secret, sélectionnez Autre type de secret.

    5. Dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.

      • Clé — EntréePGPPrivateKey.

        Note

        Vous devez saisir la PGPPrivateKey chaîne exactement : n'ajoutez aucun espace avant ou entre les caractères.

      • valeur — Collez le texte de votre clé privée dans le champ de valeur. Le texte de votre clé privée se trouve dans le fichier (par exempleprivate.pgp) que vous avez spécifié lors de l'exportation de votre clé au début de cette procédure. La clé commence par -----BEGIN PGP PRIVATE KEY BLOCK----- et se termine par-----END PGP PRIVATE KEY BLOCK-----.

        Note

        Assurez-vous que le bloc de texte contient uniquement la clé privée et ne contient pas également la clé publique.

    6. Sélectionnez Ajouter une ligne et dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.

      • Clé — EntréePGPPassphrase.

        Note

        Vous devez saisir la PGPPassphrase chaîne exactement : n'ajoutez aucun espace avant ou entre les caractères.

      • valeur — Entrez le mot de passe que vous avez utilisé lors de la génération de votre paire PGP de clés.

      La AWS Secrets Manager console, qui affiche les clés et les valeurs que vous entrez pour gérer vos PGP clés.
      Note

      Vous pouvez ajouter jusqu'à 3 jeux de clés et de phrases de passe. Pour ajouter un deuxième ensemble, ajoutez deux nouvelles lignes, entrez PGPPrivateKey2 et PGPPassphrase2 pour les clés, puis collez une autre clé privée et une autre phrase secrète. Pour ajouter un troisième ensemble, les valeurs clés doivent être PGPPrivateKey3 etPGPPassphrase3.

    7. Choisissez Suivant.

    8. Sur la page Configurer le secret, entrez le nom et la description de votre secret.

      • Si vous créez une clé par défaut, c'est-à-dire une clé qui peut être utilisée par n'importe quel utilisateur de Transfer Family, entrezaws/transfer/server-id/@pgp-default. Remplacez server-id par l'ID du serveur qui contient le flux de travail comportant une étape de déchiffrement.

      • Si vous créez une clé destinée à être utilisée par un utilisateur spécifique de Transfer Family, entrezaws/transfer/server-id/user-name. Remplacez server-id par l'ID du serveur qui contient le flux de travail comportant une étape de déchiffrement et remplacez user-name par le nom de l'utilisateur qui exécute le flux de travail. user-nameIl est stocké dans le fournisseur d'identité utilisé par le serveur Transfer Family.

    9. Choisissez Next et acceptez les valeurs par défaut sur la page Configurer la rotation. Ensuite, sélectionnez Suivant.

    10. Sur la page Révision, choisissez Store pour créer et stocker le secret.

La capture d'écran suivante montre les informations relatives à l'utilisateur marymajor pour un serveur Transfer Family spécifique. Cet exemple montre trois clés et les phrases de passe correspondantes.

La AWS Secrets Manager console, qui affiche la page de détails secrète avec trois clés et phrases de passe pour un serveur et un utilisateur de Transfer Family.

PGPClients pris en charge

Les clients suivants ont été testés avec Transfer Family et peuvent être utilisés pour générer des PGP clés et pour chiffrer des fichiers que vous souhaitez déchiffrer à l'aide d'un flux de travail.

  • GPG4win + Cléopâtre.

    Note

    Lorsque vous sélectionnez Signer/Chiffrer des fichiers, assurez-vous de désactiver la sélection pour Signer en tant que : nous ne prenons actuellement pas en charge la signature pour les fichiers chiffrés.

    Les options de Kleopatra pour signer et chiffrer des fichiers. L'option Signer comme est désactivée et l'option Chiffrer pour moi est sélectionnée.
  • Principales versions de GnuPG : 2.4, 2.3, 2.2, 2.0 et 1.4.

Notez que d'autres PGP clients peuvent également fonctionner, mais seuls les clients mentionnés ici ont été testés avec Transfer Family.