Acho que seria útil considerar seguir os aspectos gerais de segurança para aplicá-los em seu cluster do Kubernetes, conforme descrito em Documentação do Kubernetes . Eu acho que pode ser um ponto de partida para você analisar potenciais brechas de segurança em seu Kubernetes Cluster. No entanto, você pode encontrar algumas informações sobre como proteger Persistent Volume
storage abaixo.
O armazenamento de Volume Persistente (PV) consiste em estratégias essenciais que você pode aplicar usando seção SecurityContext em uma definição de conjunto, como Group IDs
, user ID
e SELinux
valores.
Group IDs
são globais para o pod e aplicados a todos os contêineres definidos no pod. User IDs
também pode ser global ou específico para cada contêiner.
Na verdade, existem quatro seções com o objetivo de controlar o acesso a volumes:
supplementalGroups
- Grupos suplementares são grupos regulares do Linux. Quando um processo é executado no Linux, ele tem um UID, um GID e um ou mais grupos suplementares normalmente usados para controlar o acesso ao armazenamento compartilhado, como NFS
e GlusterFS
:
apiVersion: v1
kind: Pod
...
spec:
containers:
- name: ...
volumeMounts:
- name: nfs
mountPath: /usr/share/...
securityContext:
supplementalGroups: [5555]
volumes:
- name: nfs
nfs:
server: <nfs_server_ip_or_host>
path: /opt/nfs
fsGroup
: define o ID do "grupo do sistema de arquivos" de um grupo, que é adicionado aos grupos suplementares do contêiner. O supplementalGroups ID
é aplicado ao armazenamento compartilhado, enquanto o fsGroup ID
é usado para armazenamento em bloco.
kind: Pod
...
spec:
containers:
- name: ...
securityContext:
fsGroup: 5555
runAsUser
- Os IDs de usuário podem ser definidos globalmente para todos os contêineres ou específicos para contêineres individuais (ou ambos):
spec:
containers:
- name: ...
securityContext:
runAsUser: 1000100001
seLinuxOptions
- Possibilidade de atribuir rótulos SELinux a um contêiner com vários valores para políticas de segurança de controle de acesso para identificar o rótulo de nível:
securityContext:
seLinuxOptions:
level: "s0:c123,c456"