Bonnes pratiques concernant la sécurité

Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (1re génération héritée)

Il est essentiel de sécuriser votre environnement Airflow géré pour protéger les données sensibles et empêcher les accès non autorisés. Cette page présente les bonnes pratiques clés, y compris des recommandations concernant la sécurité du réseau, Identity and Access Management, le chiffrement et la gestion de la configuration de l'environnement.

Pour en savoir plus sur les fonctionnalités de sécurité disponibles dans Airflow géré, consultez la section Présentation de la sécurité.

Gérer la configuration de l'environnement et les DAG à l'aide du contrôle des versions

Exemple de pipeline CI/CD Airflow
Figure 1. Exemple de pipeline CI/CD Airflow (cliquez pour agrandir)
  • Créez votre environnement à l'aide de Terraform. Vous pouvez ainsi stocker la configuration de l'environnement sous forme de code dans un dépôt. De cette manière, les modifications apportées à la configuration de votre environnement peuvent être examinées avant d'être appliquées. Vous pouvez également réduire le nombre d'utilisateurs autorisés à modifier la configuration en attribuant des rôles avec moins d'autorisations.

  • Dans Identity and Access Management, désactivez l'accès direct aux DAG et à la configuration de l'environnement pour les utilisateurs standards, comme décrit dans la section Identity and Access Management.

  • Déployez des DAG dans votre environnement avec un pipeline CI/CD, afin que le code DAG soit récupéré à partir d'un dépôt. Ainsi, les DAG sont examinés et approuvés avant que les modifications ne soient fusionnées dans le système de contrôle des versions. Au cours du processus d'examen, les approbateurs s'assurent que les DAG répondent aux critères de sécurité établis au sein de leurs équipes. L'étape d'examen est essentielle pour éviter le déploiement de DAG susceptibles d'effectuer des actions indésirables.

    Voici quelques aspects de sécurité importants à prendre en compte lors de l'examen des DAG :

    • Les DAG qui modifient le contenu du bucket de l'environnement ne doivent pas modifier le code d'autres DAG ni accéder à des données sensibles, sauf si cela est prévu.

    • Les DAG ne doivent pas envoyer de requêtes directes à la base de données Airflow, sauf si cela est prévu. Un DAG dans un environnement Airflow géré a accès à toutes les tables de la base de données Airflow. Il est possible de récupérer des informations à partir de n'importe quelle table, de les traiter, puis de les stocker en dehors de la base de données Airflow.

Sécurité du réseau

Identity and Access Management

  • Isolez les autorisations. Créez des comptes de service d'environnement et utilisez des comptes de service différents pour différents environnements. N'attribuez à ces comptes de service que les autorisations strictement nécessaires pour exploiter ces environnements et effectuer les opérations définies dans les DAG Airflow qu'ils exécutent.

  • Évitez d'utiliser des comptes de service avec des autorisations étendues. Bien qu'il soit possible de créer un environnement qui utilise un compte avec des autorisations étendues, telles que celles accordées par le rôle de base Éditeur, cela crée un risque que les DAG utilisent des autorisations plus étendues que prévu.

  • Ne vous fiez pas aux comptes de service par défaut des services Google utilisés par Airflow géré. Il est souvent impossible de réduire les autorisations disponibles pour ces comptes de service sans affecter également d'autres services Google dans votre projet.

  • Assurez-vous de connaître les considérations de sécurité concernant les comptes de service de l'environnement et de comprendre comment ce compte interagit avec les autorisations et les rôles que vous accordez aux utilisateurs individuels de votre projet.

  • Respectez le principe du moindre privilège. N'accordez aux utilisateurs que les autorisations minimales nécessaires. Par exemple, attribuez des rôles IAM afin que seuls les administrateurs puissent accéder au bucket de l'environnement , et que l'accès direct soit désactivé pour les utilisateurs standards. Par exemple, le rôle Utilisateur Composer n'autorise l'accès qu'à l'UI DAG et à l'UI Airflow.

  • Appliquez le contrôle des accès à l'UI Airflow, qui permet de réduire la visibilité dans l'UI Airflow et l'UI DAG en fonction du rôle Airflow de l'utilisateur, et qui peut être utilisé pour attribuer des autorisations au niveau du DAG pour des DAG individuels.

  • Effectuez des examens réguliers. Auditez régulièrement les autorisations et les rôles IAM pour identifier et supprimer les privilèges excessifs ou inutilisés.

  • Faites attention lorsque vous transmettez et stockez des données sensibles :

    • Soyez prudent lorsque vous transmettez et stockez des données sensibles telles que des informations personnelles identifiables ou des mots de passe. Si nécessaire, utilisez Secret Manager pour stocker en toute sécurité les connexions et les secrets Airflow, les clés API, les mots de passe et les certificats. Ne stockez pas ces informations dans vos DAG ni dans les variables d'environnement.

    • N'accordez les autorisations IAM au bucket de l'environnement qu'aux utilisateurs de confiance. Si possible, utilisez des autorisations par objet. La section Considérations de sécurité concernant les comptes de service de l'environnement liste plusieurs façons dont les utilisateurs ayant accès au bucket de l'environnement peuvent effectuer des actions au nom du compte de service de l'environnement.

    • Assurez-vous de savoir quelles données sont stockées dans les instantanés et n'accordez les autorisations de création d'instantanés d'environnement et d'accès au bucket dans lequel ils sont stockés qu'aux utilisateurs de confiance.

    • Toutes les interfaces externes d'Airflow géré utilisent le chiffrement par défaut. Lorsque vous vous connectez à des produits et services externes, assurez-vous d'utiliser une communication chiffrée (SSL/TLS).

Étape suivante