Tutorial: configurazione dell'accesso alla rete privata utilizzando un host Linux Bastion - Amazon Managed Workflows for Apache Airflow

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

Tutorial: configurazione dell'accesso alla rete privata utilizzando un host Linux Bastion

Questo tutorial illustra i passaggi per creare un tunnel SSH dal computer al server Web Apache Airflow per l'ambiente Amazon Managed Workflows for Apache Airflow. Si presuppone che tu abbia già creato un ambiente Amazon MWAA. Una volta configurato, un Linux Bastion Host funge da jump server che consente una connessione sicura dal computer alle risorse del VPC. Utilizzerai quindi un componente aggiuntivo di gestione proxy SOCKS per controllare le impostazioni del proxy nel browser per accedere all'interfaccia utente di Apache Airflow.

Rete privata

Questo tutorial presuppone che tu abbia scelto la modalità di accesso alla rete privata per il tuo server Web Apache Airflow.

Questa immagine mostra l'architettura di un ambiente Amazon MWAA con un server Web privato.

La modalità di accesso alla rete privata limita l'accesso all'interfaccia utente di Apache Airflow agli utenti del tuo Amazon VPC a cui è stato concesso l'accesso alla policy IAM per il tuo ambiente.

Quando crei un ambiente con accesso privato al server web, devi impacchettare tutte le tue dipendenze in un archivio Python wheel .whl (), quindi fare riferimento a .whl nel tuo. requirements.txt Per istruzioni su come impacchettare e installare le dipendenze usando wheel, vedi Gestire le dipendenze usando Python wheel.

L'immagine seguente mostra dove trovare l'opzione Rete privata sulla console Amazon MWAA.

Questa immagine mostra dove trovare l'opzione Rete privata sulla console Amazon MWAA.

Casi d'uso

Puoi utilizzare questo tutorial dopo aver creato un ambiente Amazon MWAA. È necessario utilizzare lo stesso Amazon VPC, gli stessi gruppi di sicurezza VPC e le stesse sottoreti pubbliche del tuo ambiente.

Prima di iniziare

  1. Verifica le autorizzazioni degli utenti. Assicurati che il tuo account in AWS Identity and Access Management (IAM) disponga di autorizzazioni sufficienti per creare e gestire risorse VPC.

  2. Usa il tuo Amazon MWAA VPC. Questo tutorial presuppone che tu stia associando l'host bastion a un VPC esistente. Amazon VPC deve trovarsi nella stessa regione dell'ambiente Amazon MWAA e disporre di due sottoreti private, come definito in. Crea la VPC rete

  3. Crea una chiave SSH. È necessario creare una chiave SSH Amazon EC2 (.pem) nella stessa regione dell'ambiente Amazon MWAA per connettersi ai server virtuali. Se non disponi di una chiave SSH, consulta Creare o importare una coppia di chiavi nella Guida per l'utente di Amazon EC2.

Obiettivi

In questo tutorial, verranno eseguite le operazioni seguenti:

  1. Crea un'istanza Linux Bastion Host utilizzando un AWS CloudFormation modello per un VPC esistente.

  2. Autorizza il traffico in entrata verso il gruppo di sicurezza dell'istanza bastion utilizzando una regola di ingresso sulla porta. 22

  3. Autorizza il traffico in entrata dal gruppo di sicurezza di un ambiente Amazon MWAA al gruppo di sicurezza dell'istanza bastion.

  4. Crea un tunnel SSH verso l'istanza bastion.

  5. Installa e configura il FoxyProxy componente aggiuntivo per il browser Firefox per visualizzare l'interfaccia utente di Apache Airflow.

Fase uno: creare l'istanza bastion

La sezione seguente descrive i passaggi per creare l'istanza linux bastion utilizzando un AWS CloudFormation modello per un VPC esistente sulla AWS CloudFormation console.

