Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ポッドセキュリティ標準(PSS)とセキュリティコンテキスト制約(SCC)

共同作成者 netapp-aruldeepa

Kubernetes ポッド セキュリティ標準 (PSS) とポッド セキュリティ ポリシー (PSP) は、権限レベルを定義し、ポッドの動作を制限します。 OpenShift セキュリティ コンテキスト制約 (SCC) も同様に、OpenShift Kubernetes Engine に固有のポッド制限を定義します。このカスタマイズを提供するために、 Trident はインストール中に特定の権限を有効にします。次のセクションでは、 Tridentによって設定される権限について詳しく説明します。

メモ PSS は Pod Security Policies (PSP) に代わるものです。 PSP は Kubernetes v1.21 で非推奨となり、v1.25 で削除されます。詳細については、以下を参照してください。"Kubernetes: セキュリティ"

必要な Kubernetes セキュリティコンテキストと関連フィールド

許可 説明

特権階級

CSI ではマウント ポイントが双方向である必要があるため、 Tridentノード ポッドは特権コンテナを実行する必要があります。詳細については、"Kubernetes: マウント伝播"

ホストネットワーク

iSCSI デーモンに必要です。 iscsiadm iSCSI マウントを管理し、ホスト ネットワークを使用して iSCSI デーモンと通信します。

ホスト IPC

NFS は、プロセス間通信 (IPC) を使用して NFSD と通信します。

ホスト PID

開始に必要 rpc-statd`NFS 用。 Tridentはホストプロセスを照会して、 `rpc-statd NFS ボリュームをマウントする前に実行します。

機能

その SYS_ADMIN`機能は、特権コンテナのデフォルト機能の一部として提供されます。たとえば、Docker は特権コンテナに対して次の機能を設定します。
`CapPrm: 0000003fffffffff

CapEff: 0000003fffffffff

セコンプ

Seccomp プロファイルは特権コンテナでは常に「Unconfined」であるため、 Tridentでは有効にできません。

SELinux

OpenShiftでは、特権コンテナは spc_t(「スーパー特権コンテナ」)ドメインで実行され、非特権コンテナは container_t`ドメイン。の上 `containerd、 と `container-selinux`インストールされると、すべてのコンテナは `spc_t`ドメインは、SELinux を事実上無効にします。したがって、Tridentは `seLinuxOptions`コンテナに。

DAC

特権コンテナは root として実行する必要があります。非特権コンテナは、CSI に必要な Unix ソケットにアクセスするために root として実行されます。

ポッドセキュリティ標準(PSS)

ラベル 説明 デフォルト

pod-security.kubernetes.io/enforce pod-security.kubernetes.io/enforce-version

Tridentコントローラーとノードがインストール名前空間に受け入れられることを許可します。名前空間ラベルを変更しないでください。

enforce: privileged
enforce-version: <version of the current cluster or highest version of PSS tested.>

警告 名前空間ラベルを変更すると、ポッドがスケジュールされず、「作成エラー: …​」または「警告: trident-csi-…​」が表示される場合があります。このような場合は、 `privileged`変更されました。もしそうなら、 Trident を再インストールしてください。

ポッドセキュリティポリシー(PSP)

フィールド 説明 デフォルト

allowPrivilegeEscalation

特権コンテナは特権の昇格を許可する必要があります。

true

allowedCSIDrivers

Trident はインライン CSI 一時ボリュームを使用しません。

空の

allowedCapabilities

非特権Tridentコンテナにはデフォルト セット以上の機能は必要なく、特権コンテナには可能なすべての機能が付与されます。

空の

allowedFlexVolumes

Tridentは、"FlexVolume ドライバー"したがって、許可されるボリュームのリストには含まれません。

空の

allowedHostPaths

Tridentノード ポッドはノードのルート ファイル システムをマウントするため、このリストを設定しても利点はありません。

空の

allowedProcMountTypes

Tridentは ProcMountTypes

空の

allowedUnsafeSysctls

Tridentは危険なものを必要としません sysctls

