Endpoint del server API del cluster - Amazon EKS

Contribuisci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Endpoint del server API del cluster

Questo argomento consente di abilitare l’accesso privato per l’endpoint del server API Kubernetes del cluster Amazon EKS e limitare, o disabilitare completamente, l’accesso pubblico in modo che non sia accessibile da Internet.

Quando si crea un nuovo cluster, Amazon EKS crea un endpoint per il server API Kubernetes gestito utilizzato per comunicare con il cluster (usando strumenti di gestione Kubernetes, ad esempio kubectl). Per impostazione predefinita, questo endpoint del server API è pubblico su Internet e l'accesso al server API è protetto utilizzando una combinazione di AWS Identity and Access Management (IAM) e RBAC (Role Based Access Control) nativo di Kubernetes. Questo endpoint è noto come l’endpoint pubblico del cluster. Esiste anche un endpoint privato del cluster. Per maggiori informazioni sull’endpoint privato del cluster, consulta la sezione Endpoint privato del cluster seguente.

formato dell’endpoint del cluster IPv6

EKS crea un endpoint dual-stack unico nel seguente formato per i nuovi cluster IPv6 creati dopo ottobre 2024. Un IPv6 cluster è un cluster selezionato IPv6 nell'impostazione della famiglia IP () del cluster. ipFamily

Esempio
AWS

public/private Endpoint del cluster EKS: eks-cluster.region.api.aws

AWS GovCloud (US)

public/private Endpoint del cluster EKS: eks-cluster.region.api.aws

Amazon Web Services in China

public/private Endpoint del cluster EKS: eks-cluster.region.api.amazonwebservices.com.rproxy.govskope.ca.cn

Nota

L’endpoint del cluster dual-stack è stato introdotto nell’ottobre 2024. Per ulteriori informazioni sui cluster IPv6, consulta Scopri IPv6 gli indirizzi di cluster, pod e servizi. I cluster creati prima di ottobre 2024 usano invece il seguente formato di endpoint.

formato dell’endpoint del cluster IPv4

EKS crea un endpoint unico nel seguente formato per ogni cluster che seleziona IPv4 nell’impostazione della famiglia IP (ipFamily) del cluster:

Esempio
AWS

Endpoint del cluster public/private EKS eks-cluster.region.eks.amazonaws.com

AWS GovCloud (US)

Endpoint del cluster public/private EKS eks-cluster.region.eks.amazonaws.com

Amazon Web Services in China

Endpoint del cluster public/private EKS eks-cluster.region.amazonwebservices.com.rproxy.govskope.ca.cn

Nota

Prima di ottobre 2024, anche i cluster IPv6 usavano questo formato di endpoint. Per questi cluster, sia l’endpoint pubblico che l’endpoint privato dispongono solo di indirizzi IPv4 risolti da questo endpoint.

Endpoint privato del cluster

Puoi abilitare l’accesso privato al server API Kubernetes in modo che tutte le comunicazioni tra i nodi di lavoro e il server API rimangano all’interno del VPC. È possibile limitare gli indirizzi IP che possono accedere al server API da Internet o disabilitare completamente l’accesso a Internet al server API.

Nota

Poiché questo endpoint è destinato al server API Kubernetes e non a un AWS PrivateLink endpoint tradizionale per la comunicazione con un' AWS API, non viene visualizzato come endpoint nella console Amazon VPC.

Quando si abilita l’accesso privato all’endpoint per il cluster, Amazon EKS crea una zona ospitata privata Route 53 per conto dell’utente e la associa al VPC del cluster. Questa zona ospitata privata è gestita da Amazon EKS e non viene visualizzata nelle risorse Route 53 dell’account. Affinché la zona ospitata privata instradi correttamente il traffico verso il tuo server API, il VPC deve avere enableDnsHostnames e enableDnsSupport impostati su true e le opzioni DHCP impostate per il VPC devono includere AmazonProvidedDNS nell'elenco dei server dei nomi di dominio. Per ulteriori informazioni, consultare Visualizzazione e aggiornamento del supporto DNS per il VPC nella Guida per l'utente di Amazon VPC.

È possibile definire i requisiti di accesso all'endpoint del server API quando si crea un nuovo cluster e aggiornare l'accesso endpoint del server API per un cluster in qualsiasi momento.

Modifica dell'accesso all'endpoint del cluster