Per creare Linux Bastion Host
  1. Apri la pagina Deploy Quick Start sulla AWS CloudFormation console.

  2. Usa il selettore di regione nella barra di navigazione per scegliere la stessa AWS regione del tuo ambiente Amazon MWAA.

  3. Seleziona Successivo.

  4. Digita un nome nel campo di testo del nome dello stack, ad esempio. mwaa-linux-bastion

  5. Nel riquadro Parametri, Configurazione di rete, scegli le seguenti opzioni:

    1. Scegli l'ID VPC del tuo ambiente Amazon MWAA.

    2. Scegli l'ID Public Subnet 1 del tuo ambiente Amazon MWAA.

    3. Scegli l'ID Public Subnet 2 del tuo ambiente Amazon MWAA.

    4. Inserisci l'intervallo di indirizzi più ristretto possibile (ad esempio, un intervallo CIDR interno) in Allowed bastion external access CIDR.

      Nota

      Il modo più semplice per identificare un intervallo consiste nell'utilizzare lo stesso intervallo CIDR delle sottoreti pubbliche. Ad esempio, le sottoreti pubbliche nel AWS CloudFormation modello sulla pagina sono e. Crea la VPC rete 10.192.10.0/24 10.192.11.0/24

  6. Nel riquadro di configurazione di Amazon EC2, scegli quanto segue:

    1. Scegli la tua chiave SSH nell'elenco a discesa in Nome della coppia di chiavi.

    2. Inserisci un nome in Bastion Host Name.

    3. Scegli true per l'inoltro TCP.

      avvertimento

      L'inoltro TCP deve essere impostato su true in questo passaggio. Altrimenti, non sarai in grado di creare un tunnel SSH nel passaggio successivo.

  7. Scegli Avanti, Avanti.

  8. Seleziona la conferma, quindi scegli Crea pila.

Per saperne di più sull'architettura del tuo Linux Bastion Host, consulta Linux Bastion Hosts on the Cloud: Architecture. AWS

Fase due: creare il tunnel ssh

I passaggi seguenti descrivono come creare il tunnel ssh per il tuo bastione Linux. Un tunnel SSH riceve la richiesta dal tuo indirizzo IP locale al bastione linux, motivo per cui l'inoltro TCP per il bastione Linux era impostato come nei passaggi precedenti. true

macOS/Linux
Per creare un tunnel tramite riga di comando
  1. Apri la pagina Istanze sulla console Amazon EC2.

  2. Scegli un'istanza.

  3. Copia l'indirizzo nel DNS IPv4 pubblico. Ad esempio, ec2-4-82-142-1.compute-1.amazonaws.com.

  4. Nel prompt dei comandi, accedi alla directory in cui è archiviata la tua chiave SSH.

  5. Esegui il comando seguente per connetterti all'istanza bastion usando ssh. Sostituisci il valore di esempio con il nome della tua chiave SSH in. mykeypair.pem

    ssh -i mykeypair.pem -N -D 8157 ec2-user@YOUR_PUBLIC_IPV4_DNS
Windows (PuTTY)
Per creare un tunnel usando PuTTY
  1. Apri la pagina Istanze sulla console Amazon EC2.

  2. Scegli un'istanza.

  3. Copia l'indirizzo nel DNS IPv4 pubblico. Ad esempio, ec2-4-82-142-1.compute-1.amazonaws.com.

  4. Apri PuTTY, seleziona Sessione.

  5. Inserisci il nome host in Nome host come ec2-user@ YOUR_PUBLIC_IPV4_DNS e la porta come. 22

  6. Espandi la scheda SSH, seleziona Auth. Nel file con chiave privata per l'autenticazione, scegli il tuo file «ppk» locale.

  7. In SSH, scegli la scheda Tunnel, quindi seleziona le opzioni Dynamic e Auto.

  8. In Porta di origine, aggiungi la 8157 porta (o qualsiasi altra porta inutilizzata), quindi lascia vuota la porta di destinazione. Scegli Aggiungi.

  9. Scegli la scheda Sessione e inserisci un nome per la sessione. Ad esempio SSH Tunnel.

  10. Scegli Salva, Apri.

    Nota

    Potrebbe essere necessario inserire una passphrase per la chiave pubblica.

Nota

Se ricevi un Permission denied (publickey) errore, ti consigliamo di utilizzare lo strumento AWSSupport-TroubleshootSSH e di scegliere Esegui questa automazione (console) per risolvere i problemi di configurazione SSH.

Fase tre: configura il bastion security group come regola in entrata

L'accesso ai server e l'accesso regolare a Internet dai server sono consentiti con uno speciale gruppo di sicurezza di manutenzione collegato a tali server. I passaggi seguenti descrivono come configurare il bastion security group come fonte di traffico in entrata verso il gruppo di sicurezza VPC di un ambiente.

  1. Apri la pagina Ambienti sulla console Amazon MWAA.

  2. Scegli un ambiente.

  3. Nel riquadro Rete, scegli il gruppo di sicurezza VPC.

  4. Sceglere Edit inbound rules (Modifica regole in entrata).

  5. Scegli Aggiungi regola.

  6. Scegli l'ID del tuo gruppo di sicurezza VPC nell'elenco a discesa Source.

  7. Lascia vuote le opzioni rimanenti o imposta i valori predefiniti.

  8. Scegliere Salva regole.

Fase quattro: Copia l'URL di Apache Airflow

