Comprendre la sécurité du réseau dans GKE

Ce document explique les concepts de base de la sécurité réseau GKE, tels que le principe du moindre privilège, et vous aide à choisir les bons outils pour sécuriser votre cluster. Les principaux objectifs de la mise en œuvre de la sécurité réseau GKE sont l'isolation des charges de travail et la mutualisation sécurisée. Pour atteindre ces objectifs, vous devez appliquer les principes du moindre privilège et de la défense en profondeur, et utiliser des données exploitables pour prendre vos décisions en matière de sécurité.

Dans Google Kubernetes Engine (GKE), appliquer le principe du moindre privilège au trafic réseau signifie limiter la communication à ce qui est nécessaire au fonctionnement de vos applications. Par défaut, le réseau d'un cluster GKE est ouvert, ce qui signifie que chaque pod peut communiquer avec tous les autres pods.

Ce document aide les opérateurs, les spécialistes de la mise en réseau et les spécialistes de la sécurité à comprendre et à mettre en œuvre la sécurité réseau dans les clusters GKE. Pour en savoir plus sur les rôles courants et les exemples de tâches dans Cloud de Confiance by S3NS, consultez Rôles utilisateur et tâches courantes de GKE.

Avant de lire ce document, assurez-vous de bien connaître les éléments suivants :

  • Concepts de mise en réseau GKE : pour obtenir une présentation, consultez À propos de la mise en réseau GKE.
  • Pods, services et espaces de noms Kubernetes : ces ressources Kubernetes fondamentales sont essentielles pour définir des règles de sécurité réseau. Consultez la documentation Kubernetes.
  • Principe du moindre privilège : ce principe de sécurité est un concept de base appliqué tout au long de ce document.

Objectifs de la sécurité réseau GKE

Les règles de sécurité réseau GKE offrent un contrôle précis du trafic dans votre cluster, compatible avec Kubernetes. Ces règles sont un élément essentiel de votre stratégie de sécurité globale. Pour mettre en œuvre une sécurité réseau robuste, tenez compte des principes fondamentaux suivants :

Choisir une règle de sécurité réseau

Pour choisir la bonne règle, identifiez le type et la portée du trafic que vous devez contrôler.

Types de trafic

Pour choisir la bonne règle, tenez compte de la source et de la destination du trafic que vous souhaitez gérer :

  • Communication entre les pods du cluster : pour contrôler la façon dont les microservices communiquent entre eux, utilisez des règles qui fonctionnent sur les libellés et les espaces de noms des pods.

    • En tant que développeur d'applications, utilisez la Kubernetes NetworkPolicy pour définir des règles d'entrée et de sortie pour votre application dans son espace de noms.
    • En tant qu'administrateur de cluster, utilisez le CiliumClusterwideNetworkPolicy pour appliquer des garde-fous de sécurité qui s'appliquent à l'ensemble du cluster. Les règles de refus de NetworkPolicy sont prioritaires sur les CiliumClusterwideNetworkPolicy règles d'autorisation.
  • Trafic sortant des pods vers des services externes : pour contrôler le trafic sortant des pods vers des services externes en fonction des noms de domaine, utilisez FQDNNetworkPolicy. Cette règle est utile lorsque les adresses IP des services externes ne sont pas statiques, car elle résout et met automatiquement à jour les adresses IP autorisées en fonction du DNS.

  • Chiffrement pour tout le trafic de service à service : pour vous assurer que toutes les communications entre les services sont chiffrées et authentifiées, utilisez un maillage de services. Utilisez Istio ou Anthos Cloud Service Mesh pour implémenter le protocole TLS mutuel (mTLS), qui gère automatiquement le chiffrement.

Résumé des choix de règles

Le tableau suivant récapitule la règle à utiliser en fonction de votre objectif de sécurité.

Objectif Règle recommandée
Contrôler le trafic entre les pods à l'aide de libellés et d'espaces de noms Kubernetes NetworkPolicy
Contrôler le trafic sortant vers des services externes par nom de domaine FQDNNetworkPolicy
Chiffrer et authentifier tout le trafic de service à service Istio ou Anthos Cloud Service Mesh (pour mTLS)
Appliquer des règles obligatoires à l'échelle du cluster en tant qu'administrateur CiliumClusterwideNetworkPolicy
Auditer et enregistrer les connexions autorisées ou refusées par les règles Journalisation des règles de réseau (activée pour n'importe quelle règle)

Auditer et dépanner les règles de réseau

Après avoir mis en œuvre des règles de réseau, vérifiez qu'elles fonctionnent comme prévu et diagnostiquez les problèmes de connectivité. Vous pouvez utiliser la journalisation des règles de réseau comme outil principal .

Lorsque vous activez la journalisation des règles de réseau, GKE génère un enregistrement de journal dans Cloud Logging pour chaque connexion autorisée ou refusée par une règle de réseau. Ces journaux sont essentiels pour effectuer des audits de sécurité et résoudre les comportements inattendus. L'examen de ces journaux vous permet de voir les effets concrets de vos règles, de confirmer que le trafic légitime circule comme prévu et que le trafic non autorisé est bloqué.

Étape suivante