Salta al contenuto

Come posso accedere in modo sicuro all'endpoint del server API del cluster Amazon EKS dall'interno di un VPC o di un VPC in peering?

4 minuti di lettura
0

Desidero accedere in modo sicuro all'endpoint del server API del cluster Amazon Elastic Kubernetes Service (Amazon EKS) dall'interno di un Amazon Virtual Private Cloud (Amazon VPC) o di un VPC in peering.

Breve descrizione

Quando crei un nuovo cluster Amazon EKS, Amazon EKS crea un endpoint per il server API Kubernetes gestito. Per impostazione predefinita, l'endpoint del server API è pubblico su Internet. Il sistema utilizza una combinazione di AWS Identity and Access Management (AWS IAM) e Role Based Access Control (RBAC) Kubernetes nativo per proteggere l'accesso al server API. Per ulteriori informazioni, consulta Using RBAC authorization (Utilizzo dell'autorizzazione RBAC) sul sito web Kubernetes.

Per accedere in modo sicuro al cluster Amazon EKS dall'interno di un VPC o di un VPC in peering, devi configurare un endpoint privato. Per ulteriori informazioni sulle best practice, consulta Best practice per la sicurezza.

Risoluzione

Attiva l'accesso privato al server API Kubernetes in modo che tutte le comunicazioni tra i nodi e il server API rimangano all'interno del VPC. Puoi limitare gli indirizzi IP che possono accedere al server API da Internet o disattivare completamente l'accesso a Internet al server API.

Quando attivi l'accesso privato all'endpoint, il cluster Amazon EKS si comporta come segue:

  • Tutto il traffico verso il server API del cluster proviene dal VPC del cluster o da una rete connessa.
  • Il server API non ha accesso pubblico da Internet. Qualsiasi comando kubectl viene eseguito dall'interno del VPC o da una rete connessa. Per le opzioni di connettività, consulta Accesso a un server API solo privato.
  • I server DNS pubblici risolvono l'endpoint del server API del cluster in un indirizzo IP privato dal VPC.

Se l'endpoint non si risolve in un indirizzo IP privato all'interno del VPC per un cluster esistente, intraprendi una delle seguenti azioni:

  • Attiva l'accesso pubblico, quindi disattivalo di nuovo. Devi eseguire questa operazione una sola volta per consentire a un cluster di risolvere l'endpoint in un indirizzo IP privato.
  • Aggiorna il cluster.

Quando disattivi l'accesso pubblico per l'endpoint del server API Kubernetes del cluster, puoi accedere al server API solo dall'interno del VPC o da una rete connessa. Puoi accedere all'endpoint del server API Kubernetes in uno dei seguenti modi:

  • Connetti la rete al VPC con un gateway di transito o un'altra opzione di connettività, quindi utilizza un computer nella rete connessa. Assicurati che il gruppo di sicurezza del piano di controllo (control-plane) Amazon EKS contenga regole che consentano il traffico in ingresso sulla porta 443 dalla rete connessa.
  • Avvia un'istanza Amazon Elastic Compute Cloud (Amazon EC2) in una sottorete pubblica nel VPC del cluster. Quindi utilizza SSH per accedere all'istanza per eseguire i comandi kubectl. Per ulteriori informazioni, consulta Accedi a un host bastion utilizzando Gestione sessione e Amazon EC2 Instance Connect.

Utilizza la Console di gestione AWS per modificare l'accesso agli endpoint del server API del cluster

  1. Apri la console Amazon EKS.
  2. Seleziona il nome del cluster per visualizzarne le informazioni.
  3. Apri la scheda Rete, quindi scegli Aggiorna.
  4. Scegli se attivare o disattivare l'accesso privato per l'endpoint del server API Kubernetes del cluster. Se attivi l'accesso privato, le richieste API Kubernetes che provengono dal VPC del cluster utilizzano l'endpoint VPC privato. Per disattivare l'accesso pubblico, devi prima attivare l'accesso privato.
  5. Scegli se attivare o disattivare l'accesso pubblico per l'endpoint del server API Kubernetes del cluster. Se disattivi l'accesso pubblico, il server API Kubernetes del cluster può ricevere richieste solo dall'interno del cluster VPC.
  6. Seleziona Aggiorna.

Utilizza AWS CLI per modificare l'accesso agli endpoint del server API del cluster

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per disattivare l'accesso pubblico all'endpoint e attivare l'accesso privato all'endpoint per un cluster, esegui questo comando:

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

Nota: sostituisci example con il nome del tuo cluster.

Esempio di output:

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

Se attivi l'accesso privato, le richieste API Kubernetes dall'interno del VPC del cluster utilizzano l'endpoint VPC privato. Il valore predefinito per il parametro è false, che disattiva l'accesso privato per il server API Kubernetes. Per ulteriori informazioni, consulta update-cluster-config.

AWS UFFICIALEAggiornata 2 mesi fa