I passaggi seguenti descrivono come aprire la console Amazon MWAA e copiare l'URL nell'interfaccia utente di Apache Airflow.

  1. Apri la pagina Ambienti sulla console Amazon MWAA.

  2. Scegli un ambiente.

  3. Copia l'URL nell'interfaccia utente Airflow per i passaggi successivi.

Fase cinque: configurare le impostazioni del proxy

Se si utilizza un tunnel SSH con inoltro dinamico delle porte, è necessario utilizzare un add-on per la gestione dei proxy SOCKS per controllare le impostazioni proxy nel browser. Ad esempio, puoi utilizzare la --proxy-server funzionalità di Chromium per avviare una sessione del browser o utilizzare l' FoxyProxy estensione nel browser Mozilla. FireFox

Opzione uno: configura un tunnel SSH utilizzando il port forwarding locale

Se non desideri utilizzare un proxy SOCKS, puoi configurare un tunnel SSH utilizzando il port forwarding locale. Il seguente comando di esempio accede all'interfaccia Web di Amazon ResourceManagerEC2 inoltrando il traffico sulla porta locale 8157.

  1. Aprire il prompt dei comandi in una nuova finestra.

  2. Digita il comando seguente per aprire un tunnel SSH.

    ssh -i mykeypair.pem -N -L 8157:YOUR_VPC_ENDPOINT_ID-vpce.YOUR_REGION.airflow.amazonaws.com:443 ubuntu@YOUR_PUBLIC_IPV4_DNS.YOUR_REGION.compute.amazonaws.com

    -Lindica l'uso del port forwarding locale che consente di specificare una porta locale utilizzata per inoltrare i dati alla porta remota identificata sul server web locale del nodo.

  3. Digita http://localhost:8157/ nel tuo browser.

    Nota

    Potrebbe essere necessario utilizzarehttps://localhost:8157/.

Opzione due: proxy tramite riga di comando

La maggior parte dei browser Web consente di configurare i proxy tramite una riga di comando o un parametro di configurazione. Ad esempio, con Chromium puoi avviare il browser con il seguente comando:

chromium --proxy-server="socks5://localhost:8157"

Questo avvia una sessione del browser che utilizza il tunnel ssh creato nei passaggi precedenti per inoltrare le sue richieste. Puoi aprire l'URL dell'ambiente Amazon MWAA privato (con https://) nel modo seguente:

https://YOUR_VPC_ENDPOINT_ID-vpce.YOUR_REGION.airflow.amazonaws.com/home.

Opzione tre: utilizzo di proxy per Mozilla Firefox FoxyProxy

L'esempio seguente mostra una configurazione FoxyProxy Standard (versione 7.5.1) per Mozilla Firefox. FoxyProxy fornisce una serie di strumenti di gestione dei proxy. Consente di utilizzare un server proxy per gli URL che corrispondono ai modelli corrispondenti ai domini utilizzati dall'interfaccia utente di Apache Airflow.

  1. In Firefox, apri la pagina dell'estensione Standard. FoxyProxy

  2. Scegli Aggiungi a Firefox.

  3. Scegli Aggiungi.

  4. Scegli l' FoxyProxy icona nella barra degli strumenti del browser, scegli Opzioni.

  5. Copia il codice seguente e salvalo localmente con nome. mwaa-proxy.json Sostituisci il valore di esempio in YOUR_HOST_NAME con l'URL di Apache Airflow.

    { "e0b7kh1606694837384": { "type": 3, "color": "#66cc66", "title": "airflow", "active": true, "address": "localhost", "port": 8157, "proxyDNS": false, "username": "", "password": "", "whitePatterns": [ { "title": "airflow-ui", "pattern": "YOUR_HOST_NAME", "type": 1, "protocols": 1, "active": true } ], "blackPatterns": [], "pacURL": "", "index": -1 }, "k20d21508277536715": { "active": true, "title": "Default", "notes": "These are the settings that are used when no patterns match a URL.", "color": "#0055E5", "type": 5, "whitePatterns": [ { "title": "all URLs", "active": true, "pattern": "*", "type": 1, "protocols": 1 } ], "blackPatterns": [], "index": 9007199254740991 }, "logging": { "active": true, "maxSize": 500 }, "mode": "patterns", "browserVersion": "82.0.3", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard" }
  6. Nel riquadro Importa impostazioni da FoxyProxy 6.0+, scegli Importa impostazioni e seleziona il file. mwaa-proxy.json

  7. Scegli OK.

Fase sei: apri l'interfaccia utente di Apache Airflow

I passaggi seguenti descrivono come aprire l'interfaccia utente di Apache Airflow.

  1. Apri la pagina Ambienti sulla console Amazon MWAA.

  2. Scegli Open Airflow UI.

Fasi successive