Salta al contenuto

Domande frequenti: Pod Security Standards e Pod Security Admission per i pod Amazon EKS

4 minuti di lettura
0

Ho alcune domande sulle policy Pod Security Standards e sulle modalità Pod Security Admission per i pod Amazon Elastic Kubernetes Service (Amazon EKS).

D: Come posso attivare o disattivare le policy Pod Security Standards e le modalità Pod Security Admission per il mio cluster Amazon EKS?

Per impostazione predefinita, nelle versioni di Kubernetes 1.23 e successive, per il profilo Pod Security Standards Privileged sono attivate tutte le modalità Pod Security Admission a livello di cluster. Pod Security Admission consente distribuzioni o pod con il profilo Pod Security Standards Privileged in tutti i namespace.

D: Come posso applicare specifiche modalità Pod Security Admission e profili Pod Security Standards a livello di namespace in Kubernetes?

Per applicare specifiche modalità Pod Security Admission e profili Pod Security Standards a livello di namespace in Kubernetes, configura le etichette del namespace.

Ad esempio, esegui questo comando per applicare la modalità enforce per il profilo Pod Security Standards Baseline a un solo namespace:

kubectl label --overwrite ns test-namespace pod-security.kubernetes.io/enforce=baseline

Oppure esegui questo comando per applicare la modalità enforce per il profilo Pod Security Standards Baseline a tutti i namespace disponibili:

kubectl label --overwrite ns --all pod-security.kubernetes.io/enforce=baseline

Nota: sostituisci test-namespace con il nome del tuo namespace, enforce con la modalità Pod Security Admission e baseline con il tuo profilo di policy Pod Security Standards. Per ulteriori informazioni, consulta Pod Security Admission labels for namespaces (Etichette Pod Security Admission per i namespace) e Pod Security Standards sul sito web Kubernetes.

D: Quando modifico il mio namespace per utilizzare un profilo Pod Security Standards più restrittivo, ciò influisce sulla funzione dei pod esistenti nel namespace?

No, se modifichi un namespace con i pod esistenti per utilizzare le modalità audit o warn, ricevi un messaggio sul terminale. Puoi anche vedere il messaggio nella sezione status.message dell'output YAML del pod. Se modifichi il namespace per utilizzare la modalità enforce, Kubernetes non elimina i pod esistenti nel namespace. Tuttavia, ricevi un messaggio simile al seguente esempio:

"Warning: existing pods in namespace "policy-test" violate the new PodSecurity enforce level "restricted:latest"

"Warning: test-688f68dc87-htm8x: allowPrivilegeEscalation != false, unrestricted capabilities, runAsNonRoot != true, seccompProfilenamespace/policy-test configured"

Esempio di messaggio per la modalità enforce nell'output YAML del pod:

lastTransitionTime: "2022-11-24T05:10:49Z"
lastUpdateTime: "2022-11-24T05:10:49Z"
message: 'pods "test-67d5fc995b-8r9t2" is forbidden: violates PodSecurity "baseline:latest": privileged (container "assets" must not set securityContext.privileged=true)'
reason: FailedCreate
status: "True"
type: ReplicaFailure

Se un pod non rispetta la policy del profilo Pod Security Standards del namespace o la modalità Pod Security Admission, aggiorna il suo manifesto di distribuzione.

D: Come posso personalizzare la policy di sicurezza dei pod applicata dal controller Pod Security Admission a livello di namespace?

Non puoi personalizzare direttamente la policy di sicurezza dei pod applicata tramite il controller Pod Security Admission. Utilizza invece policy di convalida dell'ammissione per implementare e far rispettare regole personalizzate o utilizza il controllo dell'ammissione con meccanismi di webhook utilizzando un codice esterno.

D: Posso applicare più modalità Pod Security Admission e profili Pod Security Standards a un singolo namespace in Kubernetes?

No, puoi però utilizzare le etichette per configurare più controlli Pod Security Standards su qualsiasi namespace.

Ad esempio, il seguente comando applica la modalità enforce al profilo Pod Security Standards Baseline e le modalità warn e audit al profilo Pod Security Standards Restricted in base all'ultima versione:

  kubectl label --overwrite ns test \\
  pod-security.kubernetes.io/enforce=baseline \\
  pod-security.kubernetes.io/enforce-version=latest \\
  pod-security.kubernetes.io/warn=restricted \\
  pod-security.kubernetes.io/warn-version=latest \\
  pod-security.kubernetes.io/audit=restricted \\
  pod-security.kubernetes.io/audit-version=latest

D: Posso applicare le modalità Pod Security Admission e i profili Pod Security Standards a livello di cluster per il mio cluster Kubernetes gestito?

No, per i cluster gestiti puoi applicare le modalità Pod Security Admission e i profili Pod Security Standards solo a livello di namespace.

D. Posso utilizzare il webhook Pod Security Admission con il mio cluster Amazon EKS?

Sì, puoi installare il webhook Pod Security Admission in un cluster Amazon EKS. Per ulteriori informazioni, consulta pod-security-admission webhook sul sito web GitHub.

D. Perché dovrei utilizzare il webhook Pod Security Admission nel mio cluster Amazon EKS?

Con il webhook di Pod Security Admission, puoi applicare le stesse modalità Pod Security Admission e gli stessi profili Pod Security Standards in tutti i namespace di Kubernetes. Puoi anche esentare i namespace. Senza il webhook Pod Security Admission, devi applicare le modifiche a livello di singolo namespace.

AWS UFFICIALEAggiornata 2 mesi fa