Gestione delle chiavi - AWS Transfer Family

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle chiavi

In questa sezione, puoi trovare informazioni sulle SSH chiavi, incluso come generarle e come ruotarle. Per i dettagli sull'utilizzo di Transfer Family with AWS Lambda per gestire le chiavi, consulta il post del blog Enabling user self-service key management with A AWS Transfer Family and AWS Lambda.

Nota

AWS Transfer Family accetta RSA ECDSA e ED25519 chiavi.

Questa sezione spiega anche come generare e gestire le chiavi Pretty Good Privacy (PGP).

Algoritmi supportati per chiavi utente e server

I seguenti algoritmi chiave sono supportati per le coppie di chiavi utente e server all'interno. AWS Transfer Family

  • ED25519Per: ssh-ed25519

  • PerRSA:

    • rsa-sha2-256

    • rsa-sha2-512

  • PerECDSA:

    • ecdsa-sha2-nistp256

    • ecdsa-sha2-nistp384

    • ecdsa-sha2-nistp521

Nota

Supportiamo ssh-rsa SHA1 le nostre vecchie politiche di sicurezza. Per informazioni dettagliate, consultare Algoritmi crittografici.

Genera SSH chiavi per gli utenti gestiti dal servizio

È possibile configurare il server per autenticare gli utenti utilizzando il metodo di autenticazione gestita dal servizio, in cui i nomi utente e SSH le chiavi sono archiviati all'interno del servizio. La SSH chiave pubblica dell'utente viene caricata sul server come proprietà dell'utente. Questa chiave viene utilizzata dal server come parte di un processo di autenticazione standard basato su chiavi. Ogni utente può avere più SSH chiavi pubbliche archiviate su un singolo server. Per i limiti al numero di chiavi che possono essere archiviate per utente, consulta AWS Transfer Family endpoint e quote in. Riferimenti generali di Amazon Web Services

In alternativa al metodo di autenticazione gestita dal servizio, puoi autenticare gli utenti utilizzando un provider di identità personalizzato oppure. AWS Directory Service for Microsoft Active Directory Per ulteriori informazioni, consulta Lavorare con provider di identità personalizzati o Utilizzo del provider di identità AWS Directory Service.

Un server può autenticare gli utenti solo utilizzando un metodo (servizio gestito, servizio di directory o provider di identità personalizzato) e tale metodo non può essere modificato dopo la creazione del server.

Creazione di SSH chiavi su macOS, Linux o Unix

Nei sistemi operativi macOS, Linux o Unix, si utilizza il ssh-keygen comando per creare una chiave SSH pubblica e una chiave SSH privata, nota anche come coppia di chiavi.

