Configurazione di un flusso di lavoro gestito per la decrittografia di un file - 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à.

Configurazione di un flusso di lavoro gestito per la decrittografia di un file

Questo tutorial illustra come configurare un flusso di lavoro gestito che contenga una fase di decrittografia. Il tutorial mostra anche come caricare un file crittografato in un bucket Amazon S3 e quindi visualizzare il file decrittografato nello stesso bucket.

Nota

Il blog AWS sullo storage ha un post che descrive come decrittografare semplicemente i file senza scrivere alcun codice utilizzando i flussi di lavoro Transfer Family Managed, crittografare e decrittografare i file con PGP e. AWS Transfer Family

Fase 1: Configurare un ruolo di esecuzione

Crea un ruolo di esecuzione AWS Identity and Access Management (IAM) che Transfer Family possa utilizzare per avviare un flusso di lavoro. Il processo di creazione di un ruolo di esecuzione è descritto inPolitiche IAM per i flussi di lavoro.

Nota

Come parte della creazione di un ruolo di esecuzione, assicurati di stabilire una relazione di fiducia tra il ruolo di esecuzione e Transfer Family, come descritto inPer stabilire una relazione di trust.

La seguente politica sul ruolo di esecuzione contiene tutte le autorizzazioni necessarie per avviare il flusso di lavoro creato in questo tutorial. Per utilizzare questa policy di esempio, sostituisci user input placeholders con le tue informazioni. Sostituiscilo DOC-EXAMPLE-BUCKET con il nome del bucket Amazon S3 in cui carichi i file crittografati.

Nota

Non tutti i flussi di lavoro richiedono tutte le autorizzazioni elencate in questo esempio. Puoi limitare le autorizzazioni in base ai tipi di passaggi del tuo flusso di lavoro specifico. Le autorizzazioni necessarie per ogni tipo di passaggio predefinito sono descritte in. Utilizza passaggi predefiniti Le autorizzazioni necessarie per un passaggio personalizzato sono descritte in. Autorizzazioni IAM per un passaggio personalizzato

{ "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/*" } ] }

Fase 2: Creare un flusso di lavoro gestito

Ora devi creare un flusso di lavoro che contenga una fase di decrittografia.

Per creare un flusso di lavoro che contenga una fase di decrittografia
  1. Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/.

  2. Nel riquadro di navigazione a sinistra, scegli Flussi di lavoro, quindi scegli Crea flusso di lavoro.

  3. Inserisci i seguenti dettagli:

    • Inserisci una descrizione, ad esempioDecrypt workflow example.

    • Nella sezione Passaggi nominali, scegliete Aggiungi fase.

  4. Per Scegli il tipo di passaggio, scegli Decrittografa il file, quindi scegli Avanti.

  5. Nella finestra di dialogo Configura parametri, specificate quanto segue:

    • Immettete un nome descrittivo per la fase, decrypt-step ad esempio. Gli spazi non sono consentiti nei nomi delle fasi.

    • Per la destinazione dei file decrittografati, scegli Amazon S3.

    • Per il nome del bucket di destinazione, scegli lo stesso bucket Amazon S3 che hai specificato DOC-EXAMPLE-BUCKET nella policy IAM che hai creato nella fase 1.

    • Per il prefisso della chiave di destinazione, inserisci il nome del prefisso (cartella) in cui desideri archiviare i file decrittografati nel bucket di destinazione, ad esempio. decrypted-files/

      Nota

      Assicurati di aggiungere una barra finale () al prefisso. /

    • Per questo tutorial, lascia deselezionata l'opzione Sovrascrivi esistente. Quando questa impostazione è deselezionata, se si tenta di decrittografare un file con lo stesso nome di un file esistente, l'elaborazione del flusso di lavoro si interrompe e il nuovo file non viene elaborato.

    Scegli Avanti per passare alla schermata di revisione.

  6. Esamina i dettagli del passaggio. Se tutto è corretto, scegli Crea passaggio.

  7. Il flusso di lavoro richiede solo una singola fase di decrittografia, quindi non ci sono passaggi aggiuntivi da configurare. Scegli Crea flusso di lavoro per creare il nuovo flusso di lavoro.

