Ajouter des réseaux autorisés pour l'accès au plan de contrôle


Cette page explique comment utiliser des réseaux autorisés pour restreindre les origines à partir desquelles vous pouvez accéder aux plans de contrôle de vos clusters Google Kubernetes Engine (GKE). Ces réseaux accordent au plan de contrôle l'accès à un ensemble spécifique d'adresses IP de confiance, et offrent une protection et des avantages supplémentaires en matière de sécurité pour votre cluster GKE.

Fonctionnement des réseaux autorisés

Les réseaux autorisés fournissent un pare-feu basé sur l'adresse IP qui contrôle l'accès au plan de contrôle GKE. L'accès au plan de contrôle dépend du type de cluster GKE et des adresses IP sources. Avec les réseaux autorisés, vous configurez les adresses IP que vous souhaitez autoriser à accéder au point de terminaison du plan de contrôle du cluster GKE en tant que liste de blocs CIDR.

Les termes suivants sont utilisés pour différencier les règles de pare-feu basées sur les adresses IP, en fonction de votre type de cluster :

Distinctions entre les adresses IP :

  • Adresses IP publiques de toutes les VM Compute Engine dans Google Cloud : adresses IP publiques attribuées à toute VM utilisée par un client hébergé sur Google Cloud. Ces adresses IP appartiennent à Google Cloud. Pour en savoir plus, consultez la section Où puis-je trouver les plages d'adresses IP Compute Engine ?
  • Adresses IP Google Cloud Platform : adresses IP utilisées par les produits Google Cloud tels que Cloud Run ou Cloud Functions. Tout client hébergé sur Google Cloud peut instancier ces adresses IP. Ces adresses IP appartiennent à Google Cloud.
  • Adresses IP réservées par Google : adresses IP publiques à des fins de gestion des clusters GKE. Ces adresses IP incluent les processus gérés par GKE ainsi que d'autres services Google de production. Ces adresses IP appartiennent à Google.
  • Adresses IP publiques Internet : adresses IP non-RFC 1918 et non-Google. Ni les produits Google, ni les produits Google Cloud ne sont propriétaires de ces adresses IP publiques.
  • Plages d'adresses IP du cluster GKE : adresses IP attribuées au cluster utilisé par GKE pour les nœuds, les pods et les services du cluster
  • Adresses IP utilisées en mode privé : adresses IP du réseau VPC du cluster. Ces adresses IP peuvent inclure l'adresse IP de votre cluster, les réseaux sur site, les plages RFC 1918 ou les adresses IP publiques utilisées en mode privé (PUPI) qui incluent des plages non-RFC 1918.

Types de clusters :

  • Anciens clusters publics : clusters publics exécutés sur des anciens réseaux ou sur des réseaux VPC avec des adresses IP publiques attribuées aux nœuds et qui n'ont pas été migrées vers l'architecture Private Service Connect.
  • Anciens clusters privés : clusters basés sur l'appairage de réseaux VPC pour la connectivité du plan de contrôle à partir des nœuds disposant uniquement d'adresses IP privées.
  • Cluster basé sur PSC, créé en tant que public ou privé: clusters utilisant l'architecture Private Service Connect pour la communication entre le plan de contrôle du cluster GKE et les nœuds. Pour déterminer si votre cluster utilise Private Service Connect, consultez le plan de contrôle GKE.

Accès aux points de terminaison du plan de contrôle

Le tableau suivant indique l'état du réseau autorisé par défaut au moment de la création du cluster. En fonction du type de cluster GKE et du point de terminaison du plan de contrôle, vous pouvez déterminer les éléments suivants :

  • Adresses IP prédéfinies qui peuvent toujours accéder au plan de contrôle GKE.
  • Adresses IP que vous pouvez configurer pour accéder au plan de contrôle du cluster avec les réseaux autorisés activés.

Les adresses IP configurables peuvent accéder au plan de contrôle du cluster lorsque vous les ajoutez à la liste d'autorisation et que vous activez les réseaux autorisés.

