Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Configurazione di una connessione Apache Airflow utilizzando un segreto AWS Secrets Manager

Modalità Focus
Configurazione di una connessione Apache Airflow utilizzando un segreto AWS Secrets Manager - 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à.

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

AWS Secrets Manager è un backend Apache Airflow alternativo supportato in un ambiente Amazon Managed Workflows for Apache Airflow. Questo argomento 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

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 gestita. AWS SecretsManagerReadWrite

Per allegare la policy al tuo ruolo di esecuzione
  1. Apri la pagina Ambienti sulla console Amazon MWAA.

  2. Scegli un ambiente.

  3. Scegli il tuo ruolo di esecuzione nel riquadro Autorizzazioni.

  4. Scegli Collega policy.

  5. Digita SecretsManagerReadWrite nel campo di testo delle politiche di filtro.

  6. 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 tue risorse 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 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 avrà la precedenza e sostituirà le impostazioni di configurazione.

  1. Apri la pagina Ambienti sulla console Amazon MWAA.

  2. Scegli un ambiente.

  3. Scegli Modifica.

  4. Scegli Next (Successivo).

  5. Scegli Aggiungi configurazione personalizzata nel riquadro delle opzioni di configurazione Airflow. Aggiungi le seguenti coppie chiave-valore:

    1. secrets.backend: airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend

    2. secrets.backend_kwargs: {"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"} Questo configura Apache Airflow per cercare stringhe e variabili di connessione in e percorsi. airflow/connections/* airflow/variables/*

      Puoi utilizzare un modello di ricerca per ridurre il numero di chiamate API 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ò 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_pattern variables_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 la apache-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

  6. Seleziona Salva.

Fase tre: generare una stringa URI di connessione Apache Airflow AWS

Per creare una stringa di connessione, utilizzate il tasto «tab» sulla tastiera per indentare le coppie chiave-valore nell'oggetto Connection. Consigliamo inoltre di creare una variabile per l'extraoggetto nella sessione di shell. La sezione seguente illustra i passaggi per generare una stringa URI di connessione Apache Airflow per un ambiente Amazon MWAA utilizzando Apache Airflow o uno script Python.

Apache Airflow CLI

La seguente sessione di shell utilizza la CLI Airflow locale per generare una stringa di connessione. Se non hai installato la CLI, ti consigliamo di usare lo script Python.

  1. Apri una sessione di shell Python:

    python3
  2. Immetti il comando seguente:

    >>> import json
  3. Immetti il comando seguente:

    >>> from airflow.models.connection import Connection
  4. Crea una variabile nella sessione di shell per l'extraoggetto. Sostituisci i valori del campione YOUR_EXECUTION_ROLE_ARN con il ruolo di esecuzione ARN e la regione YOUR_REGION in (ad esempious-east-1).

    >>> extra=json.dumps({'role_arn': 'YOUR_EXECUTION_ROLE_ARN', 'region_name': 'YOUR_REGION'})
  5. Create l'oggetto di connessione. Sostituisci il valore di esempio myconn con il nome della connessione Apache Airflow.

    >>> myconn = Connection(
  6. Usa il tasto «tab» sulla tastiera per indentare ciascuna delle seguenti coppie chiave-valore nell'oggetto di connessione. Sostituisci i valori di esempio in. red

    1. Specificate il tipo di AWS connessione:

      ... conn_id='aws',
    2. Specificate l'opzione del database Apache Airflow:

      ... conn_type='mysql',
    3. Specificare l'URL dell'interfaccia utente di Apache Airflow su Amazon MWAA:

      ... host='288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com/home',
    4. Specificare l'ID della chiave di AWS accesso (nome utente) per accedere ad Amazon MWAA:

      ... login='YOUR_AWS_ACCESS_KEY_ID',
    5. Specificare la chiave di accesso AWS segreta (password) per accedere ad Amazon MWAA:

      ... password='YOUR_AWS_SECRET_ACCESS_KEY',
    6. Specificare la variabile di sessione della extra shell:

      ... extra=extra
    7. Chiudi l'oggetto di connessione.

      ... )
  7. Stampa la stringa URI di connessione:

    >>> myconn.get_uri()

    Dovresti vedere la stringa URI di connessione nella risposta:

    '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&region_name=us-east-1'
Python script

Il seguente script Python non richiede la CLI Apache Airflow.

  1. Copia il contenuto del seguente esempio di codice e salvalo localmente come. mwaa_connection.py

    import urllib.parse conn_type = 'YOUR_DB_OPTION' host = 'YOUR_MWAA_AIRFLOW_UI_URL' port = 'YOUR_PORT' login = 'YOUR_AWS_ACCESS_KEY_ID' password = 'YOUR_AWS_SECRET_ACCESS_KEY' role_arn = urllib.parse.quote_plus('YOUR_EXECUTION_ROLE_ARN') region_name = 'YOUR_REGION' conn_string = '{0}://{1}:{2}@{3}:{4}?role_arn={5}&region_name={6}'.format(conn_type, login, password, host, port, role_arn, region_name) print(conn_string)
  2. Sostituisci i segnaposto in. red

  3. Eseguite lo script seguente per generare una stringa di connessione.

    python3 mwaa_connection.py

La seguente sessione di shell utilizza la CLI Airflow locale per generare una stringa di connessione. Se non hai installato la CLI, ti consigliamo di usare lo script Python.

  1. Apri una sessione di shell Python:

    python3
  2. Immetti il comando seguente:

    >>> import json
  3. Immetti il comando seguente:

    >>> from airflow.models.connection import Connection
  4. Crea una variabile nella sessione di shell per l'extraoggetto. Sostituisci i valori del campione YOUR_EXECUTION_ROLE_ARN con il ruolo di esecuzione ARN e la regione YOUR_REGION in (ad esempious-east-1).

    >>> extra=json.dumps({'role_arn': 'YOUR_EXECUTION_ROLE_ARN', 'region_name': 'YOUR_REGION'})
  5. Create l'oggetto di connessione. Sostituisci il valore di esempio myconn con il nome della connessione Apache Airflow.

    >>> myconn = Connection(
  6. Usa il tasto «tab» sulla tastiera per indentare ciascuna delle seguenti coppie chiave-valore nell'oggetto di connessione. Sostituisci i valori di esempio in. red

    1. Specificate il tipo di AWS connessione:

      ... conn_id='aws',
    2. Specificate l'opzione del database Apache Airflow:

      ... conn_type='mysql',
    3. Specificare l'URL dell'interfaccia utente di Apache Airflow su Amazon MWAA:

      ... host='288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com/home',
    4. Specificare l'ID della chiave di AWS accesso (nome utente) per accedere ad Amazon MWAA:

      ... login='YOUR_AWS_ACCESS_KEY_ID',
    5. Specificare la chiave di accesso AWS segreta (password) per accedere ad Amazon MWAA:

      ... password='YOUR_AWS_SECRET_ACCESS_KEY',
    6. Specificare la variabile di sessione della extra shell:

      ... extra=extra
    7. Chiudi l'oggetto di connessione.

      ... )
  7. Stampa la stringa URI di connessione:

    >>> myconn.get_uri()

    Dovresti vedere la stringa URI di connessione nella risposta:

    '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&region_name=us-east-1'

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
  1. Apri la AWS Secrets Manager console.

  2. Scegli Archivia un nuovo segreto.

  3. Scegli Altro tipo di segreto.

  4. In Specificare le coppie chiave/valore da memorizzare in questo riquadro segreto, scegli Testo normale.

  5. 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"
  6. Per la chiave di crittografia, scegli un'opzione AWS KMS chiave dall'elenco a discesa.

  7. Inserisci un nome nel campo di testo per Nome segreto nel seguente formato.

    airflow/variables/YOUR_VARIABLE_NAME

    Per esempio:

    airflow/variables/test-variable
  8. Scegli Next (Successivo).

  9. Nella pagina Configura segreto, nel riquadro Nome e descrizione segreti, procedi come segue.

    1. Per Nome segreto, fornisci un nome per il tuo segreto.

    2. (Facoltativo) Per Descrizione, fornisci una descrizione del tuo segreto.

    Scegli Next (Successivo).

  10. In Configura rotazione (facoltativo), lascia le opzioni predefinite e scegli Avanti.

  11. Ripeti questi passaggi in Secrets Manager per tutte le variabili aggiuntive che desideri aggiungere.

  12. 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
  1. Apri la AWS Secrets Manager console.

  2. Scegli Archivia un nuovo segreto.

  3. Scegli Altro tipo di segreto.

  4. Nel riquadro Specificare le coppie chiave/valore da memorizzare in questo riquadro segreto, scegli Testo normale.

  5. Aggiungi la stringa URI 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&region_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.

  6. Per la chiave di crittografia, scegli un'opzione AWS KMS chiave dall'elenco a discesa.

  7. Inserisci un nome nel campo di testo per Nome segreto nel seguente formato.

    airflow/connections/YOUR_CONNECTION_NAME

    Per esempio:

    airflow/connections/myconn
  8. Scegli Next (Successivo).

  9. Nella pagina Configura segreto, nel riquadro Nome e descrizione segreti, procedi come segue.

    1. Per Nome segreto, fornisci un nome per il tuo segreto.

    2. (Facoltativo) Per Descrizione, fornisci una descrizione del tuo segreto.

    Scegli Next (Successivo).

  10. In Configura rotazione (facoltativo), lascia le opzioni predefinite e scegli Avanti.

  11. Ripeti questi passaggi in Secrets Manager per tutte le variabili aggiuntive che desideri aggiungere.

  12. Nella pagina di revisione, controlla il tuo segreto, quindi scegli Store.

Codice di esempio

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

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.