Per creare SSH chiavi su un sistema operativo macOS, Linux o Unix
  1. Sui sistemi operativi macOS, Linux o Unix, apri un terminale di comando.

  2. AWS Transfer Family accetta chiavi in RSA formato -, ECDSA - e ED25519 -formattato. Scegliete il comando appropriato in base al tipo di coppia di chiavi che state generando.

    Nota

    Negli esempi seguenti, non viene specificata una passphrase: in questo caso, lo strumento chiede di inserire la passphrase e quindi di ripeterla per verificare. La creazione di una passphrase offre una protezione migliore per la chiave privata e potrebbe anche migliorare la sicurezza generale del sistema. Non è possibile recuperare la passphrase: se la si dimentica, è necessario creare una nuova chiave.

    Tuttavia, se state generando una chiave host del server, dovete specificare una passphrase vuota, specificando l'-N ""opzione nel comando (o premendo Enter due volte quando richiesto), perché i server Transfer Family non possono richiedere una password all'avvio.

    • Per generare una coppia di key pair a RSA 4096 bit:

      ssh-keygen -t rsa -b 4096 -f key_name
    • Per generare una coppia di chiavi ECDSA a 521 bit (ECDSAcon dimensioni di bit di 256, 384 e 521):

      ssh-keygen -t ecdsa -b 521 -f key_name
    • Per generare una ED25519 key pair:

      ssh-keygen -t ed25519 -f key_name
    Nota

    key_nameè il nome del file della coppia di SSH chiavi.

    Di seguito viene illustrato un esempio dell'ssh-keygenoutput.

    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

    Quando si esegue il comando ssh-keygen come mostrato in precedenza, le chiavi pubblica e privata vengono create come file nella directory corrente.

    La tua SSH key pair è ora pronta per l'uso. Segui i passaggi 3 e 4 per archiviare la chiave SSH pubblica per gli utenti gestiti dal servizio. Questi utenti utilizzano le chiavi quando trasferiscono file sugli endpoint del server Transfer Family.

  3. Accedere al key_name.pub file e aprirlo.

  4. Copia il testo e incollalo nella chiave SSH pubblica per l'utente gestito dal servizio.

    1. Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/, quindi seleziona Server dal pannello di navigazione.

    2. Nella pagina Server, seleziona l'ID server per il server che contiene l'utente che desideri aggiornare.

    3. Seleziona l'utente per il quale stai aggiungendo una chiave pubblica.

    4. Nel riquadro delle chiavi SSH pubbliche, scegli Aggiungi chiave SSH pubblica.

      La AWS Transfer Family console, che mostra i dettagli dell'utente per un utente selezionato.
    5. Incolla il testo della chiave pubblica che hai generato nella casella di testo della chiave SSH pubblica, quindi scegli Aggiungi chiave.

      La AWS Transfer Family console, che mostra la pagina Aggiungi chiave per aggiungere una chiave pubblica.

      La nuova chiave è elencata nel riquadro della chiave SSH pubblica.

      La AWS Transfer Family console, che mostra la chiave pubblica appena aggiunta nella sezione delle chiavi SSH pubbliche.

Creazione di SSH chiavi su Microsoft Windows

Windows utilizza un formato di SSH key pair leggermente diverso. La chiave pubblica deve essere nel formato PUB e la chiave privata deve essere nel formato PPK. In Windows, è possibile utilizzare P uTTYgen per creare una SSH key pair nei formati appropriati. È inoltre possibile utilizzare P uTTYgen per convertire una chiave privata generata utilizzando ssh-keygen in un .ppk file.

Nota

Se presenti a Win un file SCP con chiave privata non in .ppk formato, quel client ti offre la possibilità di convertire la chiave in un .ppk formato automatico.

Per un tutorial sulla creazione di SSH chiavi utilizzando P uTTYgen in Windows, consulta il sito Web SSH .com.

Convertire una chiave SSH2 pubblica in PEM formato

AWS Transfer Family accetta solo chiavi pubbliche PEM formattate. Se hai una chiave SSH2 pubblica, devi convertirla. Una chiave SSH2 pubblica ha il seguente formato:

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

Una chiave PEM pubblica ha il seguente formato:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...

Eseguite il comando seguente per convertire una chiave pubblica SSH2 formattata in una chiave pubblica PEM formattata. Replace (Sostituisci) ssh2-key con il nome della tua chiave e SSH2 PEM-key con il nome della tua PEM chiave.

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

Ruota i tasti SSH

Per motivi di sicurezza, consigliamo la migliore pratica di ruotare i tasti. SSH Di solito, questa rotazione viene specificata come parte di una politica di sicurezza e viene implementata in modo automatizzato. A seconda del livello di sicurezza, per una comunicazione altamente sensibile, una SSH key pair potrebbe essere utilizzata una sola volta. In tal modo si elimina qualsiasi rischio causato da chiavi archiviate. Tuttavia, è molto più comune archiviare SSH le credenziali per un periodo di tempo e impostare un intervallo che non imponga oneri eccessivi agli utenti. Un intervallo di tempo di tre mesi è la norma.

Esistono due metodi per eseguire SSH la rotazione dei tasti:

  • Sulla console, puoi caricare una nuova chiave SSH pubblica ed eliminare una chiave SSH pubblica esistente.

  • UtilizzandoAPI, è possibile aggiornare gli utenti esistenti utilizzando il DeleteSshPublicKeyAPIper eliminare la chiave pubblica Secure Shell (SSH) di un utente e il ImportSshPublicKeyAPIper aggiungere una nuova chiave pubblica Secure Shell (SSH) all'account dell'utente.

