Comprendi le politiche di sicurezza dei pod EKS create da Amazon (PSP) - Amazon EKS

Aiutaci a migliorare questa pagina

Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.

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à.

Comprendi le politiche di sicurezza dei pod EKS create da Amazon (PSP)

Il Kubernetes Pod il controller di ammissione della politica di sicurezza convalida Pod richieste di creazione e aggiornamento rispetto a una serie di regole. Per impostazione predefinita, EKS i cluster Amazon vengono forniti con una politica di sicurezza completamente permissiva senza restrizioni. Per ulteriori informazioni, consulta le politiche di sicurezza di Pod nel Kubernetes documentazione.

Nota

Il PodSecurityPolicy (PSP) è stato obsoleto in Kubernetes versione 1.21 e rimosso in Kubernetes 1.25. PSPs vengono sostituiti con Pod Security Admission (PSA), un controller di ammissione integrato che implementa i controlli di sicurezza descritti nei Pod Security Standards () PSS. PSAe PSS hanno entrambi raggiunto lo stato di funzionalità beta e sono abilitati in Amazon EKS per impostazione predefinita. Per indirizzare PSP rimozione in1.25, ti consigliamo di implementarla PSS in AmazonEKS. Per ulteriori informazioni, consulta Implementazione degli standard di sicurezza dei pod in Amazon EKS sul AWS blog.

Amazon EKS predefinito Pod politica di sicurezza

EKSCluster Amazon con Kubernetes la versione 1.13 o superiore ha un valore predefinito Pod politica di sicurezza denominataeks.privileged. Questa politica non ha restrizioni sul tipo di Pod può essere accettato nel sistema, il che equivale all'esecuzione Kubernetes con il PodSecurityPolicy controller disattivato.

Nota

Questa policy è stata creata per mantenere la compatibilità con le versioni precedenti dei cluster che non hanno il controller PodSecurityPolicy abilitato. È possibile creare policy più restrittive per il cluster e per i singoli spazi dei nomi e gli account di servizio, quindi eliminare la policy predefinita per abilitare le policy più restrittive.

È possibile visualizzare la policy di default con il comando seguente.

kubectl get psp eks.privileged

Di seguito viene riportato un output di esempio:

NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP READONLYROOTFS VOLUMES eks.privileged true * RunAsAny RunAsAny RunAsAny RunAsAny false *

Per ulteriori dettagli, è possibile descrivere la policy con il comando seguente.

kubectl describe psp eks.privileged

Di seguito viene riportato un output di esempio:

Name: eks.privileged Settings: Allow Privileged: true Allow Privilege Escalation: 0xc0004ce5f8 Default Add Capabilities: <none> Required Drop Capabilities: <none> Allowed Capabilities: * Allowed Volume Types: * Allow Host Network: true Allow Host Ports: 0-65535 Allow Host PID: true Allow Host IPC: true Read Only Root Filesystem: false SELinux Context Strategy: RunAsAny User: <none> Role: <none> Type: <none> Level: <none> Run As User Strategy: RunAsAny Ranges: <none> FSGroup Strategy: RunAsAny Ranges: <none> Supplemental Groups Strategy: RunAsAny Ranges: <none>

È possibile visualizzare il YAML file completo per eks.privileged Pod politica di sicurezza, relativo ruolo nel cluster e associazione dei ruoli del clusterInstalla o ripristina l'impostazione predefinita Pod politica di sicurezza.

Elimina l'Amazon predefinito EKS Pod politica di sicurezza

Se crei politiche più restrittive per i tuoi Pods, quindi dopo averlo fatto, puoi eliminare l'Amazon predefinito EKS eks.privileged Pod politica di sicurezza per abilitare le tue politiche personalizzate.

Importante

Se si utilizza una versione 1.7.0 o successiva del CNI plug-in e si assegna una versione personalizzata Pod politica di sicurezza al aws-node Kubernetes account di servizio utilizzato per il aws-node Pods distribuito da Daemonset, quindi la policy deve avere NET_ADMIN nella sua allowedCapabilities sezione insieme hostNetwork: true e privileged: true nella policy. spec

Per eliminare l'impostazione predefinita Pod politica di sicurezza
  1. Crea un file denominato privileged-podsecuritypolicy.yaml con il contenuto del file di esempio in. Installa o ripristina l'impostazione predefinita Pod politica di sicurezza

  2. Eliminare il file YAML con il seguente comando. Questo elimina il valore predefinito Pod la politica di sicurezzaClusterRole, e la politica ad essa ClusterRoleBinding associata.

    kubectl delete -f privileged-podsecuritypolicy.yaml

Installa o ripristina l'impostazione predefinita Pod politica di sicurezza

Se si esegue l'aggiornamento da una versione precedente di Kuberneteso hai modificato o eliminato l'Amazon predefinito EKS eks.privileged Pod politica di sicurezza, puoi ripristinarla con i seguenti passaggi.

Per installare o ripristinare l'impostazione predefinita Pod politica di sicurezza
  1. Crea un file denominato privileged-podsecuritypolicy.yaml con i seguenti contenuti.

    apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: eks.privileged annotations: kubernetes.io/description: 'privileged allows full unrestricted access to Pod features, as if the PodSecurityPolicy controller was not enabled.' seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy spec: privileged: true allowPrivilegeEscalation: true allowedCapabilities: - '*' volumes: - '*' hostNetwork: true hostPorts: - min: 0 max: 65535 hostIPC: true hostPID: true runAsUser: rule: 'RunAsAny' seLinux: rule: 'RunAsAny' supplementalGroups: rule: 'RunAsAny' fsGroup: rule: 'RunAsAny' readOnlyRootFilesystem: false --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: eks:podsecuritypolicy:privileged labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy rules: - apiGroups: - policy resourceNames: - eks.privileged resources: - podsecuritypolicies verbs: - use --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks:podsecuritypolicy:authenticated annotations: kubernetes.io/description: 'Allow all authenticated users to create privileged Pods.' labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: eks:podsecuritypolicy:privileged subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:authenticated
  2. Applica il YAML con il seguente comando.

    kubectl apply -f privileged-podsecuritypolicy.yaml