空の

defaultAddCapabilities

特権コンテナに機能を追加する必要はありません。

空の

defaultAllowPrivilegeEscalation

権限昇格の許可は各Tridentポッドで処理されます。

false

forbiddenSysctls

いいえ `sysctls`許可されます。

空の

fsGroup

Tridentコンテナは root として実行されます。

RunAsAny

hostIPC

NFSボリュームをマウントするには、ホストIPCと通信する必要があります。 nfsd

true

hostNetwork

iscsiadm では、iSCSI デーモンと通信するためにホスト ネットワークが必要です。

true

hostPID

ホストPIDは、次の場合に必要です。 `rpc-statd`ノード上で実行されています。

true

hostPorts

Trident はホスト ポートを使用しません。

空の

privileged

Tridentノード ポッドは、ボリュームをマウントするために特権コンテナを実行する必要があります。

true

readOnlyRootFilesystem

Tridentノード ポッドはノード ファイル システムに書き込む必要があります。

false

requiredDropCapabilities

Tridentノード ポッドは特権コンテナを実行するため、機能を削除することはできません。

none

runAsGroup

Tridentコンテナは root として実行されます。

RunAsAny

runAsUser

Tridentコンテナは root として実行されます。

runAsAny

runtimeClass

Tridentは使用しない RuntimeClasses

空の

seLinux

Tridentは設定されない `seLinuxOptions`現在、コンテナ ランタイムと Kubernetes ディストリビューションが SELinux を処理する方法に違いがあるためです。

空の

supplementalGroups

Tridentコンテナは root として実行されます。

RunAsAny

volumes

Tridentポッドにはこれらのボリューム プラグインが必要です。

hostPath, projected, emptyDir

セキュリティコンテキスト制約(SCC)

ラベル 説明 デフォルト

allowHostDirVolumePlugin

Tridentノード ポッドはノードのルート ファイル システムをマウントします。

true

allowHostIPC

NFSボリュームをマウントするには、ホストIPCと通信する必要があります。 nfsd

true

allowHostNetwork

iscsiadm では、iSCSI デーモンと通信するためにホスト ネットワークが必要です。

true

allowHostPID

ホストPIDは、次の場合に必要です。 `rpc-statd`ノード上で実行されています。

true

allowHostPorts

Trident はホスト ポートを使用しません。

false

allowPrivilegeEscalation

特権コンテナは特権の昇格を許可する必要があります。

true

allowPrivilegedContainer

Tridentノード ポッドは、ボリュームをマウントするために特権コンテナを実行する必要があります。

true

allowedUnsafeSysctls

Tridentは危険なものを必要としません sysctls

none

allowedCapabilities

非特権Tridentコンテナにはデフォルト セット以上の機能は必要なく、特権コンテナには可能なすべての機能が付与されます。

空の

defaultAddCapabilities

特権コンテナに機能を追加する必要はありません。

空の

fsGroup

Tridentコンテナは root として実行されます。

RunAsAny

groups

この SCC はTridentに固有であり、そのユーザーにバインドされます。

空の

readOnlyRootFilesystem

Tridentノード ポッドはノード ファイル システムに書き込む必要があります。

false

requiredDropCapabilities

Tridentノード ポッドは特権コンテナを実行するため、機能を削除することはできません。

none

runAsUser

Tridentコンテナは root として実行されます。

RunAsAny

seLinuxContext

Tridentは設定されない `seLinuxOptions`現在、コンテナ ランタイムと Kubernetes ディストリビューションが SELinux を処理する方法に違いがあるためです。

空の

seccompProfiles

特権コンテナは常に「制限なしで」実行されます。

空の

supplementalGroups

Tridentコンテナは root として実行されます。

RunAsAny

users

この SCC をTrident名前空間内のTridentユーザーにバインドするためのエントリが 1 つ提供されます。

N/A

volumes

Tridentポッドにはこれらのボリューム プラグインが必要です。

hostPath, downwardAPI, projected, emptyDir