Console
Per eseguire una rotazione dei tasti nella console
  1. Aprire la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/.

  2. Vai alla pagina Server.

  3. Scegli l'identificatore nella colonna Server ID per visualizzare la pagina dei dettagli del server.

  4. In Utenti, seleziona la casella di controllo dell'utente di cui desideri ruotare la chiave SSH pubblica, quindi scegli Azioni e quindi scegli Aggiungi chiave per visualizzare la pagina Aggiungi chiave.

    oppure

    Scegli il nome utente per visualizzare la pagina dei dettagli dell'utente, quindi scegli Aggiungi chiave SSH pubblica per visualizzare la pagina Aggiungi chiave.

  5. Inserisci la nuova chiave SSH pubblica e scegli Aggiungi chiave.

    Importante

    Il formato della chiave SSH pubblica dipende dal tipo di chiave generata.

    • Per RSA le chiavi, il formato èssh-rsa string.

    • Per ED25519 le chiavi, il formato èssh-ed25519 string.

    • Per ECDSA le chiavi, la chiave inizia con ecdsa-sha2-nistp256ecdsa-sha2-nistp384, oecdsa-sha2-nistp521, a seconda della dimensione della chiave generata. La stringa iniziale viene quindi seguita dastring, in modo simile agli altri tipi di chiave.

    Si torna alla pagina dei dettagli dell'utente e la nuova chiave SSH pubblica appena inserita viene visualizzata nella sezione delle chiavi SSH pubbliche.

  6. Seleziona la casella di controllo della vecchia chiave you che desideri eliminare, quindi scegli Elimina.

  7. Conferma l'operazione di eliminazione inserendo la paroladelete, quindi scegli Elimina.

API
Per eseguire una rotazione dei tasti utilizzando il API
  1. Sui sistemi operativi macOS, Linux o Unix, apri un terminale di comando.

  2. Recupera la SSH chiave che desideri eliminare inserendo il seguente comando. Per utilizzare questo comando, serverID sostituiscilo con l'ID del server Transfer Family e sostituiscilo username con il tuo nome utente.

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

    Il comando restituisce dettagli sull'utente. Copia il contenuto del "SshPublicKeyId": campo. Sarà necessario immettere questo valore più avanti in questa procedura.

    "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID", "DateImported": 1621969331.072 } ],
  3. Quindi, importa una nuova SSH chiave per il tuo utente. Al prompt , immettere il comando di seguito. Per utilizzare questo comando, sostituiscilo serverID con l'ID del server Transfer Family, sostituiscilo username con il tuo nome utente e sostituiscilo public-key con l'impronta digitale della tua nuova chiave pubblica.

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

    Se il comando ha esito positivo, non viene restituito alcun output.

  4. Infine, elimina la vecchia chiave eseguendo il comando seguente. Per utilizzare questo comando, sostituiscilo serverID con l'ID del server Transfer Family, sostituiscilo username con il tuo nome utente e keyID-from-step-2 sostituiscilo con il valore dell'ID chiave che hai copiato nel passaggio 2 di questa procedura

    aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-id='keyID-from-step-2'
  5. (Facoltativo) Per confermare che la vecchia chiave non esiste più, ripetete il passaggio 2.

Genera e gestisci PGP le chiavi

Puoi utilizzare la decrittografia Pretty Good Privacy (PGP) con i file che Transfer Family elabora con i flussi di lavoro. Per utilizzare la decrittografia in una fase del flusso di lavoro, è necessario fornire una chiave. PGP

Il blog AWS sullo storage contiene un post che descrive come crittografare e decrittografare i file, crittografare e decrittografare i file con e. PGP AWS Transfer Family

Genera chiavi PGP

Il metodo utilizzato per generare le PGP chiavi dipende dal sistema operativo e dalla versione del software di generazione delle chiavi in uso.

Se usi Linux o Unix, usa il programma di installazione del pacchetto per l'installazione. gpg A seconda della distribuzione Linux in uso, uno dei seguenti comandi dovrebbe funzionare correttamente.

sudo yum install gnupg
sudo apt-get install gnupg

Per Windows o macOS, puoi scaricare ciò che ti serve da https://gnupg.org/download/.

Dopo aver installato il software del generatore di PGP chiavi, esegui il gpg --gen-key comando gpg --full-gen-key o per generare una coppia di chiavi.

