Passer au contenu

Comment accéder en toute sécurité au point de terminaison du serveur API du cluster Amazon EKS depuis un VPC ou un VPC appairé ?

Lecture de 5 minute(s)
0

Je souhaite accéder en toute sécurité au point de terminaison du serveur API du cluster Amazon Elastic Kubernetes Service (Amazon EKS) depuis un Amazon Virtual Private Cloud (Amazon VPC) ou un VPC appairé.

Brève description

Lorsque vous créez un nouveau cluster Amazon EKS, Amazon EKS crée un point de terminaison pour le serveur API Kubernetes géré. Par défaut, le point de terminaison du serveur API est public sur Internet. Le système utilise une combinaison de Gestion des identités et des accès AWS (AWS IAM) et du contrôle d'accès basé sur les rôles (RBAC) Kubernetes natif pour sécuriser l'accès au serveur API. Pour en savoir plus, consultez la page Utilisation de l’autorisation RBAC du site Web de Kubernetes.

Pour accéder en toute sécurité à votre cluster Amazon EKS depuis un VPC ou un VPC appairé, vous devez configurer un point de terminaison privé. Pour plus d'informations sur les bonnes pratiques, consultez la section Bonnes pratiques en matière de sécurité.

Résolution

Activez l'accès privé au serveur API Kubernetes afin que toutes les communications entre vos nœuds et le serveur API restent au sein de votre VPC. Vous pouvez limiter les adresses IP qui peuvent accéder à votre serveur API depuis Internet ou désactiver complètement l'accès Internet au serveur API.

Lorsque vous activez l'accès privé au point de terminaison, le cluster Amazon EKS se comporte comme suit :

  • Tout le trafic vers le serveur API de votre cluster provient du VPC de votre cluster ou d'un réseau connecté.
  • Votre serveur API n'a aucun accès public depuis Internet. Toutes les commandes kubectl s’exécutent depuis le VPC ou un réseau connecté. Pour les options de connectivité, consultez la section Accès à un serveur API privé uniquement.
  • Les serveurs DNS publics résolvent le point de terminaison du serveur API du cluster en adresse IP privée provenant du VPC.

Si votre point de terminaison n'est pas résolu en adresse IP privée au sein du VPC pour un cluster existant, effectuez l'une des actions suivantes :

  • Activez l'accès public, puis désactivez-le à nouveau. Vous n'avez besoin d’effectuer cette opération qu'une seule fois pour qu'un cluster du point de terminaison soit résolu en adresse IP privée.
  • Mettez à jour votre cluster.

Lorsque vous désactivez l'accès public pour le point de terminaison du serveur API Kubernetes de votre cluster, vous ne pouvez accéder au serveur API que depuis votre VPC ou un réseau connecté. Vous pouvez accéder au point de terminaison du serveur API Kubernetes de l'une des manières suivantes :

  • Connectez votre réseau au VPC à l'aide d'une passerelle de transit ou d'une autre option de connectivité, puis utilisez un ordinateur du réseau connecté. Assurez-vous que le groupe de sécurité de votre plan de contrôle Amazon EKS contient des règles qui autorisent le trafic entrant sur le port 443 depuis votre réseau connecté.
  • Lancez une instance Amazon Elastic Compute Cloud (Amazon EC2) dans un sous-réseau public du VPC de votre cluster. Puis, utilisez SSH pour vous connecter à cette instance afin d'exécuter les commandes kubectl. Pour plus d'informations, consultez la section Accéder à un hôte bastion à l'aide de Session Manager et d'Amazon EC2 Instance Connect.

Utilisez la console de gestion AWS pour modifier l'accès au point de terminaison du serveur API de votre cluster

  1. Ouvrez la console Amazon EKS.
  2. Sélectionnez le nom du cluster pour afficher les informations correspondante.
  3. Ouvrez l'onglet Mise en réseau, puis sélectionnez Mettre à jour.
  4. Choisissez d'activer ou de désactiver l'accès privé pour le point de terminaison du serveur API Kubernetes de votre cluster. Si vous activez l'accès privé, les requêtes d'API Kubernetes provenant du VPC de votre cluster utilisent le point de terminaison de VPC privé. Pour désactiver l'accès public, vous devez d'abord activer l'accès privé.
  5. Choisissez d'activer ou de désactiver l'accès public pour le point de terminaison du serveur API Kubernetes de votre cluster. Si vous désactivez l'accès public, le serveur API Kubernetes de votre cluster peut uniquement recevoir des demandes provenant du VPC du cluster.
  6. Sélectionnez Mettre à jour.

Modifier l'accès au point de terminaison du serveur API de votre cluster à l’aide de l’AWS CLI

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

Pour désactiver l'accès public au point de terminaison et activer l'accès privé au point de terminaison pour un cluster, exécutez la commande suivante :

aws eks update-cluster-config --name example \
--resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true

Remarque : Remplacez example par le nom de votre cluster.

Exemple de sortie :

{
    "update": {
        "id": "ec883c93-2e9e-407c-a22f-8f6fa6e67d4f",
        "status": "InProgress",
        "type": "EndpointAccessUpdate",
        "params": [
            {
                "type": "EndpointPublicAccess",
                "value": "false"
            },
            {
                "type": "EndpointPrivateAccess",
                "value": "true"
            }
        ],
        "createdAt": 1565806986.506,
        "errors": []
    }
}

Si vous activez l'accès privé, les requêtes d'API Kubernetes provenant du VPC de votre cluster utilisent le point de terminaison de VPC privé. La valeur par défaut du paramètre est faux, ce qui entraîne la désactivation de l'accès privé à votre serveur API Kubernetes. Pour plus d'informations, consultez la section update-cluster-config.

AWS OFFICIELA mis à jour il y a 2 mois