Cette page décrit les règles de pare-feu que Google Kubernetes Engine (GKE) crée automatiquement dans Google Cloud.
Outre les règles spécifiques à GKE répertoriées sur cette page, les projets Google Cloud par défaut incluent plusieurs règles de pare-feu préremplies. Les clusters GKE sont généralement déployés au sein d'un réseau VPC. Ces règles accordent un accès réseau essentiel aux clusters GKE. Ces règles sont suffisantes pour le fonctionnement de base du cluster, mais vous devrez peut-être créer des règles supplémentaires en fonction de vos besoins spécifiques.
Règles de pare-feu
GKE crée automatiquement des règles de pare-feu lors de la création des ressources suivantes :
- Clusters GKE
- Services GKE
- Passerelles GKE et HTTPRoutes
- Ingress GKE
Sauf indication contraire, la priorité de toutes les règles de pare-feu créées automatiquement est de 1 000, qui est la valeur par défaut des règles de pare-feu. Si vous souhaitez mieux contrôler le comportement du pare-feu, vous pouvez créer des règles de pare-feu avec une priorité plus élevée. Les règles de pare-feu de priorité supérieure sont appliquées avant les règles de pare-feu créées automatiquement.
Règles de pare-feu de cluster GKE
GKE crée les règles de pare-feu d'entrée suivantes lors de la création d'un cluster :
Nom | Objectif | Source | Cible (définit la destination) | Protocole et ports | Priorité |
---|---|---|---|---|---|
gke-[cluster-name]-[cluster-hash]-master |
Pour les clusters Autopilot et Standard privés seulement. Autorise le plan de contrôle à accéder à Kubelet et metrics-server sur les nœuds du cluster. | Plage d'adresses IP du plan de contrôle (/28) | Tag du nœud | TCP : 443 (metrics-server) et TCP : 10250 (kubelet) | 1000 |
gke-[cluster-name]-[cluster-hash]-vms
|
Utilisé pour la communication au sein du cluster requise par le modèle de mise en réseau Kubernetes. Permet au logiciel s'exécutant sur les nœuds d'envoyer des paquets, avec des sources correspondant aux adresses IP des nœuds, vers l'adresse IP du pod de destination et les adresses IP des nœuds du cluster. Par exemple, le trafic autorisé par cette règle inclut les éléments suivants :
|
Plage d'adresses IP du nœud ou sur-ensemble de cette plage :
|
Tag du nœud | TCP : 1-65535, UDP : 1-65535, ICMP | 1000 |
gke-[cluster-name]-[cluster-hash]-all |
Autorise le trafic entre tous les pods d'un cluster, selon les exigences du modèle de mise en réseau Kubernetes. |
CIDR des pods Pour les clusters comprenant un CIDR multipods non contigu activé, tous les blocs CIDR des pods sont utilisés par le cluster. |
Tag du nœud | TCP, UDP, SCTP, ICMP, ESP, AH | 1000 |
gke-[cluster-hash]-ipv6-all |
Pour les clusters de réseaux à double pile uniquement. Autorise le trafic entre les nœuds et les pods d'un cluster. |
Plage d'adresses IP identique allouée dans |
Tag du nœud | TCP, UDP, SCTP, ICMP pour IPv6, ESP, AH | 1000 |
gke-[cluster-name]-[cluster-hash]-inkubelet |
Autorise l'accès au port 10255 (port Kubelet en lecture seule) depuis les CIDR de pods internes et les CIDR de nœuds dans les nouveaux clusters GKE exécutant la version 1.23.6 ou ultérieure. Les clusters exécutant des versions ultérieures à la version 1.26.4-gke.500 utilisent le port authentifié Kubelet (10250) à la place. N'ajoutez pas de règles de pare-feu bloquant le port 10250 au sein du cluster. |
CIDR de pods internes et CIDR de nœuds. |
Tag du nœud | TCP : 10255 | 999 |
gke-[cluster-name]-[cluster-hash]-exkubelet |
Refuse l'accès public au port 10255 dans les nouveaux clusters GKE exécutant la version 1.23.6 ou ultérieure. |
0.0.0.0/0 |
Tag du nœud | TCP : 10255 | 1000 |
Règles de pare-feu de service GKE
GKE crée les règles de pare-feu d'entrée suivantes lors de la création d'un service :
Nom | Objectif | Source | Cible (définit la destination) | Protocole et ports |
---|---|---|---|---|
k8s-fw-[loadbalancer-hash] |
Autorise le trafic entrant à accéder à un service. | La source provient de spec.loadBalancerSourceRanges . La valeur par défaut est 0.0.0.0/0 si spec.loadBalancerSourceRanges est omis.
Pour en savoir plus, consultez la section Règles de pare-feu et liste d'autorisation d'adresses IP sources. |
Adresse IP virtuelle LoadBalancer | TCP et UDP sur les ports spécifiés dans le fichier manifeste du service. |
k8s-[cluster-id]-node-http-hc |
Autorise les vérifications de l'état d'un service d'équilibreur de charge réseau passthrough externe lorsque externalTrafficPolicy est défini sur Cluster . |
|
Adresse IP virtuelle LoadBalancer | TCP : 10256 |
k8s-[loadbalancer-hash]-http-hc |
Autorise les vérifications de l'état d'un service d'équilibreur de charge réseau passthrough externe lorsque externalTrafficPolicy est défini sur Local . |
|
Tag du nœud | Port TCP défini par spec.healthCheckNodePort . La valeur par défaut est le numéro de port TCP 10256 si spec.healthCheckNodePort est omis.
Pour en savoir plus, consultez la section Port de vérification de l'état. |
k8s-[cluster-id]-node-hc |
Autorise les vérifications de l'état d'un service d'équilibreur de charge réseau passthrough interne lorsque externalTrafficPolicy est défini sur Cluster .
|
|
Tag du nœud | TCP : 10256 |
[loadbalancer-hash]-hc |
Autorise les vérifications de l'état d'un service d'équilibreur de charge réseau passthrough interne lorsque externalTrafficPolicy est défini sur Local .
|
|
Tag du nœud | Port TCP défini par spec.healthCheckNodePort . La valeur par défaut est le numéro de port TCP 10256 si spec.healthCheckNodePort est omis.
Pour en savoir plus, consultez la section Port de vérification de l'état. |
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash] |
Autorise le trafic entrant à accéder à un Service lorsque l'un des éléments suivants est activé :
|
La source provient de spec.loadBalancerSourceRanges . La valeur par défaut est 0.0.0.0/0 si spec.loadBalancerSourceRanges est omis.
Pour en savoir plus, consultez la section Règles de pare-feu et liste d'autorisation d'adresses IP sources. |
Adresse IP virtuelle LoadBalancer | TCP et UDP sur les ports spécifiés dans le fichier manifeste du service. |
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw |
Autorise les vérifications d'état du Service lorsque externalTrafficPolicy est défini sur Local et que l'un des éléments suivants est activé :
|
|
Adresse IP virtuelle LoadBalancer | Port TCP défini par spec.healthCheckNodePort . La valeur par défaut est le numéro de port TCP 10256 si spec.healthCheckNodePort est omis.
Pour en savoir plus, consultez la section Port de vérification de l'état. |
k8s2-[cluster-id]-l4-shared-hc-fw |
Autorise les vérifications d'état du Service lorsque externalTrafficPolicy est défini sur Cluster et que l'un des éléments suivants est activé :
|
|
Tag du nœud | TCP : 10256 |
gke-[cluster-name]-[cluster-hash]-mcsd |
Autorise le plan de contrôle à accéder au kubelet ainsi qu'à metrics-server sur les nœuds de cluster pour les services multiclusters. Cette règle a une priorité de 900. | Adresses IP de vérification d'état | Tag du nœud | TCP, UDP, SCTP, ICMP, ESP, AH |
Règles de pare-feu de passerelle GKE
GKE crée les règles de pare-feu de passerelle suivantes lors de la création de ressources Gateway et HTTPRoute :
Nom | Objectif | Source | Cible (définit la destination) | Protocole et ports |
---|---|---|---|---|
|
Autorise les vérifications d'état d'un groupe de points de terminaison du réseau (NEG). Le contrôleur Gateway crée cette règle lors de la création de la première ressource Gateway. Le contrôleur Gateway peut mettre à jour cette règle si d'autres ressources Gateway sont créées. |
|
Tag du nœud | TCP : tous les ports cibles de conteneurs (pour les NEG) |
Règles de pare-feu d'Ingress GKE
GKE crée les règles de pare-feu d'entrée suivantes lors de la création d'une ressource Ingress :
Nom | Objectif | Source | Cible (définit la destination) | Protocole et ports |
---|---|---|---|---|
k8s-fw-l7-[random-hash] |
Autorise les vérifications d'état d'un service Le contrôleur Ingress crée cette règle lors de la création de la première ressource Ingress. Le contrôleur Ingress peut mettre à jour cette règle si d'autres ressources Ingress sont créées. |
|
Tag du nœud | TCP : 30000-32767, TCP : 80 (pour les équilibreurs de charge d'application internes), TCP : tous les ports cibles de conteneurs (pour les NEG) |
VPC partagé
Lorsqu'un cluster situé sur un VPC partagé utilise un réseau VPC partagé, le contrôleur Ingress ne peut pas utiliser le compte de service GKE dans le projet de service pour créer et mettre à jour les règles de pare-feu autorisant les entrées dans le projet hôte. Vous pouvez accorder au compte de service GKE dans un projet de service les autorisations nécessaires pour créer et gérer les ressources de pare-feu. Pour en savoir plus, consultez la section VPC partagé.
Règle de pare-feu requise pour le sous-réseau étendu
Si vous étendez la plage IPv4 principale du sous-réseau du cluster, GKE ne met pas automatiquement à jour la plage source de la règle de pare-feu gke-[cluster-name]-[cluster-hash]-vms
. Étant donné que les nœuds du cluster peuvent recevoir des adresses IPv4 de la partie développée de la plage IPv4 principale du sous-réseau, vous devez créer une règle de pare-feu manuellement pour autoriser la communication entre les nœuds du cluster.
La règle de pare-feu d'entrée que vous devez créer doit autoriser les paquets TCP et ICMP depuis la plage source IPv4 du sous-réseau principal étendu, et cette règle doit s'appliquer au moins à tous les nœuds du cluster.
Pour créer une règle de pare-feu d'entrée qui ne s'applique qu'aux nœuds du cluster, définissez la cible de la règle de pare-feu sur le même tag cible que celui utilisé par la règle de pare-feu gke-[cluster-name]-[cluster-hash]-vms
créée automatiquement par votre cluster.
Ordre d'évaluation des règles
Si vous utilisez des stratégies de pare-feu en plus des règles de pare-feu VPC, Google Cloud évalue par défaut les règles de pare-feu avant les stratégies de pare-feu réseau (globales et régionales). Si vous modifiez l'ordre d'évaluation des règles, le trafic risque de ne pas atteindre vos clusters GKE. Pour en savoir plus, consultez la section Ordre d'évaluation des stratégies et des règles.
Journalisation des règles de pare-feu
La journalisation des règles de pare-feu est désactivée par défaut. Pour activer la journalisation pour une règle de pare-feu, exécutez la commande --enable-logging
.
Étapes suivantes
- Lisez une présentation de la mise en réseau dans GKE.
- Découvrez comment configurer des règles de réseau pour les applications.
- Découvrez d'autres règles de pare-feu préremplies dans Google Cloud.
- Découvrez comment créer des règles de pare-feu dans les projets utilisant un VPC partagé.