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à.
Controlla l'accesso alla rete all'endpoint API del server del cluster
Questo argomento ti aiuta ad abilitare l'accesso privato per i tuoi EKS cluster Amazon Kubernetes APIendpoint del server e limita o disabilita completamente l'accesso pubblico da Internet.
Quando crei un nuovo cluster, Amazon EKS crea un endpoint per il cluster gestito Kubernetes APIserver che usi per comunicare con il tuo cluster (utilizzando Kubernetes strumenti di gestione comekubectl
). Per impostazione predefinita, questo endpoint del API server è pubblico su Internet e l'accesso al API server è protetto utilizzando una combinazione di AWS Identity and Access Management (IAM) e nativa Kubernetes Controllo degli accessi basato sui ruoli
IPv6
formato dell'endpoint del cluster
EKScrea un endpoint dual-stack unico nel seguente formato per i nuovi IPv6
cluster creati dopo ottobre 2024. Un IPv6cluster è 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 verso i cluster, podse servizi Per i cluster creati prima di ottobre 2024, utilizzate invece il seguente formato di endpoint.
IPv4
formato degli endpoint del cluster
EKScrea 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
È possibile abilitare l'accesso privato a Kubernetes APIserver in modo che tutte le comunicazioni tra i tuoi nodi e il API server rimangano all'interno del tuoVPC. Puoi limitare gli indirizzi IP che possono accedere al tuo API server da Internet o disabilitare completamente l'accesso da Internet al API server.
Nota
Perché questo endpoint è per Kubernetes APIserver e non un AWS PrivateLink endpoint tradizionale per la comunicazione con un AWS API, non appare 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 a quella del tuo cluster. VPC Questa zona ospitata privata è gestita da Amazon EKS e non compare nelle risorse Route 53 del tuo account. Affinché la zona ospitata privata possa indirizzare correttamente il traffico verso il tuo API server, VPC devi averetrue
, enableDnsSupport
impostare enableDnsHostnames
e includere le DHCP opzioni impostate AmazonProvidedDNS
nell'elenco dei server con nomi di dominio. VPC Per ulteriori informazioni, consulta Updating DNS support for your VPC nella Amazon VPC User Guide.
Puoi definire i requisiti di accesso agli endpoint del API server quando crei un nuovo cluster e puoi aggiornare l'accesso agli endpoint del API server 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 agli endpoint API del server supportate e il relativo comportamento.
Accesso pubblico all'endpoint | Accesso privato all'endpoint | Comportamento |
---|---|---|
Abilitato |
Disabilitato |
|
Abilitato |
Abilitato |
|
Disabilitato |
Abilitato |
|
È possibile modificare l'accesso agli endpoint API del server del AWS Management Console cluster utilizzando o. AWS CLI
Configura l'accesso agli endpoint - console AWS
-
Apri la EKSconsole Amazon
. -
Scegliere il nome del cluster per visualizzare le informazioni sul cluster.
-
Scegliere la scheda Reti, quindi Aggiorna.
-
Per l'accesso privato, scegli se abilitare o disabilitare l'accesso privato per i tuoi cluster Kubernetes APIendpoint del server. Se abiliti l'accesso privato, Kubernetes APIle richieste che provengono dall'interno del cluster VPC utilizzano l'VPCendpoint privato. Per disabilitare l'accesso pubblico è necessario abilitare l'accesso privato.
-
Per l'accesso pubblico, scegli se abilitare o disabilitare l'accesso pubblico per il tuo cluster Kubernetes APIendpoint del server. Se disabiliti l'accesso pubblico, quello del tuo cluster Kubernetes APIil server può ricevere richieste solo dall'interno del clusterVPC.
-
(Facoltativo) Se hai abilitato l'accesso pubblico, puoi specificare quali indirizzi da Internet possono comunicare con l'endpoint pubblico. Selezionare Advanced settings (Impostazioni avanzate). Inserisci un CIDR blocco, 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 CIDR blocchi. Per ulteriori informazioni, consulta Visualizza e gestisci le quote dei EKS servizi Amazon e Fargate. Se non si specifica alcun blocco, l'endpoint del API server pubblico riceve le richieste da tutti gli ( 0.0.0.0/0
) indirizzi IP. Se limiti l'accesso al tuo endpoint pubblico utilizzando i CIDR blocchi, ti consigliamo di abilitare anche l'accesso privato agli endpoint in modo che nodi e Fargate Pods (se li usi) può comunicare con il cluster. Senza l'endpoint privato abilitato, le sorgenti degli endpoint ad accesso pubblico devono includere CIDR le sorgenti di uscita provenienti dal tuo. VPC Ad esempio, se disponi di un nodo in una sottorete privata che comunica a Internet tramite un NAT gateway, dovrai aggiungere l'indirizzo IP in uscita del NAT gateway come parte di un blocco consentito CIDR sull'endpoint pubblico. -
Scegliere Update (Aggiorna) per terminare.
Configura l'accesso agli endpoint - AWS CLI
Completa i seguenti passaggi utilizzando la AWS CLI versione 1.27.160
o successiva. È possibile verificare la versione corrente con aws --version
. Per installare o aggiornare il AWS CLI, vedere Installazione di AWS CLI.
-
Aggiorna l'accesso agli endpoint API del server del cluster con il seguente AWS CLI comando. Sostituire il nome del cluster e i valori di accesso dell'endpoint desiderati. Se lo imposti
endpointPublicAccess=true
, puoi (facoltativamente) inserire un CIDR blocco singolo o un elenco di blocchi separati da virgole per. CIDRpublicAccessCidrs
I blocchi non possono includere indirizzi riservati. Se specifichi dei CIDR blocchi, l'endpoint del API server pubblico riceverà solo le richieste dai blocchi elencati. È possibile specificare un numero massimo di CIDR blocchi. Per ulteriori informazioni, consulta Visualizza e gestisci le quote dei EKS servizi Amazon e Fargate. Se limiti l'accesso al tuo endpoint pubblico utilizzando i CIDR blocchi, ti consigliamo di abilitare anche l'accesso privato agli endpoint in modo che nodi e Fargate Pods (se li usi) può comunicare con il cluster. Senza l'endpoint privato abilitato, le sorgenti degli endpoint ad accesso pubblico devono includere CIDR le sorgenti di uscita provenienti dal tuo. VPC Ad esempio, se disponi di un nodo in una sottorete privata che comunica a Internet tramite un NAT gateway, dovrai aggiungere l'indirizzo IP in uscita del NAT gateway come parte di un blocco consentito CIDR sull'endpoint pubblico. Se non si specifica alcun CIDR blocco, l'endpoint del API server pubblico riceve le richieste da tutti gli indirizzi IP (0.0.0.0/0). Nota
Il comando seguente abilita l'accesso privato e l'accesso pubblico da un singolo indirizzo IP per l'endpoint del server. API Replace (Sostituisci)
203.0.113.5/32
con un singolo CIDR blocco o un elenco di CIDR blocchi separati da virgole 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": [] } }
Accedere a un server solo privato API
Se hai disabilitato l'accesso pubblico per i tuoi cluster Kubernetes APIendpoint del server, puoi accedere al API server solo dall'interno della tua rete VPC o da una rete connessa. Ecco alcuni modi possibili per accedere a Kubernetes APIendpoint del server:
- Rete connessa
-
Connect la rete a un gateway VPC di AWS transito o altra opzione di connettività, quindi utilizzate un computer nella rete connessa. Devi assicurarti che il tuo gruppo di sicurezza EKS del piano di controllo Amazon contenga regole per consentire il traffico in ingresso sulla porta 443 dalla tua rete connessa.
- Host Amazon EC2 Bastion
-
Puoi avviare un'EC2istanza Amazon in una sottorete pubblica del tuo cluster VPC e quindi SSH accedere tramite quell'istanza per eseguire
kubectl
i comandi. Per ulteriori informazioni, consultare Bastion host Linux in AWS. Devi assicurarti che il tuo gruppo di sicurezza EKS del piano di controllo Amazon contenga regole per consentire il traffico in ingresso sulla porta 443 dal tuo host bastion. Per ulteriori informazioni, consulta Visualizza i requisiti EKS dei gruppi di sicurezza Amazon per i cluster. Quando esegui la configurazione
kubectl
per il tuo host bastion, assicurati di utilizzare AWS credenziali già mappate alla RBAC configurazione del cluster o aggiungi il IAMprincipale che verrà utilizzato dal tuo bastion prima di rimuovere l'accesso pubblico agli endpointRBAC. Per ulteriori informazioni, consulta Concedi a IAM utenti e ruoli l'accesso a Kubernetes APIs e Accesso negato o non autorizzato (kubectl). - AWS Cloud9 IDE
-
AWS Cloud9 è un ambiente di sviluppo integrato basato su cloud IDE () che consente di scrivere, eseguire ed eseguire il debug del codice con un semplice browser. Puoi creare un AWS IDE Cloud9 nel tuo cluster VPC e utilizzarlo per comunicare con IDE il tuo cluster. Per ulteriori informazioni, consulta Creazione di un ambiente in AWS Cloud9. Devi assicurarti che il tuo gruppo di sicurezza EKS del piano di controllo Amazon contenga regole per consentire il traffico in ingresso sulla porta 443 dal tuo gruppo IDE di sicurezza. Per ulteriori informazioni, consulta Visualizza i requisiti EKS dei gruppi di sicurezza Amazon per i cluster.
Quando configuri
kubectl
per il tuo AWS IDE Cloud9, assicurati di AWS utilizzare credenziali già mappate alla configurazione RBAC del cluster o aggiungi il principale che utilizzerai alla configurazione prima di IDE rimuovere IAM l'accesso pubblico agli RBAC endpoint. Per ulteriori informazioni, consulta Concedi a IAM utenti e ruoli l'accesso a Kubernetes APIs e Accesso negato o non autorizzato (kubectl).