Règles de pare-feu créées automatiquement


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 :

  • Paquets envoyés depuis des daemons système, tels que le kubelet, aux destinations d'adresses IP de nœud et de pod du cluster.
  • Paquets envoyés depuis un logiciel s'exécutant dans des pods avec hostNetwork:true aux adresses IP de nœud et de pod du cluster.
Plage d'adresses IP du nœud ou sur-ensemble de cette plage :
  • Pour les réseaux VPC en mode automatique, GKE utilise le CIDR 10.128.0.0/9, car cette plage inclut toutes les plages d'adresses IPv4 principales actuelles et futures du sous-réseau pour les sous-réseaux créés automatiquement.
  • Pour les réseaux VPC en mode personnalisé, GKE utilise la plage d'adresses IPv4 principale du sous-réseau du cluster.
GKE ne met pas à jour la plage IPv4 source de cette règle de pare-feu si vous étendez la plage IPv4 principale du sous-réseau du cluster. Vous devez créer la règle de pare-feu d'entrée nécessaire manuellement si vous étendez la plage IPv4 principale du sous-réseau du cluster.
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 subnetIpv6CidrBlock.

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.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
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.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
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.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
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.
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
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é :
  • Sous-paramètre GKE.
  • Équilibreur de charge réseau passthrough externe basé sur un service de backend.
  • 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é :
  • Sous-paramètre GKE.
  • Équilibreur de charge réseau passthrough externe basé sur un service de backend.
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 209.85.152.0/22
    • 209.85.204.0/22
    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é :
  • Sous-paramètre GKE.
  • Équilibreur de charge réseau passthrough externe basé sur un service de backend.
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 209.85.152.0/22
    • 209.85.204.0/22
    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
    • gkegw1-l7-[network]-[region/global]
    • gkemcg1-l7-[network]-[region/global]

    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 NodePort ou d'un groupe de points de terminaison du réseau (NEG).

    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.

    Pour GKE v1.17.13-gke.2600 ou version ultérieure :
    • 130.211.0.0/22
    • 35.191.0.0/16
    • Plages de sous-réseaux proxy réservés définies par l'utilisateur (pour les équilibreurs de charge d'application internes)
    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