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 controller di ammissione della policy di sicurezza di Pod Kubernetes convalida le richieste di creazione e aggiornamento dei Pod 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 Policy di sicurezza pod
Nota
La PodSecurityPolicy
(PSP) è stata obsoleta nella versione e rimossa in. Kubernetes 1.21
Kubernetes 1.25
PSPsvengono sostituiti da Pod Security Admission (PSA)1.25
, ti consigliamo di implementarlo PSS in AmazonEKS. Per ulteriori informazioni, consulta Implementazione degli standard di sicurezza dei Pod in Amazon EKS
Policy di Pod sicurezza EKS predefinita di Amazon
EKSI cluster Amazon con Kubernetes versione 1.13
o superiore hanno una policy di Pod sicurezza predefinita denominataeks.privileged
. Questa policy non prevede limitazioni sul tipo di Pod che può essere accettato nel sistema, il che equivale all'esecuzione di Kubernetes con il controller PodSecurityPolicy
disabilitato.
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>
Puoi visualizzare il YAML file completo della politica di eks.privileged
Pod sicurezza, il relativo ruolo del cluster e l'associazione dei ruoli del cluster. Installazione o ripristinino della policy di sicurezza Pod predefinita
Eliminare la politica di EKS Pod sicurezza predefinita di Amazon
Se crei politiche più restrittive per le tuePods, dopo averlo fatto, puoi eliminare la politica di EKS eks.privileged
Pod sicurezza Amazon predefinita per abilitare le tue politiche personalizzate.
Importante
Se utilizzi una versione 1.7.0
o successiva del CNI plug-in e assegni una politica di Pod sicurezza personalizzata all'account di aws-node
Kubernetes servizio utilizzato per la aws-node
Pods distribuzione da Daemonset, la policy deve avere NET_ADMIN
nella sua allowedCapabilities
sezione insieme hostNetwork: true
e privileged: true
nella politica. spec
Eliminazione della policy di sicurezza Pod predefinita
-
Crea un file denominato
con il contenuto del file di esempio in. Installazione o ripristinino della policy di sicurezza Pod predefinitaprivileged-podsecuritypolicy.yaml
-
Eliminare il file YAML con il seguente comando. In questo modo viene eliminata la policy di sicurezza Pod predefinita,
ClusterRole
eClusterRoleBinding
ad esso associato.kubectl delete -f
privileged-podsecuritypolicy.yaml
Installazione o ripristinino della policy di sicurezza Pod predefinita
Se stai effettuando l'aggiornamento da una versione precedente o hai modificato o eliminato la politica di Kubernetes EKS eks.privileged
Pod sicurezza predefinita di Amazon, puoi ripristinarla con i seguenti passaggi.
Installazione o ripristino della policy di sicurezza Pod predefinita
-
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