Type de cluster GKE et de point de terminaison du plan de contrôle État du réseau autorisé par défaut pour le plan de contrôle Adresses IP prédéfinies qui peuvent toujours accéder au plan de contrôle GKE1 Adresse IP configurable pouvant accéder au plan de contrôle GKE avec les réseaux autorisés activés2
Anciens clusters publics ou clusters privés basés sur l'appairage de réseaux VPC
Anciens clusters publics avec un point de terminaison public Désactivé
  • Adresses IP publiques de toutes les VM Compute Engine dans Google Cloud
  • Adresses IP Google Cloud Platform
  • Adresses IP réservées par Google
  • Plages d'adresses IP du cluster GKE
  • Adresses IP publiques Internet autorisées à accéder au point de terminaison IP public du cluster
Anciens clusters privés avec des points de terminaison publics et privés Activé
  • Adresses IP réservées par Google
  • Plages d'adresses IP des clusters GKE (les nœuds, pods et services disposent uniquement d'adresses IP privées).
  • Adresses IP privées du réseau de cluster autorisées à accéder au point de terminaison privé du cluster
  • Adresses IP publiques autorisées à accéder au point de terminaison public du cluster si l'option --enable-private-endpoint est désactivée.
Clusters qui utilisent Private Service Connect
Clusters créés comme publics Désactivé
  • Toutes les adresses IP privées du réseau de cluster (à l'exception des routes d'appairage de réseaux VPC apprises).

Lorsque l'option –enable-google-cloud est définie (par défaut), les adresses IP suivantes peuvent accéder au plan de contrôle GKE :

  • Adresses IP publiques de toutes les VM Compute Engine dans Google Cloud
  • Adresses IP Google Cloud Platform
  • Adresses IP réservées par Google
  • Adresses IP publiques de vos nœuds de cluster GKE.

Lorsque l'option –no-enable-google-cloud est définie, les adresses IP suivantes peuvent accéder au plan de contrôle GKE :

  • Adresses IP réservées par Google
  • Plages d'adresses IP des clusters GKE (les nœuds, pods et services disposent uniquement d'adresses IP privées).

Pour en savoir plus, consultez la page Modifier l'isolation des clusters.

  • Adresses IP publiques autorisées à accéder au point de terminaison public du cluster
Clusters créés comme privés Activé

Les plages d'adresses IP des clusters GKE, telles que les nœuds, les pods et les services, ne disposent que d'adresses IP privées.

Par défaut, lorsque le cluster est créé, –enable-google-cloud est désactivé. Toutefois, lorsque l'option –enable-google-cloud est définie, les adresses IP suivantes peuvent accéder au plan de contrôle GKE :

  • Adresses IP publiques de toutes les VM Compute Engine dans Google Cloud
  • Adresses IP Google Cloud Platform
  • Adresses IP réservées par Google
  • Adresses IP publiques de vos nœuds de cluster GKE.

Lorsque l'option –no-enable-google-cloud est définie, les adresses IP suivantes peuvent accéder au plan de contrôle GKE :

  • Adresses IP réservées par Google
  • Plages d'adresses IP des clusters GKE (les nœuds, pods et services disposent uniquement d'adresses IP privées).

Pour en savoir plus, consultez la page Modifier l'isolation des clusters.

  • Adresses IP publiques autorisées à accéder au point de terminaison public du cluster si l'option --enable-private-endpoint est désactivée.
  • Adresses IP privées du réseau de cluster autorisées à accéder au point de terminaison privé du cluster
  1. Adresses IP pouvant toujours accéder au plan de contrôle GKE, quels que soient les réseaux autorisés activés ou désactivés.

  2. Vous devez ajouter ces adresses IP configurables à la liste d'autorisation pour votre plan de contrôle de cluster.