Nota

Se utilizzi la GnuPG versione 2.3.0 o successiva, devi eseguire. gpg --full-gen-key Quando viene richiesto il tipo di chiave da creare, scegliete o. RSA ECC Tuttavia, se lo desideriECC, assicurati di scegliere uno dei due NIST oppure BrainPool per la curva ellittica. Non scegliere Curve 25519.

Algoritmi supportati per coppie di chiavi PGP

I seguenti algoritmi sono supportati per le coppie di chiavi: PGP

  • RSA

  • Elgamal

  • ECC:

    • NIST

    • BrainPool

Nota

I tasti Curve25519 non sono supportati.

gpgSottocomandi utili

Di seguito sono riportati alcuni sottocomandi utili per: gpg

  • gpg --help— Questo comando elenca le opzioni disponibili e potrebbe includere alcuni esempi.

  • gpg --list-keys— Questo comando elenca i dettagli di tutte le coppie di chiavi create.

  • gpg --fingerprint— Questo comando elenca i dettagli di tutte le coppie di chiavi, inclusa l'impronta digitale di ogni chiave.

  • gpg --export -a user-name— Questo comando esporta la parte della chiave pubblica relativa alla user-name chiave utilizzata al momento della generazione della chiave.

Gestire le chiavi PGP

Per gestire le PGP chiavi, è necessario utilizzare AWS Secrets Manager.

Nota

Il tuo nome segreto include l'ID del server Transfer Family. Ciò significa che dovresti aver già identificato o creato un server prima di poter archiviare le tue informazioni PGP chiave AWS Secrets Manager.

Se desideri utilizzare una chiave e una passphrase per tutti i tuoi utenti, puoi memorizzare le informazioni sul blocco PGP chiave sotto il nome segretoaws/transfer/server-id/@pgp-default, dove si server-id trova l'ID del tuo server Transfer Family. Questa chiave predefinita viene utilizzata se non esiste una chiave che user-name corrisponda all'utente che sta eseguendo il flusso di lavoro.

In alternativa, è possibile creare una chiave per un utente specifico. In questo caso, il formato per il nome segreto èaws/transfer/server-id/user-name, dove user-name corrisponde all'utente che esegue il flusso di lavoro per un server Transfer Family.

Nota

È possibile memorizzare un massimo di 3 chiavi PGP private, per server Transfer Family, per utente.

