View a markdown version of this page

Harden Kubernetes RBAC in Amazon EKS - 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à.

Harden Kubernetes RBAC in Amazon EKS

Il controllo degli accessi basato sui ruoli (RBAC) di Kubernetes controlla le azioni che le identità possono eseguire all'interno di un cluster. Molti componenti del cluster, inclusi i driver CSI e altri componenti aggiuntivi installati come, richiedono autorizzazioni ampie per funzionare. DaemonSets La revisione e l'ambito di queste autorizzazioni riducono la portata potenziale di qualsiasi accesso non intenzionale.

Questo argomento descrive le considerazioni sulle autorizzazioni per i componenti comuni del cluster e i controlli consigliati.

DaemonSet autorizzazioni per gli account di servizio

DaemonSet I pod vengono eseguiti su ogni nodo del cluster, quindi i relativi token dell'account di servizio e le autorizzazioni RBAC concesse da tali token sono presenti su ogni nodo.

Un processo non autorizzato su un nodo può essere in grado di accedere ai token dell'account di servizio di altri Pod in esecuzione sullo stesso nodo, inclusi i Pod. DaemonSet Le autorizzazioni RBAC concesse agli account di DaemonSet servizio sono le stesse su ogni nodo del cluster.

I componenti comunemente distribuiti includono: DaemonSets

  • driver di nodi CSI (ebs-csi-node,,efs-csi-node) mountpoint-s3-csi-node

  • Il plug-in Amazon VPC CNI () aws-node

  • kube-proxy

Se un DaemonSet Pod dispone di credenziali AWS IAM tramite EKS Pod Identity o IAM Roles for Service Accounts (IRSA), anche un processo che ottiene l'accesso all'esterno del contenitore sullo stesso nodo può accedere a tali credenziali. Ciò estende l'ambito di impatto oltre Kubernetes RBAC a qualsiasi AWS autorizzazione API concessa al ruolo IAM di a. DaemonSet

Importante

Quando rivedi le autorizzazioni, considera le autorizzazioni RBAC di Kubernetes e le autorizzazioni IAM di ogni account di servizio come accessibili da ogni nodo del cluster. DaemonSet

Ambito RBAC del driver CSI

I driver CSI generalmente godono di ampie sovvenzioni RBAC perché interagiscono con nodi, volumi persistenti e sistemi di storage. APIs

Autorizzazioni per gli oggetti del nodo

I driver CSI possono richiedere le autorizzazioni RBAC per modificare gli oggetti Node per supportare funzionalità come la rimozione delle contaminazioni o altre attività di gestione dei nodi. A causa delle limitazioni RBAC di Kubernetes, queste autorizzazioni si applicano a tutti gli oggetti Node del cluster, non solo al nodo locale su cui è in esecuzione il driver.

Per il driver CSI EBS, il grafico Helm fornisce un parametro (node.serviceAccount.disableMutation) che rimuove l'autorizzazione di modifica del nodo dall'account del servizio. ebs-csi-node L'attivazione di questa opzione disabilita la funzione di rimozione delle macchie.

Esposizione dei token dell'account di servizio

I driver CSI Pods possono utilizzare i token degli account di servizio previsti per l'autenticazione. Su un nodo in cui un processo non autorizzato ha ottenuto l'accesso all'esterno del contenitore, tali token possono essere accessibili tramite il filesystem del contenitore o l'API kubelet. Se l'account di servizio è associato anche a un ruolo IAM tramite EKS Pod Identity o IRSA, è possibile utilizzare un token esposto per ottenere le credenziali IAM. AWS

Ambita RBAC al privilegio minimo

  • Controlla il collegamento agli ClusterRoles account dei driver e dei servizi CSI. DaemonSet Rimuovi le autorizzazioni non necessarie per i tuoi carichi di lavoro.

  • Per il driver EBS CSI, imposta su node.serviceAccount.disableMutation true se non utilizzi la funzione di rimozione delle macchie.

  • Utilizzato per verificare kubectl auth can-i --list --as=system:serviceaccount:NAMESPACE:SERVICE_ACCOUNT le autorizzazioni valide.

Applica gli standard di sicurezza dei Pod

Applica gli standard di sicurezza Kubernetes Pod utilizzando il controller Pod Security Admission integrato o un motore di policy. Come minimo, applica il profilo a livello di cluster e il baseline profilo per i namespace dei carichi di lavoro. restricted Ciò limita la possibilità di creare contenitori privilegiati al di fuori dei namespace di sistema.

Usare le policy di rete

Applica politiche di rete per limitare l'uscita dai driver e dai DaemonSet Pod CSI solo agli endpoint di cui hanno bisogno (ad esempio, il server API Kubernetes e gli endpoint di servizio). AWS Ciò riduce la gamma di azioni possibili.

Monitora l'attività RBAC

Abilita la registrazione degli audit di Kubernetes e monitora eventuali chiamate API impreviste dagli account di servizio. DaemonSet Cerca:

  • Modifiche ai nodi dagli account del servizio driver CSI

  • Creazione di pod nei namespace di sistema

  • Insolito get o richiama Secrets list

Per ulteriori informazioni, consulta Invia i registri del piano di controllo ai CloudWatch registri.