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

Cette page explique comment permettre aux plans de contrôle d'un cluster (maîtres) d'accéder au réseau autorisé dans des clusters Google Kubernetes Engine. Pour obtenir des informations générales sur la mise en réseau GKE, consultez la page Présentation du réseau.

Présentation

Les réseaux autorisés vous donnent la possibilité de spécifier des plages CIDR spécifiques et permettent aux adresses IP de ces plages d'accéder au point de terminaison du plan de contrôle à l'aide du protocole HTTPS. Les réseaux autorisés sont compatibles avec tous les clusters.

GKE utilise TLS (Transport Layer Security) et l'authentification afin de fournir un accès sécurisé au point de terminaison des plans de contrôle du cluster à partir du réseau Internet public. Cela vous donne la possibilité d'administrer votre cluster depuis n'importe où. En utilisant des réseaux autorisés, vous pouvez restreindre davantage l'accès à des ensembles d'adresses IP spécifiés.

Avantages

L'ajout de réseaux autorisés peut offrir des avantages de sécurité supplémentaires à votre cluster. Ces réseaux accordent l'accès à un ensemble d'adresses spécifique que vous désignez, telles que celles provenant de votre environnement. Cela peut aider à protéger l'accès à votre cluster en cas de faille au niveau des systèmes d'authentification ou d'autorisation du cluster.

Avantages avec les clusters privés

Les clusters privés exécutent des nœuds sans adresse IP externe et font éventuellement fonctionner leur plan de contrôle sans point de terminaison accessible publiquement. Sachez également que, par défaut, les clusters privés n'autorisent pas les adresses IP Google Cloud à accéder au point de terminaison du plan de contrôle. L'utilisation de clusters privés avec des réseaux autorisés rend le plan de contrôle accessible uniquement par les plages CIDR autorisées, par les nœuds du VPC du cluster et par les tâches de production internes de Google qui gèrent le plan de contrôle.

Limites

  • Les clusters publics peuvent posséder jusqu'à 50 plages CIDR de réseau autorisées. Les clusters privés peuvent en gérer jusqu'à 100.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

Configurez les paramètres gcloud par défaut à l'aide de l'une des méthodes suivantes :

  • Utilisez gcloud init pour suivre les instructions permettant de définir les paramètres par défaut.
  • Utilisez gcloud config pour définir individuellement l'ID, la zone et la région de votre projet.

Utiliser gcloud init

Si le message d'erreur One of [--zone, --region] must be supplied: Please specify location s'affiche, effectuez les tâches ci-dessous.

  1. Exécutez gcloud init et suivez les instructions :

    gcloud init

    Si vous utilisez SSH sur un serveur distant, utilisez l'option --console-only pour empêcher la commande d'ouvrir un navigateur :

    gcloud init --console-only
  2. Suivez les instructions pour autoriser gcloud à utiliser votre compte Google Cloud.
  3. Créez ou sélectionnez une configuration.
  4. Choisissez un projet Google Cloud.
  5. Choisissez une zone Compute Engine par défaut pour les clusters zonaux ou une région pour les clusters régionaux ou Autopilot.

Utiliser gcloud config

  • Définissez votre ID de projet par défaut :
    gcloud config set project PROJECT_ID
  • Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone COMPUTE_ZONE
  • Si vous utilisez des clusters Autopilot ou régionaux, définissez votre région de calcul par défaut :
    gcloud config set compute/region COMPUTE_REGION
  • Mettez à jour gcloud vers la dernière version :
    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 l'outil gcloud, de Google Cloud Console ou de l'API GKE.

gcloud

Exécutez la commande suivante :

gcloud container clusters create cluster-name \
    --enable-master-authorized-networks \
    --master-authorized-networks cidr1,cidr2...

Remplacez les éléments suivants :

  • cluster-name : doit correspondre au nom de votre cluster existant.
  • cidr1, cidr2 : valeurs CIDR des réseaux autorisés.

Avec l'option --master-authorized-networks, vous pouvez spécifier des plages CIDR séparées par des virgules (par exemple, 8.8.8.0/24) auxquelles vous souhaitez accorder l'accès au point de terminaison du plan de contrôle du cluster via HTTPS.

Exemple :

gcloud container clusters create example-cluster \
    --enable-master-authorized-networks \
    --master-authorized-networks 8.8.8.8/32,8.8.8.0/24

Console

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

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Configurez le cluster selon vos besoins.

  4. Dans le volet de navigation, sous Cluster, cliquez sur Réseau.

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

  6. Cliquez sur Add authorized network (Ajouter un réseau autorisé).

  7. Saisissez un Nom pour le réseau.

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

  9. Cliquez sur OK. Ajoutez des réseaux autorisés, si vous le souhaitez.

  10. 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.

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

Pour découvrir comment créer un cluster privé avec un ou plusieurs réseaux autorisés, consultez la page sur les clusters privés.

Ajouter un réseau autorisé à un cluster existant

Vous pouvez ajouter un réseau autorisé à un cluster existant à l'aide de l'outil de ligne de commande gcloud ou de 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 : doit correspondre au nom de votre cluster existant.
  • cidr1, cidr2 : valeurs CIDR des réseaux autorisés.

Avec l'option --master-authorized-networks, vous pouvez spécifier des plages CIDR séparées par des virgules (par exemple, 8.8.8.0/24) auxquelles vous souhaitez accorder l'accès au point de terminaison du plan de contrôle du cluster via HTTPS.

Exemple :

gcloud container clusters update example-cluster \
    --enable-master-authorized-networks \
    --master-authorized-networks 8.8.8.8/32,8.8.8.0/24

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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 Add authorized network (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 des réseaux autorisés, si vous le souhaitez.

  9. Cliquez sur Save Changes (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 à l'aide de l'outil de ligne de commande gcloud ou de Cloud Console.

gcloud

Exécutez la commande suivante :

gcloud container clusters describe cluster-name

Dans le résultat de la commande, recherchez le champ masterAuthorizedNetworksConfig :

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

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu Google Kubernetes Engine

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

  3. Sous Mise en réseau, notez que 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 à l'aide de l'outil de ligne de commande gcloud ou de Cloud Console.

gcloud

Exécutez la commande suivante :

gcloud container clusters update cluster-name \
    --no-enable-master-authorized-networks

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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 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