Pod 安全標準 (PSS) 和安全情境約束 (SCC)
Kubernetes Pod 安全標準 (PSS) 和 Pod 安全性原則 (PSP) 定義了權限等級並限制了 Pod 的行為。 OpenShift 安全性情境限制 (SCC) 類似地定義了 OpenShift Kubernetes Engine 特有的 pod 限制。為了實現這種自訂功能, Trident會在安裝過程中啟用某些權限。以下各節詳細介紹了Trident設定的權限。
|
|
PSS 取代了 Pod 安全性策略 (PSP)。 PSP 在 Kubernetes v1.21 中已被棄用,並將於 v1.25 中移除。更多信息,請參閱"Kubernetes:安全性"。 |
必需的 Kubernetes 安全上下文和相關字段
| 允許 | 描述 |
|---|---|
特權 |
CSI 要求掛載點是雙向的,這表示Trident節點 pod 必須執行特權容器。更多信息,請參閱"Kubernetes:掛載傳播"。 |
主機網路 |
iSCSI守護程式需要此元件。 `iscsiadm`管理 iSCSI 掛載點,並使用主機網路與 iSCSI 守護程式通訊。 |
主機 IPC |
NFS 使用進程間通訊 (IPC) 與 NFSD 進行通訊。 |
主機 PID |
開始需要 `rpc-statd`適用於 NFS。 Trident會查詢主機進程以確定是否 `rpc-statd`在掛載 NFS 磁碟區之前運行。 |
功能 |
這 |
賽康普 |
在特權容器中,Seccomp 設定檔始終為「Unconfined」;因此,它無法在Trident中啟用。 |
SELinux |
在 OpenShift 上,特權容器運行在 |
DAC |
特權容器必須以 root 使用者身分執行。非特權容器以 root 使用者身分執行,以存取 CSI 所需的 Unix 套接字。 |
艙體安全標準 (PSS)
| 標籤 | 描述 | 預設 |
|---|---|---|
|
允許將Trident控制器和節點新增至安裝命名空間。請勿變更命名空間標籤。 |
|
|
|
更改命名空間標籤可能會導致 Pod 無法調度,出現「建立時發生錯誤:…」或「警告:trident-csi-…」等錯誤。如果發生這種情況,請檢查命名空間標籤是否為 `privileged`已更改。如果是這樣,請重新安裝Trident。 |
Pod 安全策略 (PSP)
| 場地 | 描述 | 預設 |
|---|---|---|
|
特權容器必須允許權限提升。 |
|
|
Trident不使用內嵌 CSI 臨時磁碟區。 |
空的 |
|
非特權Trident容器不需要比預設集更多的功能,而特權容器將被授予所有可能的功能。 |
空的 |
|
Trident不使用"FlexVolume驅動器"因此,它們不包含在允許的音量列表中。 |
空的 |
|
Trident節點 pod 會掛載節點的根檔案系統,因此設定此清單沒有任何好處。 |
空的 |
|
Trident不使用任何 |
空的 |
|
Trident不需要任何不安全措施 |
空的 |
|
特權容器無需添加任何功能。 |
空的 |
|
權限提升權限是在每個Trident pod 中處理的。 |
|
|
不 `sysctls`允許。 |
空的 |
|
Trident容器以root權限運作。 |
|
|
掛載 NFS 磁碟區需要主機 IPC 與主機通訊 |
|
|
iscsiadm 需要主機網路才能與 iSCSI 守護程式通訊。 |
|
|
需要主機 PID 來進行檢查 `rpc-statd`正在節點上運行。 |
|
|
Trident不使用任何主機連接埠。 |
空的 |
|
Trident節點 pod 必須運行特權容器才能掛載磁碟區。 |
|
|
Trident節點 pod 必須寫入節點檔案系統。 |
|
|
Trident節點 pod 運作的是特權容器,無法放棄任何功能。 |
|
|
Trident容器以root權限運作。 |
|
|
Trident容器以root權限運作。 |
|
|
Trident不使用 |
空的 |
|
Trident不設定 `seLinuxOptions`因為目前容器運行時和 Kubernetes 發行版在處理 SELinux 方面有差異。 |
空的 |
|
Trident容器以root權限運作。 |
|
|
Trident pods 需要這些音量外掛。 |
|
安全上下文約束 (SCC)
| 標籤 | 描述 | 預設 |
|---|---|---|
|
Trident節點 pod 會掛載節點的根檔案系統。 |
|
|
掛載 NFS 磁碟區需要主機 IPC 與主機通訊 |
|
|
iscsiadm 需要主機網路才能與 iSCSI 守護程式通訊。 |
|
|
需要主機 PID 來進行檢查 `rpc-statd`正在節點上運行。 |
|
|
Trident不使用任何主機連接埠。 |
|
|
特權容器必須允許權限提升。 |
|
|
Trident節點 pod 必須運行特權容器才能掛載磁碟區。 |
|
|
Trident不需要任何不安全措施 |
|
|
非特權Trident容器不需要比預設集更多的功能,而特權容器將被授予所有可能的功能。 |
空的 |
|
特權容器無需添加任何功能。 |
空的 |
|
Trident容器以root權限運作。 |
|
|
此 SCC 專為Trident而設,並與其使用者綁定。 |
空的 |
|
Trident節點 pod 必須寫入節點檔案系統。 |
|
|
Trident節點 pod 運作的是特權容器,無法放棄任何功能。 |
|
|
Trident容器以root權限運作。 |
|
|
Trident不設定 `seLinuxOptions`因為目前容器運行時和 Kubernetes 發行版在處理 SELinux 方面有差異。 |
空的 |
|
特權容器始終以“非限制”模式運作。 |
空的 |
|
Trident容器以root權限運作。 |
|
|
提供了一個條目,用於將此 SCC 綁定到Trident命名空間中的Trident用戶。 |
無 |
|
Trident pods 需要這些音量外掛。 |
|