Annota l'ID del flusso di lavoro per il nuovo flusso di lavoro. Questo ID ti servirà per il passaggio successivo. Questo tutorial utilizza w-1234abcd5678efghicome esempio l'ID del flusso di lavoro.

Fase 3: Aggiungere il flusso di lavoro a un server e creare un utente

Ora che hai un flusso di lavoro con una fase di decrittografia, devi associarlo a un server Transfer Family. Questo tutorial mostra come collegare il flusso di lavoro a un server Transfer Family esistente. In alternativa, puoi creare un nuovo server da utilizzare con il tuo flusso di lavoro.

Dopo aver collegato il flusso di lavoro a un server, è necessario creare un utente in grado di accedere al server tramite SFTP e attivare l'esecuzione del flusso di lavoro.

Per configurare un server Transfer Family per eseguire un flusso di lavoro
  1. Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/.

  2. Nel riquadro di navigazione a sinistra, scegli Server, quindi scegli un server dall'elenco. Assicurati che questo server supporti il protocollo SFTP.

  3. Nella pagina dei dettagli del server, scorri verso il basso fino alla sezione Dettagli aggiuntivi, quindi scegli Modifica.

  4. Nella pagina Modifica dettagli aggiuntivi, nella sezione Flussi di lavoro gestiti, scegli il tuo flusso di lavoro e scegli il ruolo di esecuzione corrispondente.

  5. Scorri fino alla fine della pagina e scegli Salva per salvare le modifiche.

Annota l'ID del server che stai utilizzando. Il nome del AWS Secrets Manager segreto utilizzato per memorizzare le chiavi PGP si basa in parte sull'ID del server.

Per aggiungere un utente in grado di attivare il flusso di lavoro
  1. Apri la AWS Transfer Family console all'indirizzo https://console.aws.amazon.com/transfer/.

  2. Nel riquadro di navigazione a sinistra, scegli Server, quindi scegli il server che stai utilizzando per il flusso di lavoro di decrittografia.

  3. Nella pagina dei dettagli del server, scorri verso il basso fino alla sezione Utenti e scegli Aggiungi utente.

  4. Per il tuo nuovo utente, inserisci i seguenti dettagli:

    • Per Username (Nome utente), inserisci decrypt-user.

    • Per Ruolo, scegli un ruolo utente che possa accedere al tuo server.

    • Per la directory Home, scegli il bucket Amazon S3 che hai usato in precedenza, ad esempio. DOC-EXAMPLE-BUCKET

    • Per le chiavi pubbliche SSH, incolla una chiave pubblica che corrisponde a una chiave privata che possiedi. Per informazioni dettagliate, vedi Genera chiavi SSH per gli utenti gestiti dal servizio.

  5. Scegli Aggiungi per salvare il tuo nuovo utente.

Annota il nome del tuo utente Transfer Family per questo server. Il segreto si basa in parte sul nome dell'utente. Per semplicità, questo tutorial utilizza un segreto predefinito che può essere utilizzato da qualsiasi utente del server.

Fase 4: Creare una coppia di key pair PGP

Usa uno dei client PGP supportati per generare una coppia di key pair PGP. Questo processo è descritto in dettaglio in. Genera chiavi PGP

Per generare una coppia di key pair PGP
  1. Per questo tutorial, puoi utilizzare il client gpg (GnuPG) versione 2.0.22 per generare una coppia di chiavi PGP che utilizza RSA come algoritmo di crittografia. Per questo client, esegui il comando seguente e fornisci un indirizzo email e una passphrase. Puoi usare qualsiasi nome o indirizzo email che preferisci. Assicurati di ricordare i valori che usi, perché dovrai inserirli più avanti nel tutorial.

    gpg --gen-key
    Nota

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

  2. Esporta la chiave privata eseguendo il comando seguente. Sostituiscila user@example.com con l'indirizzo e-mail che hai usato quando hai generato la chiave.

    gpg --output workflow-tutorial-key.pgp --armor --export-secret-key user@example.com

    Questo comando esporta la chiave privata nel workflow-tutorial-key.pgp file. Puoi assegnare al file di output il nome che preferisci. Puoi anche eliminare il file della chiave privata dopo averlo aggiunto AWS Secrets Manager.

