Security
Kubernetes PV 與 Internet 上的塊儲存 - 安全嗎?
我正在嘗試使用 DigitalOcean Block storage 在我的 k8s 集群上創建持久卷,使用CSI 驅動程序。
它工作正常,但我也想知道這即使對於生產也是安全的。
我仍在尋找有關 PV 安全性的文件,但找不到我需要的東西。
我需要你的意見。謝謝。
我認為按照Kubernetes 文件中的描述,考慮遵循整體安全方面將它們應用到 Kubernetes 集群上可能會有所幫助。我想這可以作為您分析 Kubernetes 集群中潛在安全漏洞的起點。但是,您可以在
Persistent Volume
下面找到有關保護儲存的一些資訊。持久卷 (PV)儲存包含基本策略,您可以使用pod 定義中的SecurityContext
Group IDs
部分應用這些策略,例如、user ID
和SELinux
值。Group IDs
對 pod 來說是全域的,並應用於 pod 中定義的所有容器。User IDs
也可以是全域的,或者特定於每個容器。實際上,有四個部分旨在控制對卷的訪問:
supplementalGroups
- 補充組是正常的 Linux 組。當一個程序在 Linux 中執行時,它有一個 UID、一個 GID 和一個或多個通常用於控制對共享儲存的訪問的補充組,例如NFS
和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
- 定義一個 pod 的“文件系統組”ID,它被添加到容器的補充組中。supplementalGroups ID
應用於共享儲存,而用於fsGroup ID
塊儲存。kind: Pod ... spec: containers: - name: ... securityContext: fsGroup: 5555
runAsUser
- 使用者 ID 可以全域定義到所有容器,或特定於單個容器(或兩者):spec: containers: - name: ... securityContext: runAsUser: 1000100001
seLinuxOptions
- 可以將SELinux標籤分配給具有多個訪問控制安全策略值的容器,以辨識級別標籤:securityContext: seLinuxOptions: level: "s0:c123,c456"