Utilizza le procedure in questa sezione per modificare l'accesso all'endpoint per un cluster esistente. La tabella seguente mostra le combinazioni di accesso all'endpoint del server API supportate e il comportamento associato.

Accesso pubblico all'endpoint Accesso privato all'endpoint Comportamento

Abilitato

Disabilitato

  • Questo è il comportamento di default per nuovi cluster Amazon EKS.

  • Le richieste API Kubernetes provenienti dal VPC del cluster (ad esempio, comunicazione tra nodo e piano di controllo) lasciano il VPC ma non la rete Amazon.

  • Il server API del cluster è accessibile da Internet. Facoltativamente, puoi utilizzare l'elenco degli accessi pubblici CIDRs per controllare l'accesso all'endpoint pubblico tramite un elenco di blocchi CIDR. Se limiti l'accesso a blocchi CIDR specifici, ti consigliamo di abilitare anche l'endpoint privato o di assicurarti che i blocchi CIDR specificati includano gli indirizzi da cui i nodi e i Fargate Pod (se li usi) accedono all'endpoint pubblico.

Abilitato

Abilitato

  • Le richieste API Kubernetes all’interno del VPC del cluster (ad esempio, comunicazione tra nodo di lavoro e piano di controllo) utilizzano l’endpoint VPC privato. Utilizzate le regole del gruppo di sicurezza del cluster per controllare l'accesso all'endpoint privato.

  • Il server API del cluster è accessibile da Internet. È possibile, facoltativamente, utilizzare l'elenco degli accessi pubblici CIDRs per controllare l'accesso all'endpoint pubblico tramite un elenco di blocchi CIDR.

  • Se utilizzi nodi ibridi con il tuo cluster Amazon EKS, non è consigliabile abilitare l'accesso pubblico e privato agli endpoint. Dato che i nodi ibridi sono in esecuzione all’esterno del VPC, risolveranno l’endpoint del cluster negli indirizzi IP pubblici. Si consiglia di utilizzare l'accesso pubblico o privato agli endpoint per i cluster con nodi ibridi.

Disabilitato

Abilitato

  • Tutto il traffico verso il server API del cluster deve provenire dal VPC del cluster o da una rete connessa.

  • Non esiste alcun accesso pubblico al server API da Internet. Tutti i comandi kubectl devono provenire dall'interno del VPC o da una rete connessa. Per le opzioni di connettività, consultare Accesso a un server API solo privato.

  • Si utilizzano le regole del gruppo di sicurezza del cluster per controllare l'accesso all'endpoint privato. Tieni presente che l'accesso pubblico CIDRs non influisce sull'endpoint privato.

  • L’endpoint del server API del cluster viene risolto dai server DNS pubblici a un indirizzo IP privato dal VPC. In passato, l'endpoint poteva essere risolto solo dall'interno del VPC.

    Se l'endpoint non viene risolto in un indirizzo IP privato all'interno del VPC per un cluster esistente, è possibile:

    • Abilitare l'accesso pubblico e quindi disabilitarlo di nuovo. È necessario farlo solo una volta per un cluster e l'endpoint si risolverà in un indirizzo IP privato da quel punto in avanti.

    • Aggiornare il cluster.

Controlli di accesso agli endpoint

Tieni presente che ciascuno dei seguenti metodi per controllare l'accesso agli endpoint influisce solo sul rispettivo endpoint.

Gruppo di sicurezza del cluster

Il gruppo di sicurezza del cluster controlla due tipi di connessioni: connessioni all'API Kubelet e all'endpoint privato. Le connessioni all'kubeletAPI vengono utilizzate nei comandikubectl attach,, kubectl cp kubectl execkubectl logs, e. kubectl port-forward Il gruppo di sicurezza del cluster non influisce sull'endpoint pubblico.

Accesso pubblico CIDRs

L'accesso pubblico CIDRs controlla l'accesso all'endpoint pubblico tramite un elenco di blocchi CIDR. Tieni presente che l'accesso pubblico CIDRs non influisce sull'endpoint privato. L'accesso pubblico CIDRs si comporta in modo diverso nei IPv6 cluster e nei IPv4 cluster a seconda della data di creazione, descritta di seguito:

Blocchi CIDR nell’endpoint pubblico (cluster IPv6)

