Best practice relative alla sicurezza - Amazon EMR

Best practice relative alla sicurezza

Amazon EMR su EKS fornisce una serie di caratteristiche di sicurezza che occorre valutare durante lo sviluppo e l'implementazione delle policy di sicurezza. Le seguenti best practice sono linee guida generali e non rappresentano una soluzione di sicurezza completa. Poiché queste best practice potrebbero non essere appropriate o sufficienti per il tuo ambiente, gestiscile come considerazioni utili anziché prescrizioni.

Applicazione del principio del privilegio minimo

Amazon EMR su EKS fornisce una policy di accesso granulare per le applicazioni che utilizzano ruoli IAM, ad esempio i ruoli di esecuzione. Questi ruoli di esecuzione vengono mappati agli account del servizio Kubernetes tramite la policy di affidabilità del ruolo IAM. Amazon EMR su EKS crea pod all'interno di uno spazio dei nomi Amazon EKS registrato che eseguono il codice dell'applicazione fornito dall'utente. I pod di processo che eseguono il codice dell'applicazione assumono il ruolo di esecuzione quando ci si connette ad altri servizi AWS. Si consiglia di concedere ai ruoli di esecuzione solo il set minimo di privilegi richiesti dal processo, ad esempio la copertura dell'applicazione e l'accesso alla destinazione del log. Si consiglia inoltre di verificare i processi per le autorizzazioni su base regolare e a qualsiasi modifica del codice dell'applicazione.

Lista di controllo accessi per gli endpoint

Gli endpoint gestiti possono essere creati solo per i cluster EKS configurati per l'utilizzo di almeno una sottorete privata nel VPC. Questa configurazione limita l'accesso ai bilanciatori del carico creati dagli endpoint gestiti in modo che sia possibile accedervi solo dal VPC. Per una maggiore protezione, si consiglia di configurare i gruppi di sicurezza con questi bilanciatori del carico in modo che possano limitare il traffico in ingresso a un set selezionato di indirizzi IP.

Ricevi gli ultimi aggiornamenti di sicurezza per le immagini personalizzate

Per utilizzare immagini personalizzate con Amazon EMR su EKS, è possibile installare qualsiasi tipo di dati binari e librerie sull'immagine. L'utente è responsabile dell'applicazione di patch di sicurezza dei dati binari aggiunti all'immagine. Alle immagini di Amazon EMR su EKS vengono regolarmente applicate i patch di sicurezza più recenti. Per ottenere l'immagine più recente, occorre ricostruire le immagini personalizzate ogni volta che è disponibile una nuova versione dell'immagine di base del rilascio di Amazon EMR. Per ulteriori informazioni, consulta Versioni di rilascio di Amazon EMR su EKS e Come selezionare un URI dell'immagine di base.

Limitazione dell'accesso alle credenziali del pod

Kubernetes supporta diversi metodi di assegnazione delle credenziali a un pod. Il provisioning di più provider di credenziali può aumentare la complessità del modello di sicurezza. Amazon EMR su EKS ha adottato l'utilizzo di Ruoli IAM per gli account dei servizi (IRSA) come provider di credenziali standard all'interno di uno spazio dei nomi EKS registrato. Altri metodi non sono supportati, tra cui kube2iam, kiam e l'utilizzo di un profilo dell'istanza EC2 in esecuzione sul cluster.

Isolamento di un codice dell'applicazione non attendibile

Amazon EMR su EKS non controlla l'integrità del codice dell'applicazione inviato dagli utenti del sistema. Se si esegue un cluster virtuale multi-tenant configurato utilizzando più ruoli di esecuzione che possono essere utilizzati per inviare processi da tenant non attendibili che eseguono un codice arbitrario, esiste il rischio che un'applicazione dannosa incrementi i propri privilegi. In questo caso, è consigliabile isolare i ruoli di esecuzione con privilegi simili in un cluster virtuale diverso.

Autorizzazioni per il controllo degli accessi basato su ruoli (RBAC)

Gli amministratori devono controllare rigorosamente le autorizzazioni per il controllo degli accessi basato su ruoli (RBAC) per gli spazi dei nomi gestiti da Amazon EMR su EKS. Come misura minima, le seguenti autorizzazioni non dovrebbero essere concesse agli autori di processi negli spazi dei nomi gestiti da Amazon EMR su EKS.

  • Le autorizzazioni Kubernetes RBAC per modificare configmap sono necessarie in quanto Amazon EMR su EKS utilizza Kubernetes configmaps per generare modelli di pod gestiti con il nome dell'account del servizio gestito. Questo attributo non deve essere mutato.

  • Kubernetes RBAC consente di accedere ai pod Amazon EMR su EKS per evitare l'accesso a modelli di pod gestiti con il nome SA gestito. Questo attributo non deve essere mutato. Questa autorizzazione può anche dare accesso al token JWT montato nel pod che può quindi essere utilizzato per recuperare le credenziali del ruolo di esecuzione.

  • Le autorizzazioni Kubernetes RBAC per creare pod servono a impedire agli utenti di creare pod utilizzando un Kubernetes ServiceAccount che può essere mappato a un ruolo IAM con più privilegi AWS rispetto all'utente.

  • Le autorizzazioni Kubernetes RBAC per implementare webhook variabili servono a impedire agli utenti di utilizzare un webhook variabile per mutare il nome di un Kubernetes ServiceAccount per pod creati da Amazon EMR su EKS.

  • Le autorizzazioni Kubernetes RBAC per leggere i segreti di Kubernetes servono a impedire agli utenti di leggere i dati riservati memorizzati in questi segreti.

Limitare l'accesso alle credenziali del ruolo IAM o del profilo dell'istanza del nodegroup

  • Ti consigliamo di assegnare autorizzazioni AWS minime al ruolo o ai ruoli IAM del nodegroup. Ciò consente di evitare l'escalation dei privilegi in base al codice che può essere eseguito utilizzando le credenziali del profilo dell'istanza dei nodi di lavoro EKS.

  • Per bloccare completamente l'accesso alle credenziali del profilo dell'istanza a tutti i pod eseguiti negli spazi dei nomi gestiti da Amazon EMR su EKS, ti consigliamo di eseguire i comandi iptables sui nodi EKS. Per ulteriori informazioni, consulta Limitazione dell'accesso alle credenziali del profilo dell'istanza Amazon EC2. In ogni caso, è importante includere correttamente i ruoli IAM degli account di servizio in modo che i pod dispongano di tutte le autorizzazioni necessarie. Ad esempio, al ruolo IAM del nodo vengono assegnate autorizzazioni per estrarre le immagini del container da Amazon ECR. Se a un pod non sono assegnate tali autorizzazioni, il pod non può estrarre le immagini del container da Amazon ECR. È necessario aggiornare anche il plug-in VPC CNI. Per ulteriori informazioni, consulta Spiegazione passo per passo: aggiornamento del plug-in VPC CNI per l'utilizzo dei ruoli IAM per gli account di servizio.