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 AWS Secrets Manager Secret
AWS Secrets Manager è un backend Apache Airflow alternativo supportato in un ambiente Amazon Managed Workflows for Apache Airflow. Questo argomento spiega come archiviare in modo sicuro i segreti per le variabili Apache Airflow e una connessione Apache Airflow su Amazon Managed Workflows for Apache Airflow. AWS Secrets Manager
Nota
-
Ti vengono addebitati i segreti che crei. Per ulteriori informazioni sui prezzi di Secrets Manager, consulta la sezione AWS Prezzi
. -
AWS Systems Manager Parameter Store è supportato anche come backend segreto in Amazon MWAA. Per ulteriori informazioni, consulta la documentazione di Amazon Provider Package
.
Indice
Fase uno: fornire ad Amazon MWAA l'autorizzazione ad accedere alle chiavi segrete di Secrets Manager
Il ruolo di esecuzione per il tuo ambiente Amazon MWAA richiede l'accesso in lettura alla chiave segreta. AWS Secrets Manager La seguente policy IAM consente l'accesso in lettura/scrittura utilizzando la policy -managed. AWSSecretsManagerReadWrite
Per allegare la policy al tuo ruolo di esecuzione
-
Apri la pagina Ambienti
sulla console Amazon MWAA. -
Scegli un ambiente.
-
Scegli il tuo ruolo di esecuzione nel riquadro Autorizzazioni.
-
Scegli Collega policy.
-
Digita
SecretsManagerReadWritenel 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. La seguente policy JSON garantisce l'accesso in lettura a tutti i segreti in uno specifico. Regione AWSSostituiscilo con la tua regione e sostituiscilo us-east-1 con l'ID del tuo AWS account:111122223333
Esempio Esempio: policy IAM per l'accesso in lettura a Secrets Manager
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }
Risorsa Wildcard per ListSecrets
La politica precedente consente l'ListSecretsaccesso a tutti i segreti (). "Resource": "*" ListSecretsnon supporta le autorizzazioni a livello di risorsa, quindi è richiesta la jolly. Se utilizzi questa politica in produzione, qualsiasi responsabile che assuma questo ruolo può elencare tutti i segreti del tuo account. Limita la politica di fiducia del ruolo e le altre autorizzazioni per limitare l'ambito di accesso.
Facoltativo: autorizzazione DescribeSecret
Se la versione del provider verifica l'esistenza di dati segreti prima del recupero, aggiungi. secretsmanager:DescribeSecret Questa autorizzazione potrebbe anche ridurre ResourceNotFoundException gli errori nei log.
Fase due: creare il backend Secrets Manager come opzione di configurazione Apache Airflow
La sezione seguente descrive come creare un'opzione di configurazione Apache Airflow sulla console Amazon MWAA per il backend. AWS Secrets Manager Se utilizzi un'impostazione di configurazione con lo stesso nome inairflow.cfg, la configurazione creata nei passaggi seguenti ha la precedenza e sostituisce le impostazioni di configurazione.
-
Apri la pagina Ambienti
sulla console Amazon MWAA. -
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.backendairflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend -
:secrets.backend_kwargsQuesto configura Apache Airflow per la ricerca di stringhe e variabili di connessione in e percorsi.{"connections_prefix":"airflow/connections","variables_prefix":"airflow/variables"}airflow/connections/*airflow/variables/*Puoi utilizzare un modello di ricerca
sul sito Web di Apache Airflow per ridurre il numero di chiamate API che Amazon MWAA effettua a Secrets Manager per tuo conto. Se non si specifica 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 ricerca di Apache Airflow. Ciò consente di ridurre i costi quando si utilizza Secrets Manager con Amazon MWAA. Per specificare un modello di ricerca, specifica i parametri and.
connections_lookup_patternvariables_lookup_patternQuesti 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_patternevariables_lookup_pattern, è necessario installare laapache-airflow-providers-amazonversione 7.3.0 o successiva. Per ulteriori informazioni sull'aggiornamento dei pacchetti del provider alle versioni più recenti, fare riferimento a. File di vincoli
-
-
Scegli Save (Salva).
Fase tre: generare un Apache Airflow AWS stringa URI di connessione
Per creare una stringa di connessione, utilizzate il tasto «tab» sulla tastiera per indentare le coppie chiave-valore nell'oggetto Connection.extraoggetto nella sessione di shell. La sezione seguente illustra i passaggi per generare una stringa URI 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.
-
Nel riquadro Specificare le key/value coppie da archiviare 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:
14Ad 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_NAMEAd 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 l'URI della stringa di connessione 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 key/value coppie da archiviare in questo riquadro segreto, scegli Testo normale.
-
Aggiungi la stringa URI di connessione come testo semplice nel seguente formato.
YOUR_CONNECTION_URI_STRINGAd 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-1avvertimento
Apache Airflow analizza tutti i valori nella stringa di connessione. Non è necessario utilizzare virgolette singole o doppie, altrimenti analizza la connessione come una singola stringa.
-
Per 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_NAMEAd 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
Resources
-
Per ulteriori informazioni sulla configurazione dei segreti di Secrets Manager utilizzando la console e il AWS CLI, consulta 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