Limites

  • Si vous développez un sous-réseau utilisé par un cluster avec des réseaux autorisés, vous devez mettre à jour la configuration de réseau autorisé pour inclure la plage d'adresses IP étendue.
  • Le nombre de plages d'adresses IP autorisées que vous pouvez spécifier pour les adresses IP publiques et privées dépend du type de cluster :

    • Cluster public : 50 plages d'adresses IP
    • Cluster privé : 100 plages d'adresses IP
    • Clusters basés sur PSC : 100 plages d'adresses IP

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Créer un cluster avec des réseaux autorisés

Vous pouvez créer un cluster avec un ou plusieurs réseaux autorisés à l'aide de Google Cloud CLI, de la console Google Cloud ou de l'API GKE.

gcloud

Exécutez la commande suivante :

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • CIDR1,CIDR2,... : liste des valeurs CIDR séparées par une virgule pour les réseaux autorisés. Exemple :8.8.8.8/32,8.8.8.0/24

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Dans la section Autopilot ou Standard, cliquez sur Configurer.

  4. Configurez le cluster selon vos besoins.

  5. Dans le menu de navigation, cliquez sur Mise en réseau.

  6. Sous Options de mise en réseau avancées, cochez la case Activer les réseaux autorisés pour le plan de contrôle.

  7. Cliquez sur Ajouter un réseau autorisé.

  8. Saisissez un Nom pour le réseau.

  9. Pour Réseau, saisissez une plage CIDR à laquelle vous souhaitez accorder l'accès au plan de contrôle du cluster.

  10. Cliquez sur OK. Ajoutez d'autres réseaux autorisés selon les besoins.

  11. Cliquez sur Créer.

API

Spécifiez l'objet masterAuthorizedNetworksConfig dans la requête create du cluster :

"masterAuthorizedNetworksConfig": {
  "enabled": true,
  "cidrBlocks": [
    {
      "displayName": string,
      "cidrBlock": string
    }
  ]
}

Pour obtenir plus d'informations, consultez la section sur MasterAuthorizedNetworksConfig.

Vous pouvez configurer un cluster privé avec un ou plusieurs réseaux autorisés. Pour plus d'informations, consultez la page Clusters privés.

Créer un cluster avec un accès limité au plan de contrôle

GKE attribue une adresse IP publique (point de terminaison externe) au plan de contrôle dans les clusters publics. Vous pouvez définir davantage d'isolation pour les clusters publics qui utilisent Private Service Connect pour connecter des nœuds et un plan de contrôle en mode privé. Pour vérifier si votre cluster utilise Private Service Connect, consultez la section Clusters publics avec Private Service Connect.

Vous pouvez créer un cluster et indiquer à GKE de bloquer l'accès au plan de contrôle depuis les origines suivantes :

Vous pouvez créer un cluster et définir l'accès au plan de contrôle à l'aide de Google Cloud CLI ou de la console Google Cloud.

gcloud

Exécutez la commande suivante :

gcloud container clusters create-auto CLUSTER_NAME
    --no-enable-google-cloud-access

Remplacez CLUSTER_NAME par le nom du cluster GKE.

Avec cette commande, l'option no-enable-google-cloud-access empêche le plan de contrôle d'être accessible à partir d'adresses IP appartenant à Google Cloud.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Dans la section Autopilot ou Standard, cliquez sur Configurer.

  4. Configurez le cluster selon vos besoins.

  5. Dans le menu de navigation, cliquez sur Mise en réseau.

  6. Sous Options de mise en réseau avancées, cochez la case Activer les réseaux autorisés pour le plan de contrôle.

  7. Décochez la case Autoriser l'accès via les adresses IP publiques Google Cloud pour empêcher le plan de contrôle d'être accessible à partir d'adresses IP appartenant à Google Cloud.

  8. Cliquez sur Ajouter un réseau autorisé.

  9. Saisissez un Nom pour le réseau.

  10. Pour Réseau, saisissez une plage CIDR à laquelle vous souhaitez accorder l'accès au plan de contrôle du cluster.

  11. Cliquez sur OK. Ajoutez d'autres réseaux autorisés selon les besoins.

  12. Cliquez sur Créer.

