Questo documento descrive come configurare i profili Kubernetes Seccomp (Secure Computing Mode) per i pod Apigee Hybrid per migliorare la sicurezza limitando le chiamate di sistema (syscall) che i container sono autorizzati a effettuare.
Informazioni sui profili Seccomp in Kubernetes
Seccomp è una funzionalità di sicurezza del kernel Linux che limita le chiamate di sistema che un processo può effettuare. Se utilizzato con Kubernetes, puoi applicare i profili Seccomp al campo securityContext di un pod per limitare le chiamate di sistema disponibili per i relativi container. Ciò contribuisce a ridurre la superficie di attacco del container e a mitigare il rischio di interruzioni del container o di escalation dei privilegi applicando il principio del privilegio minimo.
Per ulteriori informazioni su Seccomp in Kubernetes, consulta Secure Computing (Seccomp) nella documentazione di Kubernetes.
Nell'ambiente ibrido, i profili Seccomp non sono abilitati per impostazione predefinita. Puoi scegliere di applicare un profilo Seccomp ai componenti ibridi aggiungendo l'oggetto seccompProfile al file overrides.yaml.
Configurazione dei profili Seccomp
Puoi applicare i profili Seccomp a livello globale, per ambiente o per componente nel file overrides.yaml aggiungendo il blocco di configurazione securityContext.seccompProfile. hybrid supporta i seguenti tipi di profili Seccomp:
RuntimeDefault: il profilo predefinito specificato dal runtime del container. Questa è l'opzione consigliata, in quanto offre un livello di sicurezza ragionevole mantenendo la compatibilità per la maggior parte dei carichi di lavoro.Unconfined: non applica restrizioni Seccomp al pod. Questa è l'opzione meno sicura e deve essere utilizzata con cautela.
Precedenza della configurazione
Puoi impostare il seccompProfile ai seguenti livelli in overrides.yaml. Le impostazioni a livello di componente hanno la precedenza su quelle a livello di ambiente e quelle a livello di ambiente hanno la precedenza su quelle globali:
- A livello di componente:si applica a un componente specifico (ad esempio,
runtimeocassandra). - Livello di ambiente:si applica a tutti i componenti all'interno di un ambiente specifico definito nell'array
envs[], a meno che non venga eseguito l'override a livello di componente. - Livello globale:si applica a tutti i componenti del cluster, a meno che non venga eseguito l'override a livello di ambiente o componente.
Esempi
Configurazione globale
Per applicare il profilo Seccomp RuntimeDefault a tutti i componenti che non hanno un override a livello di ambiente o componente, aggiungi quanto segue al livello superiore di overrides.yaml:
securityContext: seccompProfile: type: RuntimeDefault
Configurazione dell'ambiente
Per applicare il profilo Seccomp RuntimeDefault a tutti i componenti di un ambiente specifico, aggiungi la configurazione all'elemento envs[]:
envs: - name: "my-environment" securityContext: seccompProfile: type: RuntimeDefault ...
Configurazione dei componenti
Per applicare il profilo RuntimeDefault Seccomp a un componente specifico (ad esempio, il componente di runtime), aggiungi la configurazione sotto quel componente:
runtime: securityContext: seccompProfile: type: RuntimeDefault ...