Per configurare PGP le chiavi da utilizzare con la decrittografia
  1. A seconda della GPG versione in uso, esegui uno dei seguenti comandi per generare una coppia di PGP key pair che non utilizzi un algoritmo di crittografia Curve 25519.

    • Se utilizzi la GnuPG versione 2.3.0 o successiva, esegui il seguente comando:

      gpg --full-gen-key

      Puoi scegliere oRSA, se lo desideri, puoi scegliere ECC uno dei due NIST o BrainPool per la curva ellittica. Se gpg --gen-key invece esegui, crei una coppia di chiavi che utilizza l'algoritmo di crittografia ECC Curve 25519, che attualmente non supportiamo per PGP le chiavi.

    • Per le versioni GnuPG precedenti alla 2.3.0, puoi utilizzare il seguente comando, poiché RSA è il tipo di crittografia predefinito.

      gpg --gen-key
    Importante

    Durante il processo di generazione delle chiavi, è necessario fornire una passphrase e un indirizzo e-mail. Assicuratevi di prendere nota di questi valori. È necessario fornire la passphrase quando si inseriscono i dettagli della chiave in una fase AWS Secrets Manager successiva di questa procedura. Inoltre, è necessario fornire lo stesso indirizzo e-mail per esportare la chiave privata nel passaggio successivo.

  2. Esegui il comando seguente per esportare la chiave privata. Per utilizzare questo comando, sostituiscilo private.pgp con il nome del file in cui salvare il blocco di chiave privata e marymajor@example.com con l'indirizzo email che hai usato quando hai generato la coppia di chiavi.

    gpg --output private.pgp --armor --export-secret-key marymajor@example.com
  3. AWS Secrets Manager Utilizzatelo per memorizzare la PGP chiave.

    1. Accedi a AWS Management Console e apri la AWS Secrets Manager console all'indirizzo https://console.aws.amazon.com/secretsmanager/.

    2. Nel pannello di navigazione a sinistra, seleziona Segreti.

    3. Nella pagina Segreti, scegli Memorizza un nuovo segreto.

    4. Nella pagina Scegli il tipo di segreto, per Tipo segreto, seleziona Altro tipo di segreto.

    5. Nella sezione Coppie chiave/valore, scegli la scheda Chiave/valore.

      • Chiave: Invio. PGPPrivateKey

        Nota

        È necessario immettere la PGPPrivateKey stringa esattamente: non aggiungere spazi prima o tra i caratteri.

      • value — Incolla il testo della tua chiave privata nel campo del valore. È possibile trovare il testo della chiave privata nel file (ad esempio,private.pgp) specificato al momento dell'esportazione della chiave in precedenza in questa procedura. La chiave inizia con -----BEGIN PGP PRIVATE KEY BLOCK----- e finisce con-----END PGP PRIVATE KEY BLOCK-----.

        Nota

        Assicurati che il blocco di testo contenga solo la chiave privata e non contenga anche la chiave pubblica.

    6. Seleziona Aggiungi riga e nella sezione Coppie chiave/valore, scegli la scheda Chiave/valore.

      • Chiave: Invio. PGPPassphrase

        Nota

        È necessario immettere la PGPPassphrase stringa esattamente: non aggiungere spazi prima o tra i caratteri.

      • value — Inserisci la passphrase che hai usato per generare la tua key pairPGP.

      La AWS Secrets Manager console, che mostra le chiavi e i valori che inserisci per gestire le tue chiavi. PGP
      Nota

      Puoi aggiungere fino a 3 set di chiavi e passphrase. Per aggiungere un secondo set, aggiungi due nuove righe e inserisci e PGPPassphrase2 per le chiavi PGPPrivateKey2 e incolla un'altra chiave privata e passphrase. Per aggiungere un terzo set, i valori chiave devono essere e. PGPPrivateKey3 PGPPassphrase3

    7. Scegli Next (Successivo).

    8. Nella pagina Configura segreto, inserisci un nome e una descrizione per il tuo segreto.

      • Se stai creando una chiave predefinita, ovvero una chiave che può essere utilizzata da qualsiasi utente di Transfer Family, inserisciaws/transfer/server-id/@pgp-default. Sostituiscila server-id con l'ID del server che contiene il flusso di lavoro che prevede una fase di decrittografia.

      • Se stai creando una chiave che deve essere utilizzata da un utente Transfer Family specifico, inserisciaws/transfer/server-id/user-name. Sostituiscilo server-id con l'ID del server che contiene il flusso di lavoro con una fase di decrittografia e sostituiscilo user-name con il nome dell'utente che esegue il flusso di lavoro. user-nameViene memorizzato nel provider di identità utilizzato dal server Transfer Family.

    9. Scegli Avanti e accetta le impostazioni predefinite nella pagina Configura rotazione. Quindi scegli Successivo.

    10. Nella pagina Revisione, scegli Store per creare e archiviare il segreto.

La schermata seguente mostra i dettagli dell'utente marymajor per uno specifico server Transfer Family. Questo esempio mostra tre tasti e le relative passphrase corrispondenti.

La AWS Secrets Manager console, che mostra la pagina dei dettagli segreta con tre chiavi e passphrase per un server e un utente Transfer Family.

Client supportati PGP

I seguenti client sono stati testati con Transfer Family e possono essere utilizzati per generare PGP chiavi e crittografare file che si intende decrittografare con un flusso di lavoro.

  • Gpg4win+ Kleopatra.

    Nota

    Quando selezioni Firma/Crittografa i file, assicurati di deselezionare l'opzione Sign as: attualmente non supportiamo la firma per i file criptati.

    Le opzioni di Kleopatra per firmare e crittografare i file. L'opzione Sign as è deselezionata e l'opzione Encrypt for me è selezionata.
  • Principali versioni di GnuPG: 2.4, 2.3, 2.2, 2.0 e 1.4.

Tieni presente che potrebbero funzionare anche altri PGP clienti, ma solo i clienti qui menzionati sono stati testati con Transfer Family.