Ajouter un réseau autorisé à un cluster existant

Vous pouvez ajouter un réseau autorisé à un cluster existant en utilisant gcloud CLI ou Google Cloud Console.

gcloud

Exécutez la commande suivante :

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom de votre cluster existant.
  • CIDR1,CIDR2,... : liste des valeurs CIDR séparées par une virgule pour les réseaux autorisés. Exemple :8.8.8.8/32,8.8.8.0/24

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Mise en réseau, dans le champ Réseaux autorisés pour le plan de contrôle, cliquez sur Modifier les réseaux autorisés pour le plan de contrôle.

  4. Cochez la case Activer les réseaux autorisés pour le plan de contrôle.

  5. Cliquez sur Ajouter un réseau autorisé.

  6. Saisissez un Nom pour le réseau.

  7. Pour Réseau, saisissez une plage CIDR à laquelle vous souhaitez accorder l'accès au plan de contrôle du cluster.

  8. Cliquez sur OK. Ajoutez d'autres réseaux autorisés selon les besoins.

  9. Cliquez sur Enregistrer les modifications.

API

Spécifiez le champ desiredMasterAuthorizedNetworksConfig dans la requête update du cluster : Dans le champ, spécifiez un objet MasterAuthorizedNetworksConfig :

"desiredMasterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  }

Vérifier un réseau autorisé

Vous pouvez valider un réseau autorisé dans un cluster existant en utilisant gcloud CLI ou Google Cloud Console.

gcloud

Exécutez la commande suivante :

gcloud container clusters describe CLUSTER_NAME

Le résultat ressemble à ce qui suit :

...
masterAuthorizedNetworksConfig:
  cidrBlocks:
  - cidrBlock: 8.8.8.8/32
  - cidrBlock: 8.8.4.4/32
  enabled: true
...

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Mise en réseau, le champ Réseaux autorisés pour le plan de contrôle affiche les plages CIDR autorisées.

API

Envoyez une requête get. Recherchez les blocs CIDR dans le champ masterAuthorizedNetworksConfig. Exemple :

"masterAuthorizedNetworksConfig": {
"enabled": true,
 "cidrBlocks": [
  {
    "displayName": "Office",
    "cidrBlock": "192.0.2.0/24"
  }
]
}

Désactiver les réseaux autorisés

Vous pouvez désactiver les réseaux autorisés pour un cluster existant en utilisant gcloud CLI ou Google Cloud Console.

gcloud

Exécutez la commande suivante :

gcloud container clusters update CLUSTER_NAME \
  --no-enable-master-authorized-networks

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Mise en réseau, dans le champ Réseaux autorisés pour le plan de contrôle, cliquez sur Modifier les réseaux autorisés pour le plan de contrôle.

  4. Décochez la case Activer les réseaux autorisés pour le plan de contrôle.

  5. Cliquez sur Enregistrer les modifications.

Supprimer les réseaux autorisés

gcloud

Exécutez la commande suivante :

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Mise en réseau, dans le champ Réseaux autorisés pour le plan de contrôle, cliquez sur Modifier les réseaux autorisés pour le plan de contrôle.

  4. Cliquez sur Supprimer.

  5. Cliquez sur Save Changes (Enregistrer les modifications).

Dépannage

Dans les sections suivantes, nous vous expliquons comment résoudre les problèmes courants liés aux réseaux autorisés.

Trop de blocs CIDR

gcloud renvoie l'erreur suivante lorsqu'un utilisateur essaie de créer ou de mettre à jour un cluster avec plus de 50 blocs CIDR :

ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args

Pour résoudre ce problème, si votre cluster est public, veillez à ne pas spécifier plus de 50 blocs CIDR. Si votre cluster est privé, spécifiez 100 blocs CIDR au maximum.

Impossible de se connecter au serveur

Les commandes kubectl dépassent le délai en raison de blocs CIDR mal configurés :

Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out

Lorsque vous créez ou mettez à jour un cluster, veillez à spécifier les bons blocs CIDR.

Étapes suivantes