Bonnes pratiques concernant la sécurité

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

La sécurisation de votre environnement Cloud Composer est essentielle 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 pour la sécurité du réseau, la gestion de l'identité et des accès, le chiffrement et la gestion de la configuration de l'environnement.

Pour en savoir plus sur les fonctionnalités de sécurité disponibles dans Cloud Composer, 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 leur attribuant des rôles avec moins d'autorisations.

  • 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. De cette manière, 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 modifiant le contenu du bucket de l'environnement.

  • Dans Identity and Access Management, désactivez l'accès direct aux DAG et à la configuration de l'environnement pour les utilisateurs ordinaires, comme indiqué dans la section Identity and Access Management (Gestion de l'identité et des accès).

Sécurité du réseau

  • Utilisez des environnements d'adresse IP privée afin que les composants Airflow qui exécutent le cluster de votre environnement ne se voient pas attribuer d'adresses IP publiques et ne communiquent que via le réseau interne de Google.

  • Implémentez des règles de pare-feu strictes pour contrôler le trafic entrant et sortant du cluster de votre environnement.

  • Configurez la connectivité aux API et services Google via le domaine private.googleapis.com afin que votre environnement accède aux API et services Google via des adresses IP routables uniquement depuis Google Cloud.

  • Examinez les règles de pare-feu générales de votre projet et du réseau VPC où se trouve votre environnement. Selon la façon dont vous les configurez, les composants Airflow de votre environnement, tels que les nœuds de calcul Airflow qui exécutent vos DAG, peuvent accéder à Internet.

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 dotés d'autorisations étendues. Bien qu'il soit possible de créer un environnement qui utilise un compte disposant d'autorisations étendues, telles que celles accordées par le rôle de base Éditeur, cela crée un risque de DAG utilisant des autorisations plus étendues que prévu.

  • Ne vous appuyez pas sur les comptes de service par défaut des services Google utilisés par Cloud Composer. Il est souvent impossible de réduire les autorisations disponibles pour ces comptes de service sans affecter les autres services Google de votre projet.

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

  • Respectez le principe du moindre privilège. Accordez uniquement les autorisations minimales nécessaires aux utilisateurs. Par exemple, attribuez des rôles IAM afin que seuls les administrateurs puissent accéder au bucket et au cluster 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'interface utilisateur du DAG et à l'interface utilisateur d'Airflow.

  • Appliquez le contrôle des accès de l'interface utilisateur d'Airflow, qui permet de réduire la visibilité dans l'interface utilisateur d'Airflow et dans l'interface utilisateur du DAG en fonction du rôle Airflow de l'utilisateur. Vous pouvez également l'utiliser pour attribuer des autorisations au niveau du DAG pour des DAG individuels.

  • Révisez-les régulièrement. Effectuez régulièrement des audits des autorisations et des rôles IAM pour identifier et supprimer les privilèges excessifs ou inutilisés.

  • Veillez à ne pas transmettre ni stocker de données sensibles:

    • Faites preuve de prudence lorsque vous transmettez des données sensibles telles que des informations permettant d'identifier personnellement l'utilisateur ou des mots de passe. Le cas échéant, utilisez Secret Manager pour stocker en toute sécurité des connexions et des secrets Airflow, des clés API, des mots de passe et des certificats. Ne stockez pas ces informations dans vos DAG ni dans vos variables d'environnement.

    • Accordez des autorisations IAM au bucket de l'environnement uniquement aux utilisateurs de confiance. Si possible, utilisez des autorisations par objet. Les considérations de sécurité pour les comptes de service de l'environnement décrivent 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 connaître les données stockées dans les instantanés et n'accordez les autorisations de créer des instantanés d'environnement et d'accéder au bucket où ils sont stockés qu'aux utilisateurs de confiance.

    • Toutes les interfaces externes de Cloud Composer 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