Passaggio 5: Memorizza la chiave privata PGP in AWS Secrets Manager

È necessario archiviare la chiave privata in Secrets Manager, in un modo molto specifico, in modo che il flusso di lavoro possa trovare la chiave privata quando il flusso di lavoro esegue una fase di decrittografia su un file caricato.

Nota

Quando memorizzi segreti in Secrets Manager, ti vengono Account AWS addebitati dei costi. Per informazioni sui prezzi, consulta Prezzi di AWS Secrets Manager.

Per memorizzare una chiave privata PGP in Secrets Manager
  1. Accedi 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, scegli Altro tipo di segreto.

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

    • Chiave: Invio. PGPPrivateKey

    • valore: incolla il testo della tua chiave privata nel campo del valore.

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

  7. Seleziona Successivo.

  8. Nella pagina Configura segreto, inserisci un nome e una descrizione per il tuo segreto. Puoi creare un segreto per un utente specifico o uno che può essere utilizzato da tutti gli utenti. Se l'ID del server è s-11112222333344445, assegnate al segreto il nome seguente.

    • Per creare un segreto predefinito per tutti gli utenti, assegna un nome al segretoaws/transfer/s-11112222333344445/@pgp-default.

    • Per creare un segreto solo per l'utente che hai creato in precedenza, assegna un nome al segretoaws/transfer/s-11112222333344445/decrypt-user.

  9. Scegliete Avanti, quindi accettate le impostazioni predefinite nella pagina Configura rotazione. Quindi scegli Successivo.

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

Per ulteriori informazioni sull'aggiunta della chiave privata PGP a Secrets Manager, consulta Utilizzare AWS Secrets Manager per memorizzare la chiave PGP.

Fase 6: Crittografare un file

Usa il gpg programma per crittografare un file da utilizzare nel tuo flusso di lavoro. Eseguite il comando seguente per crittografare un file:

gpg -e -r marymajor@example.com --openpgp testfile.txt

Prima di eseguire questo comando, tenete presente quanto segue:

  • Per l'-rargomento, marymajor@example.com sostituiscilo con l'indirizzo email che hai usato quando hai creato la key pair PGP.

  • La --openpgp bandiera è facoltativa. Questo flag rende il file criptato conforme allo standard OpenPGP RFC4880.

  • Questo comando crea un file denominato nella stessa posizione di. testfile.txt.gpg testfile.txt

Passaggio 7: Eseguire il flusso di lavoro e visualizzare i risultati

Per eseguire il flusso di lavoro, ti connetti al server Transfer Family con l'utente che hai creato nel passaggio 3. Quindi puoi cercare nel bucket Amazon S3 che hai specificato nel passaggio 2.5, configurare i parametri di destinazione per vedere il file decrittografato.

Per eseguire il flusso di lavoro di decrittografia
  1. Aprire un terminale di comando.

  2. Esegui il comando seguente, sostituendolo your-endpoint con l'endpoint attuale e transfer-key con la chiave privata SSH dell'utente:

    sftp -i transfer-key decrypt-user@your-endpoint

    Ad esempio, se la chiave privata è archiviata in ~/.ssh/decrypt-user e l'endpoint lo ès-11112222333344445.server.transfer.us-east-2.amazonaws.com, il comando è il seguente:

    sftp -i ~/.ssh/decrypt-user decrypt-user@s-11112222333344445.server.transfer.us-east-2.amazonaws.com
  3. Esegui il comando pwd. In caso di successo, questo comando restituirà quanto segue:

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

    La tua directory riflette il nome del tuo bucket Amazon S3.

  4. Esegui il comando seguente per caricare il file e attivare l'esecuzione del flusso di lavoro:

    put testfile.txt.gpg
  5. Per la destinazione dei file decrittografati, hai specificato la decrypted-files/ cartella al momento della creazione del flusso di lavoro. Ora puoi accedere a quella cartella ed elencarne il contenuto.

    cd ../decrypted-files/ ls

    In caso di successo, il ls comando elenca il testfile.txt file. È possibile scaricare questo file e verificare che sia uguale al file originale crittografato in precedenza.