Aiutaci 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à.
Questo argomento ti aiuta a abilitare l'accesso privato per l'endpoint del server API Kubernetes del tuo cluster Amazon EKS e a limitare o disabilitare completamente l'accesso pubblico 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.
IPv6
formato dell'endpoint del cluster
EKS crea un endpoint dual-stack unico nel seguente formato per i nuovi IPv6
cluster creati dopo ottobre 2024. Un IPv6 cluster è un cluster selezionato IPv6
nell'impostazione della famiglia IP () ipFamily
del cluster.
Nota
L'endpoint del cluster dual-stack è stato introdotto nell'ottobre 2024. Per ulteriori informazioni sui cluster, vedere. IPv6
Scopri IPv6 gli indirizzi di cluster, pod e servizi Per i cluster creati prima di ottobre 2024, utilizzate invece il seguente formato di endpoint.
IPv4
formato degli endpoint del cluster
EKS crea un endpoint univoco nel seguente formato per ogni cluster selezionato IPv4
nell'impostazione della famiglia IP (IPFamily) del cluster:
Nota
Prima di ottobre 2024, anche IPv6
i cluster utilizzavano questo formato di endpoint. Per questi cluster, sia l'endpoint pubblico che l'endpoint privato dispongono solo IPv4
di indirizzi 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 abiliti l'accesso privato agli endpoint per il tuo cluster, Amazon EKS crea una zona ospitata privata Route 53 per tuo conto e la associa al VPC del cluster. Questa zona ospitata privata è gestita da Amazon EKS e non compare nelle risorse Route 53 del tuo 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 |
|
Abilitato |
Abilitato |
|
Disabilitato |
Abilitato |
|
È possibile modificare l'accesso agli endpoint del server API del cluster utilizzando AWS Management Console o la AWS CLI.
Configura l'accesso agli endpoint - console AWS
-
Aprire la Console Amazon EKS
. -
Scegliere il nome del cluster per visualizzare le informazioni sul cluster.
-
Scegli la scheda Rete e scegli Gestisci l'accesso agli endpoint.
-
Per l'accesso privato, scegli se abilitare o disabilitare l'accesso privato per l'endpoint del server API Kubernetes del tuo cluster. Se abiliti l'accesso privato, le richieste API Kubernetes che provengono dal VPC del cluster utilizzano l'endpoint VPC privato. Per disabilitare l'accesso pubblico è necessario abilitare l'accesso privato.
-
Per l'accesso pubblico, scegli se abilitare o disabilitare l'accesso pubblico per l'endpoint del server API Kubernetes del cluster. Se disabiliti l'accesso pubblico, il server API Kubernetes del tuo cluster può ricevere richieste solo dall'interno del VPC del cluster.
-
(Facoltativo) Se hai abilitato l'accesso pubblico, puoi specificare quali indirizzi da Internet possono comunicare con l'endpoint pubblico. Selezionare Advanced settings (Impostazioni avanzate). Immettere un blocco CIDR, ad esempio
203.0.113.5/32
. Il blocco non può includere indirizzi riservati. È possibile immettere blocchi aggiuntivi selezionando Add Source (Aggiungi origine). È possibile specificare un numero massimo di blocchi CIDR. Per ulteriori informazioni, consulta Visualizza e gestisci le quote dei servizi Amazon EKS e Fargate. Se non si specificano blocchi, l'endpoint del server API pubblico riceve richieste da tutti gli indirizzi IP ( 0.0.0.0/0
). Se limiti l'accesso al tuo endpoint pubblico utilizzando blocchi CIDR, ti consigliamo di abilitare anche l'accesso privato agli endpoint in modo che i nodi e i Fargate Pod (se li usi) possano comunicare con il cluster. Senza l'endpoint privato abilitato, le origini CIDR dell'endpoint di accesso pubblico devono includere le origini di uscita dal VPC. Ad esempio, se si dispone di un nodo in una sottorete privata che comunica su Internet tramite un gateway NAT, sarà necessario aggiungere l'indirizzo IP in uscita del gateway NAT come parte di un blocco CIDR nella whitelist nell'endpoint pubblico. -
Scegliere Update (Aggiorna) per terminare.
Configurazione dell'accesso agli endpoint - AWS CLI
Completa i seguenti passaggi utilizzando la versione AWS CLI 1.27.160
o successiva. È possibile verificare la versione corrente con aws --version
. Per installare o aggiornare la AWS CLI, vedi Installazione della AWS CLI.
-
Aggiorna l'accesso agli endpoint del server API del cluster con il seguente comando AWS CLI. Sostituire il nome del cluster e i valori di accesso dell'endpoint desiderati. Se si imposta
endpointPublicAccess=true
, è possibile (facoltativamente) immettere un singolo blocco CIDR o un elenco separato da virgole di blocchi CIDR perpublicAccessCidrs
. I blocchi non possono includere indirizzi riservati. Se si specificano blocchi CIDR, l'endpoint del server API pubblico riceverà solo le richieste dai blocchi elencati. È possibile specificare un numero massimo di blocchi CIDR. Per ulteriori informazioni, consulta Visualizza e gestisci le quote dei servizi Amazon EKS e Fargate. Se limiti l'accesso al tuo endpoint pubblico utilizzando blocchi CIDR, ti consigliamo di abilitare anche l'accesso privato agli endpoint in modo che i nodi e i Fargate Pod (se li usi) possano comunicare con il cluster. Senza l'endpoint privato abilitato, le origini CIDR dell'endpoint di accesso pubblico devono includere le origini di uscita dal VPC. Ad esempio, se si dispone di un nodo in una sottorete privata che comunica su Internet tramite un gateway NAT, sarà necessario aggiungere l'indirizzo IP in uscita del gateway NAT come parte di un blocco CIDR nella whitelist nell'endpoint pubblico. Se non si specificano blocchi CIDR, l'endpoint del server API pubblico riceve richieste da tutti gli indirizzi IP (0.0.0.0/0). Nota
Il comando seguente consente l'accesso privato e l'accesso pubblico da un singolo indirizzo IP per l'endpoint del server API. Sostituire
203.0.113.5/32
con un singolo blocco CIDR o un elenco separato da virgole di blocchi CIDR a cui si desidera limitare l'accesso alla rete.aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32",endpointPrivateAccess=true
Di seguito viene riportato un output di esempio:
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "InProgress", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
-
Monitorare lo stato di aggiornamento dell'accesso all'endpoint con il comando seguente, utilizzando il nome del cluster, e aggiornare l'ID restituito dal comando precedente. L'aggiornamento è completo quando lo stato è illustrato come
Successful
.aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000
Di seguito viene riportato un output di esempio:
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "Successful", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
Accesso a un server API solo privato
Se hai disabilitato l'accesso pubblico per l'endpoint del server API Kubernetes del tuo cluster, puoi accedere al server API solo dal tuo 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 Visualizza i requisiti dei gruppi di sicurezza Amazon EKS per i 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, consulta Concedi agli utenti e ai ruoli IAM l'accesso a Kubernetes APIs e Accesso negato o non autorizzato (kubectl). - AWS IDE Cloud9
-
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 Visualizza i requisiti dei gruppi di sicurezza Amazon EKS per i 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, consulta Concedi agli utenti e ai ruoli IAM l'accesso a Kubernetes APIs e Accesso negato o non autorizzato (kubectl).