Limita il traffico di Pod con le policy di rete di Kubernetes - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Limita il traffico di Pod con le policy di rete di Kubernetes

Per impostazione predefinita, in Kubernetes non ci sono restrizioni per indirizzi IP, porte o connessioni tra qualsiasi Pod nel cluster o tra i pod e le risorse in qualsiasi altra rete. È possibile utilizzare la policy di rete di Kubernetes per limitare il traffico di rete da e verso i pod. Per ulteriori informazioni, consulta Network Policies nella documentazione Kubernetes.

Se si dispone di una versione 1.13 o precedente del plug-in CNI di Amazon VPC per Kubernetes sul cluster, è necessario implementare una soluzione di terze parti per applicare le policy di rete di Kubernetes al cluster. Una versione 1.14 o successiva del plug-in è in grado di implementare le policy di rete, quindi non è necessario utilizzare una soluzione di terze parti. In questo argomento, viene descritto come configurare il cluster per l’utilizzo delle policy di rete di Kubernetes sul cluster senza utilizzare componenti aggiuntivi di terze parti.

Le policy di rete nel plug-in CNI di Amazon VPC per Kubernetes sono supportate nelle seguenti configurazioni.

  • Versione 1.14 o successiva del plug-in CNI di Amazon VPC per Kubernetes sul cluster.

  • Cluster configurato per indirizzi IPv4 o IPv6.

  • È possibile utilizzare le policy di rete con i gruppi di sicurezza per pod. Con le policy di rete, è possibile controllare tutte le comunicazioni all’interno del cluster. Con i gruppi di sicurezza per pod, è possibile controllare l’accesso ai servizi AWS dalle applicazioni all’interno di un pod.

  • È possibile utilizzare le policy di rete con le reti personalizzate e la delega del prefisso.

Considerazioni

Architettura

  • Quando si applicano le policy di rete del plug-in CNI di Amazon VPC per Kubernetes al cluster con il plug-in CNI di Amazon VPC per Kubernetes, è possibile applicare le policy solo ai nodi Amazon EC2 Linux. Non è possibile applicare le policy ai nodi Fargate o Windows.

  • Le policy di rete si applicano solo a indirizzi IPv4 o IPv6, ma non a entrambi. In un cluster IPv4, il CNI di VPC assegna l’indirizzo IPv4 ai pod e applica le policy IPv4. In un cluster IPv6, il CNI di VPC assegna l’indirizzo IPv6 ai pod e applica le policy IPv6. Tutte le regole di policy di rete IPv4 applicate a un cluster IPv6 vengono ignorate. Tutte le regole di policy di rete IPv6 applicate a un cluster IPv4 vengono ignorate.

Policy di rete

  • Le policy di rete vengono applicate solo ai pod che fanno parte di un’implementazione. Ai pod autonomi che non dispongono di un set metadata.ownerReferences non possono essere applicate policy di rete.

  • È possibile applicare più policy di rete allo stesso pod. Quando sono configurate due o più policy che selezionano lo stesso pod, al pod vengono applicate tutte le policy.

  • Il numero massimo di combinazioni di porte e protocolli per un singolo intervallo di indirizzi IP (CIDR) è 24 per tutte le policy di rete. Selettori come namespaceSelector risolvono verso uno o più CIDR. Se più selettori si risolvono in un unico CIDR o si specifica lo stesso CIDR diretto più volte nella stessa policy di rete o in diverse policy di rete, tutti questi fattori vengono conteggiati ai fini di questo limite.

  • Per ognuno dei servizi di Kubernetes, la porta del servizio deve essere uguale a quella del container. Se si utilizzano porte con un nome assegnato, è necessario utilizzare lo stesso nome anche nelle specifiche del servizio.

Migrazione

  • Se il cluster utilizza attualmente una soluzione di terze parti per la gestione delle policy di rete di Kubernetes, è possibile utilizzare le stesse policy con il plug-in CNI di Amazon VPC per Kubernetes. Tuttavia, è necessario rimuovere la soluzione esistente in modo che non gestisca le stesse policy.

avvertimento

Dopo aver rimosso una soluzione di policy di rete, si consiglia di sostituire tutti i nodi a cui era stata applicata la soluzione di policy di rete. Questo perché le regole del traffico potrebbero essere ignorate da un pod della soluzione se questa si interrompe all’improvviso.

Installazione

  • La funzionalità di policy di rete crea e richiede una PolicyEndpoint Custom Resource Definition (CRD) denominata policyendpoints.networking.k8s.aws. Gli oggetti PolicyEndpoint della Custom Resource sono gestiti da Amazon EKS. È sconsigliabile modificare o eliminare queste risorse.

  • Se si eseguono pod che utilizzano le credenziali IAM del ruolo di istanza o si connettono all’IMDS EC2, occorre accertarsi che non siano presenti policy di rete che bloccherebbero l’accesso all’IMDS EC2. Potrebbe essere necessario aggiungere una policy di rete per consentire l’accesso all’IMDS EC2. Per ulteriori informazioni, consulta Metadati dell’istanza e dati dell’utente nella Guida per l’utente di Amazon EC2 per le istanze Linux.

    I pod che utilizzano i ruoli IAM per gli account di servizio o EKS Pod Identity non accedono all’IMDS EC2.

  • Il plug-in CNI di Amazon VPC per Kubernetes non applica le policy di rete alle interfacce di rete aggiuntive per ogni pod, ma solo all’interfaccia principale per ogni pod (eth0). Ciò influisce sulle seguenti architetture:

    • Pod IPv6 con la variabile ENABLE_V4_EGRESS impostata su true. Questa variabile abilita la funzionalità di uscita IPv4 per connettere i pod IPv6 a endpoint IPv4 come quelli esterni al cluster. La funzionalità di uscita IPv4 opera creando un’interfaccia di rete supplementare con un indirizzo IPv4 di loopback locale.

    • In caso di utilizzo di plugin di rete concatenati come Multus. Poiché questi plug-in aggiungono interfacce di rete a ciascun pod, le policy di rete non vengono applicate ai plug-in di rete concatenati.