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à.
Policy di sicurezza pod
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, i cluster Amazon EKS vengono forniti con una policy di sicurezza con autorizzazioni complete senza limitazioni. Per ulteriori informazioni, consulta Policy di sicurezza pod
Nota
La PodSecurityPolicy
(PSP) attualmente è obsoleta in Kubernetes versione 1.21
e rimossa in Kubernetes 1.25
. I PSPs verranno sostituiti con PSA (Pod Security Admission)1.25
, è preferibile implementare PSS in Amazon EKS. Per ulteriori informazioni, consulta Implementazione degli standard di sicurezza Pod in Amazon EKS
Policy di sicurezza Pod predefinita di Amazon EKS
I cluster Amazon EKS con Kubernetes versione 1.13
e successive hanno una policy di sicurezza per i Pod predefinita denominata eks.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 file YAML completo per la policy di sicurezza Pod eks.privileged
, il ruolo del cluster e l'associazione del ruolo del cluster in Installazione o ripristinino della policy di sicurezza Pod predefinita.
Eliminazione della policy di sicurezza Pod predefinita di Amazon EKS
Se crei policy più restrittive per i Pods, successivamente potrai eliminare la policy di sicurezza Pod eks.privileged
di Amazon EKS predefinita per abilitare le policy personalizzate.
Importante
Se si utilizza la versione 1.7.0
o successive del plug-in CNI e si assegna una policy di sicurezza del Pod personalizzata all'account del servizio Kubernetes aws-node
utilizzato per i Pods aws-node
implementati dal Daemonset, la policy deve avere NET_ADMIN
nella sezione allowedCapabilities
e inoltre hostNetwork: true
e privileged: true
nella spec
della policy.
Eliminazione della policy di sicurezza Pod predefinita
-
Creare un file denominato
con il contenuto nel file di esempio in Installazione o ripristinino della policy di sicurezza Pod predefinita.privileged-podsecuritypolicy.yaml
-
Eliminare il file YAML con il comando seguente. 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 di Kubernetes o se hai modificato o eliminato la policy di sicurezza Pod eks.privileged
di Amazon EKS predefinita, potrai ripristinarla completando la seguente procedura.
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
-
Applicare il file YAML con il comando seguente.
kubectl apply -f
privileged-podsecuritypolicy.yaml