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 una connessione Apache Airflow utilizzando un segreto AWS Secrets Manager
AWS Secrets Manager è un backend Apache Airflow alternativo supportato in un ambiente Amazon Managed Workflows for Apache Airflow. Questa guida mostra come archiviare in modo sicuro i segreti per le variabili di Apache Airflow e una connessione Apache Airflow su Amazon Managed Workflows for Apache Airflow. AWS Secrets Manager
Nota
-
Ti verranno addebitati i costi per i segreti che crei. Per ulteriori informazioni sui prezzi di Secrets Manager, consulta AWS Prezzi
. -
AWS Systems Manager Parameter Store è supportato anche come backend segreto in AmazonMWAA. Per ulteriori informazioni, consulta la documentazione di Amazon Provider Package
.
Indice
- Fase uno: fornire ad Amazon l'autorizzazione MWAA ad accedere alle chiavi segrete di Secrets Manager
- Fase due: creare il backend Secrets Manager come opzione di configurazione di Apache Airflow
- Fase tre: generare una stringa di connessione Apache Airflow AWS URI
- Fase quattro: Aggiungere le variabili in Secrets Manager
- Fase cinque: aggiungere la connessione in Secrets Manager
- Codice di esempio
- Risorse
- Fasi successive
Fase uno: fornire ad Amazon l'autorizzazione MWAA ad accedere alle chiavi segrete di Secrets Manager
Il ruolo di esecuzione per il tuo MWAA ambiente Amazon richiede l'accesso in lettura alla chiave segreta AWS Secrets Manager. La seguente IAM policy consente l'accesso in lettura/scrittura utilizzando la policy AWS gestita SecretsManagerReadWrite
Per allegare la policy al tuo ruolo di esecuzione
-
Apri la pagina Ambienti
sulla MWAA console Amazon. -
Scegli un ambiente.
-
Scegli il tuo ruolo di esecuzione nel riquadro Autorizzazioni.
-
Scegli Collega policy.
-
Digita
SecretsManagerReadWrite
nel campo di testo delle politiche di filtro. -
Scegli Collega policy.
Se non desideri utilizzare una politica di autorizzazione AWS gestita, puoi aggiornare direttamente il ruolo di esecuzione del tuo ambiente per consentire qualsiasi livello di accesso alle risorse di Secrets Manager. Ad esempio, la seguente dichiarazione politica concede l'accesso in lettura a tutti i segreti creati in una AWS regione specifica in Secrets Manager.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-west-2:012345678910:secret:*" }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }
Fase due: creare il backend Secrets Manager come opzione di configurazione di Apache Airflow
La sezione seguente descrive come creare un'opzione di configurazione Apache Airflow sulla MWAA console Amazon per il AWS Secrets Manager backend. Se utilizzi un'impostazione di configurazione con lo stesso nome inairflow.cfg
, la configurazione creata nei passaggi seguenti avrà la precedenza e sostituirà le impostazioni di configurazione.
-
Apri la pagina Ambienti
sulla MWAA console Amazon. -
Scegli un ambiente.
-
Scegli Modifica.
-
Scegli Next (Successivo).
-
Scegli Aggiungi configurazione personalizzata nel riquadro delle opzioni di configurazione Airflow. Aggiungi le seguenti coppie chiave-valore:
-
:secrets.backend
airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
-
:secrets.backend_kwargs
Questo configura Apache Airflow per cercare stringhe e variabili di connessione in e percorsi.{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}
airflow/connections/*
airflow/variables/*
Puoi utilizzare uno schema di ricerca per
ridurre il numero di API chiamate che Amazon MWAA effettua a Secrets Manager per tuo conto. Se non specifichi un modello di ricerca, Apache Airflow cerca tutte le connessioni e le variabili nel backend configurato. Specificando uno schema, si restringono i possibili percorsi di visualizzazione di Apache Airflow. Ciò riduce i costi quando utilizzi Secrets Manager con AmazonMWAA. Per specificare un modello di ricerca, specifica i parametri
connections_lookup_pattern
andvariables_lookup_pattern
. Questi parametri accettano una RegEx stringa come input. Ad esempio, per cercare segreti che iniziano contest
, inserisci quanto segue persecrets.backend_kwargs
:{ "connections_prefix": "airflow/connections", "connections_lookup_pattern": "^test", "variables_prefix" : "airflow/variables", "variables_lookup_pattern": "^test" }
Nota
Per utilizzare
connections_lookup_pattern
evariables_lookup_pattern
, è necessario installare laapache-airflow-providers-amazon
versione 7.3.0 o successiva. Per ulteriori informazioni sull'aggiornamento dei pacchetti del provider alle versioni più recenti, vedere. Specificare pacchetti di provider più recenti
-
-
Seleziona Salva.
Fase tre: generare una stringa di connessione Apache Airflow AWS URI
Per creare una stringa di connessione, utilizzate il tasto «tab» sulla tastiera per indentare le coppie chiave-valore nell'oggetto Connection.extra
oggetto nella sessione di shell. La sezione seguente illustra i passaggi per generare una URI stringa di connessione Apache Airflow per un
Fase quattro: Aggiungere le variabili in Secrets Manager
La sezione seguente descrive come creare il segreto per una variabile in Secrets Manager.
Per creare il segreto
-
Apri la AWS Secrets Manager console
. -
Scegli Archivia un nuovo segreto.
-
Scegli Altro tipo di segreto.
-
In Specificare le coppie chiave/valore da memorizzare in questo riquadro segreto, scegli Testo normale.
-
Aggiungi il valore della variabile come testo semplice nel seguente formato.
"
YOUR_VARIABLE_VALUE
"Ad esempio, per specificare un numero intero:
14
Ad esempio, per specificare una stringa:
"mystring"
-
Per la chiave di crittografia, scegli un'opzione AWS KMS chiave dall'elenco a discesa.
-
Inserisci un nome nel campo di testo per Nome segreto nel seguente formato.
airflow/variables/
YOUR_VARIABLE_NAME
Per esempio:
airflow/variables/test-variable
-
Scegli Next (Successivo).
-
Nella pagina Configura segreto, nel riquadro Nome e descrizione segreti, procedi come segue.
-
Per Nome segreto, fornisci un nome per il tuo segreto.
-
(Facoltativo) Per Descrizione, fornisci una descrizione del tuo segreto.
Scegli Next (Successivo).
-
-
In Configura rotazione (facoltativo), lascia le opzioni predefinite e scegli Avanti.
-
Ripeti questi passaggi in Secrets Manager per tutte le variabili aggiuntive che desideri aggiungere.
-
Nella pagina di revisione, controlla il tuo segreto, quindi scegli Store.
Fase cinque: aggiungere la connessione in Secrets Manager
La sezione seguente descrive come creare il segreto per la stringa di connessione URI in Secrets Manager.
Per creare il segreto
-
Apri la AWS Secrets Manager console
. -
Scegli Archivia un nuovo segreto.
-
Scegli Altro tipo di segreto.
-
Nel riquadro Specificare le coppie chiave/valore da memorizzare in questo riquadro segreto, scegli Testo normale.
-
Aggiungi la URI stringa di connessione come testo semplice nel seguente formato.
YOUR_CONNECTION_URI_STRING
Per esempio:
mysql://288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com%2Fhome?role_arn=arn%3Aaws%3Aiam%3A%3A001122332255%3Arole%2Fservice-role%2FAmazonMWAA-MyAirflowEnvironment-iAaaaA®ion_name=us-east-1
avvertimento
Apache Airflow analizza ciascuno dei valori nella stringa di connessione. Non è necessario utilizzare virgolette singole o doppie, altrimenti analizzerà la connessione come una singola stringa.
-
Per la chiave di crittografia, scegli un'opzione AWS KMS chiave dall'elenco a discesa.
-
Inserisci un nome nel campo di testo per Nome segreto nel seguente formato.
airflow/connections/
YOUR_CONNECTION_NAME
Per esempio:
airflow/connections/myconn
-
Scegli Next (Successivo).
-
Nella pagina Configura segreto, nel riquadro Nome e descrizione segreti, procedi come segue.
-
Per Nome segreto, fornisci un nome per il tuo segreto.
-
(Facoltativo) Per Descrizione, fornisci una descrizione del tuo segreto.
Scegli Next (Successivo).
-
-
In Configura rotazione (facoltativo), lascia le opzioni predefinite e scegli Avanti.
-
Ripeti questi passaggi in Secrets Manager per tutte le variabili aggiuntive che desideri aggiungere.
-
Nella pagina di revisione, controlla il tuo segreto, quindi scegli Store.
Codice di esempio
-
Scopri come utilizzare la chiave segreta per la connessione Apache Airflow (
myconn
) in questa pagina utilizzando il codice di esempio all'indirizzo. Utilizzo di una chiave segreta AWS Secrets Manager per una connessione Apache Airflow -
Scopri come usare la chiave segreta per la variabile Apache Airflow (
test-variable
) in questa pagina utilizzando il codice di esempio all'indirizzo. Utilizzo di una chiave segreta AWS Secrets Manager per una variabile Apache Airflow
Risorse
-
Per ulteriori informazioni sulla configurazione dei segreti di Secrets Manager utilizzando la console e il AWS CLI, vedere Create a secret nella Guida per l'AWS Secrets Manager utente.
-
Usa uno script Python per migrare un grande volume di variabili e connessioni Apache Airflow a Secrets Manager in Move your Apache
Airflow connections and variable to. AWS Secrets Manager
Fasi successive
-
Scopri come generare un token per accedere all'interfaccia utente di Apache Airflow. Accesso ad Apache Airflow