Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration d'une connexion Apache Airflow à l'aide d'un secret AWS Secrets Manager
AWS Secrets Manager est un backend Apache Airflow alternatif pris en charge sur un environnement Amazon Managed Workflows pour Apache Airflow. Ce guide explique comment stocker en toute sécurité AWS Secrets Manager les secrets des variables Apache Airflow et d'une connexion Apache Airflow sur Amazon Managed Workflows pour Apache Airflow.
Note
-
Les secrets que vous créez vous seront facturés. Pour plus d'informations sur les tarifs de Secrets Manager, consultez la section AWS Tarification
. -
AWS Systems Manager Parameter Store est également pris en charge en tant que backend de secrets sur AmazonMWAA. Pour plus d'informations, consultez la documentation Amazon Provider Package
.
Table des matières
- Étape 1 : accorder à Amazon l'autorisation MWAA d'accéder aux clés secrètes de Secrets Manager
- Deuxième étape : créer le backend Secrets Manager en tant qu'option de configuration d'Apache Airflow
- Troisième étape : générer une chaîne de AWS connexion URI Apache Airflow
- Étape 4 : ajouter les variables dans Secrets Manager
- Étape 5 : ajouter la connexion dans Secrets Manager
- Exemple de code
- Ressources
- Quelle est la prochaine étape ?
Étape 1 : accorder à Amazon l'autorisation MWAA d'accéder aux clés secrètes de Secrets Manager
Le rôle d'exécution de votre MWAA environnement Amazon nécessite un accès en lecture à la clé secrète AWS Secrets Manager. La IAM politique suivante autorise l'accès en lecture-écriture à l'aide de la stratégie AWS gérée SecretsManagerReadWrite
Pour associer la politique à votre rôle d'exécution
-
Ouvrez la page Environnements
sur la MWAA console Amazon. -
Choisissez un environnement.
-
Choisissez votre rôle d'exécution dans le volet Autorisations.
-
Choisissez Attach Policies (Attacher des politiques).
-
Tapez
SecretsManagerReadWrite
dans le champ de texte Politiques de filtrage. -
Choisissez Attach policy (Attacher une politique).
Si vous ne souhaitez pas utiliser de politique d'autorisation AWS gérée, vous pouvez directement mettre à jour le rôle d'exécution de votre environnement pour autoriser n'importe quel niveau d'accès à vos ressources de Secrets Manager. Par exemple, la déclaration de politique suivante accorde un accès en lecture à tous les secrets que vous créez dans une AWS région spécifique dans 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": "*" } ] }
Deuxième étape : créer le backend Secrets Manager en tant qu'option de configuration d'Apache Airflow
La section suivante décrit comment créer une option de configuration Apache Airflow sur la MWAA console Amazon pour le AWS Secrets Manager backend. Si vous utilisez un paramètre de configuration du même nom dansairflow.cfg
, la configuration que vous créez dans les étapes suivantes aura priorité et remplacera les paramètres de configuration.
-
Ouvrez la page Environnements
sur la MWAA console Amazon. -
Choisissez un environnement.
-
Choisissez Modifier.
-
Choisissez Suivant.
-
Choisissez Ajouter une configuration personnalisée dans le volet des options de configuration d'Airflow. Ajoutez les paires clé-valeur suivantes :
-
:secrets.backend
airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
-
:secrets.backend_kwargs
Cela configure Apache Airflow pour rechercher les chaînes de connexion et les variables dans les chemins et les chemins{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}
airflow/connections/*
.airflow/variables/*
Vous pouvez utiliser un modèle de recherche
pour réduire le nombre d'APIappels qu'Amazon MWAA passe à Secrets Manager en votre nom. Si vous ne spécifiez aucun modèle de recherche, Apache Airflow recherche toutes les connexions et variables dans le backend configuré. En spécifiant un modèle, vous réduisez les chemins possibles recherchés par Apache Airflow. Cela réduit vos coûts lorsque vous utilisez Secrets Manager avec AmazonMWAA. Pour spécifier un modèle de recherche, spécifiez les
variables_lookup_pattern
paramètresconnections_lookup_pattern
et. Ces paramètres acceptent une RegEx chaîne en entrée. Par exemple, pour rechercher des secrets commençant partest
, entrez ce qui suit poursecrets.backend_kwargs
:{ "connections_prefix": "airflow/connections", "connections_lookup_pattern": "^test", "variables_prefix" : "airflow/variables", "variables_lookup_pattern": "^test" }
Note
Pour utiliser
connections_lookup_pattern
etvariables_lookup_pattern
, vous devez installerapache-airflow-providers-amazon
la version 7.3.0 ou supérieure. Pour plus d'informations sur la mise à jour des packages des fournisseurs vers des versions plus récentes, consultez. Spécifier les nouveaux packages de fournisseurs
-
-
Choisissez Save (Enregistrer).
Troisième étape : générer une chaîne de AWS connexion URI Apache Airflow
Pour créer une chaîne de connexion, utilisez la touche « tab » de votre clavier pour mettre en retrait les paires clé-valeur dans l'objet Connection.extra
objet dans votre session shell. La section suivante explique les étapes à suivre pour générer une URI chaîne de connexion Apache Airflow
Étape 4 : ajouter les variables dans Secrets Manager
La section suivante décrit comment créer le secret d'une variable dans Secrets Manager.
Pour créer le secret
-
Ouvrez la AWS Secrets Manager console
. -
Choisissez Store a new secret (Stocker un nouveau secret).
-
Choisissez Autre type de secret.
-
Dans le volet Spécifiez les paires clé/valeur à stocker dans ce volet secret, choisissez Texte en clair.
-
Ajoutez la valeur de la variable sous forme de texte brut au format suivant.
"
YOUR_VARIABLE_VALUE
"Par exemple, pour spécifier un entier :
14
Par exemple, pour spécifier une chaîne :
"mystring"
-
Pour Clé de chiffrement, choisissez une option de AWS KMS clé dans la liste déroulante.
-
Entrez un nom dans le champ de texte pour le nom du secret au format suivant.
airflow/variables/
YOUR_VARIABLE_NAME
Par exemple :
airflow/variables/test-variable
-
Choisissez Suivant.
-
Sur la page Configurer le secret, dans le volet Nom et description du secret, procédez comme suit.
-
Dans Nom du secret, saisissez le nom de votre secret.
-
(Facultatif) Dans Description, fournissez une description de votre secret.
Choisissez Suivant.
-
-
Dans le champ Configurer la rotation - facultatif, laissez les options par défaut et choisissez Next.
-
Répétez ces étapes dans Secrets Manager pour toutes les variables supplémentaires que vous souhaitez ajouter.
-
Sur la page Révision, vérifiez votre secret, puis choisissez Store.
Étape 5 : ajouter la connexion dans Secrets Manager
La section suivante explique comment créer le secret de votre chaîne de connexion URI dans Secrets Manager.
Pour créer le secret
-
Ouvrez la AWS Secrets Manager console
. -
Choisissez Store a new secret (Stocker un nouveau secret).
-
Choisissez Autre type de secret.
-
Dans le volet Spécifiez les paires clé/valeur à stocker dans ce volet secret, choisissez Texte en clair.
-
Ajoutez la URI chaîne de connexion sous forme de texte brut au format suivant.
YOUR_CONNECTION_URI_STRING
Par exemple :
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
Avertissement
Apache Airflow analyse chacune des valeurs de la chaîne de connexion. Vous ne devez pas utiliser de guillemets simples ou doubles, sinon la connexion sera analysée sous la forme d'une chaîne unique.
-
Pour Clé de chiffrement, choisissez une option de AWS KMS clé dans la liste déroulante.
-
Entrez un nom dans le champ de texte pour le nom du secret au format suivant.
airflow/connections/
YOUR_CONNECTION_NAME
Par exemple :
airflow/connections/myconn
-
Choisissez Suivant.
-
Sur la page Configurer le secret, dans le volet Nom et description du secret, procédez comme suit.
-
Dans Nom du secret, saisissez le nom de votre secret.
-
(Facultatif) Dans Description, fournissez une description de votre secret.
Choisissez Suivant.
-
-
Dans le champ Configurer la rotation - facultatif, laissez les options par défaut et choisissez Next.
-
Répétez ces étapes dans Secrets Manager pour toutes les variables supplémentaires que vous souhaitez ajouter.
-
Sur la page Révision, vérifiez votre secret, puis choisissez Store.
Exemple de code
-
Découvrez comment utiliser la clé secrète pour la connexion Apache Airflow (
myconn
) sur cette page à l'aide de l'exemple de code disponible à Utilisation d'une clé secrète AWS Secrets Manager pour une connexion Apache Airflow l'adresse. -
Découvrez comment utiliser la clé secrète de la variable Apache Airflow (
test-variable
) sur cette page à l'aide de l'exemple de code disponible à Utilisation d'une clé secrète AWS Secrets Manager pour une variable Apache Airflow l'adresse.
Ressources
-
Pour plus d'informations sur la configuration des secrets de Secrets Manager à l'aide de la console et du AWS CLI, consultez la section Créer un secret dans le Guide de AWS Secrets Manager l'utilisateur.
-
Utilisez un script Python pour migrer un grand volume de variables et de connexions Apache Airflow vers Secrets Manager dans Move your Apache Airflow connections and variables
to. AWS Secrets Manager
Quelle est la prochaine étape ?
-
Découvrez comment générer un jeton pour accéder à l'interface utilisateur d'Apache Airflow dansAccès à Apache Airflow.