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
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)1.25
, ti consigliamo di implementarla PSS in AmazonEKS. Per ulteriori informazioni, consulta Implementazione degli standard di sicurezza dei pod in Amazon EKS
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
-
Crea un file denominato
con il contenuto del file di esempio in. Installa o ripristina l'impostazione predefinita Pod politica di sicurezzaprivileged-podsecuritypolicy.yaml
-
Eliminare il file YAML con il seguente comando. Questo elimina il valore predefinito Pod la politica di sicurezza
ClusterRole
, e la politica ad essaClusterRoleBinding
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
-
Crea un file denominato
con i seguenti contenuti.privileged-podsecuritypolicy.yaml
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
-
Applica il YAML con il seguente comando.
kubectl apply -f
privileged-podsecuritypolicy.yaml