Cosa è Runasuser nell'ambiente Kubernetes?
Runasuser è uno dei campi di contesto di sicurezza specificati nel file di configurazione che specifica l'ID utente per fornire i privilegi di sicurezza per un determinato contenitore o pod. Il valore del campo Runasuser determina che tutti i processi nel contenitore eseguiranno con l'ID Runasuser specificato.
Il contesto di sicurezza viene utilizzato per definire le impostazioni del controllo di accesso o definire i privilegi dell'utente per un determinato contenitore o un pod. Le principali impostazioni di contesto di sicurezza includono ID utente, ID gruppo primario, ID gruppo supplementare, Seccomp, Apparmor, Linex, ecc. L'impostazione del contesto di sicurezza non si limita a queste cose, ci sono molte più impostazioni incluse.
Tuttavia, in questo articolo, miriamo a guidarti su come definire i privilegi di sicurezza per un determinato utente in modo che il processo possa essere eseguito utilizzando l'ID di quell'utente anziché l'utente dell'amministratore. Quindi, passiamo alla sezione successiva per verificare come definire l'impostazione del contesto di sicurezza per un contenitore o un pod.
Prerequisiti
Prima di iniziare, assicurati che il tuo sistema soddisfi le esigenze del prerequisito in modo da non finire con errori durante l'utilizzo di Kubernetes come utente generale. L'elenco dei prerequisiti è riportato di seguito:
Se hai tutti questi strumenti installati nel tuo sistema, sei pronto per utilizzare l'ambiente Kubernetes come utente generale.
Specificare il contesto di sicurezza Runasuser per l'ambiente Kubernetes
In generale, tutti i comandi eseguiti o lavori sono stati svolti nell'ambiente Kubernetes con privilegi di amministrazione. Se è necessario modificare i privilegi di sicurezza dell'utente, è possibile modificare i diritti dell'utente consentendo a un determinato utente di avere accesso al sistema. Questo può essere fatto seguendo il processo indicato di seguito.
Innanzitutto, dobbiamo assicurarci che il cluster Minikube sia attivo e funzionante e per questo, useremo il seguente comando:
> Minikube Start
Questo avverrà il cluster minikube se non è stato avviato in precedenza o garantirà che il minikube sia in modalità attiva.
Ora che il nostro cluster di minikube è attivo e funzionante, siamo pronti a cambiare i vincoli di sicurezza per il nostro sistema. Per specificare le impostazioni di sicurezza per un pod nel cluster, avremo bisogno di un file di configurazione YAML in cui è necessario fornire la definizione di distribuzione. Utilizzare il comando 'nano' per produrre un nuovo file di configurazione YAML.
> nano sc.Yaml
Questo comando creerà un file yaml chiamato SC.Yaml. Ora puoi inserire la definizione di distribuzione in questo file di configurazione. La definizione di distribuzione è riportata di seguito per il tuo riferimento:
Ora, salva la definizione di distribuzione nel SC.File di configurazione YAML in modo da poter applicare la distribuzione sui pod. Si noti che il valore di Runasuser è 1000, il che significa che l'ID utente è 1000 che possiamo utilizzare per fare riferimento all'utente specifico. Runasuser specifica che tutti i processi per i contenitori nel pod eseguiranno con il valore Runasuser dato. Il RinasGroup specifica l'ID gruppo primario per il processo nel contenitore del pod mentre l'FSGroup specifica l'ID gruppo supplementare per il processo nel contenitore del pod.
Ora applichiamo la definizione di configurazione sulla distribuzione utilizzando il comando indicato di seguito:
> kubectl applica -f sc.Yaml
Questo ha creato i pod dalla definizione di configurazione. Verifichiamo lo stato corrente del pod nel cluster con il seguente comando:
> Kubectl Get Pod Security-Context-Demo
Lo stato del pod è "in esecuzione", il che significa che possiamo distribuire la shell in questo contenitore. Utilizzare il seguente comando per portare la shell nel contenitore del pod in esecuzione di sicurezza di sicurezza:
> Kubectl Exec -It Security -Context -Demo - -SH
Il prossimo passo è elencare tutti i processi in esecuzione:
> ps
Dato che abbiamo definito Runasuser come 1000, tutti i processi sono in esecuzione come 1000, il che significa che abbiamo fornito all'utente 1000 privilegi per avere accesso al sistema. Le preferenze di sicurezza sono state modificate per l'utente 1000. Ora, tutti i processi verranno eseguiti con l'ID utente 1000. Vediamo a un altro direttamente per verificare il contesto di sicurezza dell'utente 1000:
> CD /Data
Questo ci navighi nella directory /dati in cui possiamo elencare tutto nella directory con il seguente comando:
> ls -l
Nell'output sopra è possibile vedere che la directory /dati utilizza l'ID utente supplementare 2000. Ora, passiamo a un'altra directory per verificare quale ID utente sta utilizzando:
> Demo CD
Questo ci porterà alla directory /demo in cui possiamo elencare tutto dalla directory:
> ls -l
Vediamo quali ID sono stati utilizzati dalla directory /Data /Demo:
> id
L'output mostra che i file nella directory /dati /demo utilizzano l'ID utente 1000, ID gruppo primario 3000 e ID gruppo supplementare 2000.
Per chiudere la shell, è possibile utilizzare il comando di uscita e uscire immediatamente dalla shell:
> esistono
Ricorda che abbiamo navigato in diverse directory per controllare i privilegi Runasuser, quindi dobbiamo uscire correttamente dalla shell per recuperare i privilegi di sicurezza dall'utente.
Conclusione
In questo articolo, abbiamo appreso specificamente i privilegi di sicurezza di Runasuser. Abbiamo appreso che il processo può essere eseguito nell'ambiente Kubernetes senza avere diritti di amministrazione. Il contesto di sicurezza può essere definito per altri utenti e può avere un accesso sicuro al sistema e può eseguire tutti i processi come richiesto. Quando si abilita il contesto di sicurezza per un determinato utente assegnando loro l'ID RUNASUSER, tutti i processi nei contenitori del POD verranno eseguiti con quell'ID.