Puoi aggiungere blocchi IPv6 e IPv4 CIDR all’endpoint pubblico di un cluster IPv6, in quanto l’endpoint pubblico è dual-stack. Questo vale solo per i nuovi cluster con ipFamily impostato su IPv6 creati a ottobre 2024 o successivamente. Puoi identificare questi cluster in base al nuovo nome di dominio dell’endpoint api.aws.

Blocchi CIDR nell’endpoint pubblico (cluster IPv4)

Puoi aggiungere blocchi CIDR IPv4 all’endpoint pubblico di un cluster IPv4. Non puoi aggiungere blocchi CIDR IPv6 all’endpoint pubblico di un cluster IPv4. Se provi a farlo, EKS restituirà il seguente messaggio di errore: The following CIDRs are invalid in publicAccessCidrs

Blocchi CIDR nell’endpoint pubblico (cluster IPv6 creato prima di ottobre 2024)

Puoi aggiungere blocchi CIDR IPv4 all’endpoint pubblico dei cluster IPv6 precedenti creati prima di ottobre 2024. Puoi identificare questi cluster in base all’endpoint eks.amazonaws.com. Non puoi aggiungere blocchi CIDR IPv6 all’endpoint pubblico dei cluster IPv6 precedenti creati prima di ottobre 2024. Se provi a farlo, EKS restituirà il seguente messaggio di errore: The following CIDRs are invalid in publicAccessCidrs

Accesso a un server API solo privato

Se è stato disabilitato l’accesso pubblico all’endpoint del server API Kubernetes del cluster, è possibile accedere al server di API solo dal VPC o da una rete connessa. Di seguito sono elencati alcuni possibili modi per accedere all'endpoint del server API Kubernetes:

Rete connessa

È possibile connettere la rete al VPC con un gateway di transito AWS o un'altra opzione di connettività e quindi utilizzare un computer nella rete connessa. Il gruppo di sicurezza del piano di controllo di Amazon EKS deve contenere le regole per consentire il traffico in ingresso sulla porta 443 dalla rete connessa.

Host Amazon EC2 Bastion

Puoi avviare un' EC2 istanza Amazon in una sottorete pubblica nel VPC del cluster e quindi accedere tramite SSH a quell'istanza per eseguire i comandi. kubectl Per ulteriori informazioni, consultare Bastion host Linux in AWS. Il gruppo di sicurezza del piano di controllo di Amazon EKS deve contenere le regole per consentire il traffico in ingresso sulla porta 443 dal bastion host. Per ulteriori informazioni, consulta Visualizzazione dei requisiti relativi al gruppo di sicurezza Amazon EKS per cluster.

Quando esegui la configurazione kubectl per il tuo host bastion, assicurati di utilizzare AWS le credenziali già mappate alla configurazione RBAC del cluster oppure aggiungi il principale IAM che verrà utilizzato dal tuo bastion alla configurazione RBAC prima di rimuovere l'accesso pubblico agli endpoint. Per ulteriori informazioni, consultare Concedi agli utenti e ai ruoli IAM l'accesso a Kubernetes APIs e Accesso negato o non autorizzato (kubectl).

AWS Cloud9 IDE

AWS Cloud9 è un ambiente di sviluppo integrato (IDE) basato su cloud che consente di scrivere, eseguire ed eseguire il debug del codice con un semplice browser. Puoi creare un IDE AWS Cloud9 nel VPC del cluster e utilizzare l'IDE per comunicare con il cluster. Per ulteriori informazioni, consulta Creazione di un ambiente in AWS Cloud9. È necessario assicurarsi che il gruppo di sicurezza del piano di controllo Amazon EKS contenga regole per consentire il traffico in ingresso sulla porta 443 dal gruppo di sicurezza IDE. Per ulteriori informazioni, consulta Visualizzazione dei requisiti relativi al gruppo di sicurezza Amazon EKS per cluster.

Quando esegui la configurazione kubectl per il tuo AWS IDE Cloud9, assicurati di AWS utilizzare credenziali già mappate alla configurazione RBAC del cluster o aggiungi il principale IAM che l'IDE utilizzerà alla configurazione RBAC prima di rimuovere l'accesso pubblico agli endpoint. Per ulteriori informazioni, consultare Concedi agli utenti e ai ruoli IAM l'accesso a Kubernetes APIs e Accesso negato o non autorizzato (kubectl).

📝 Modifica questa pagina su GitHub