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

PODセキュリティ標準(PSS)およびセキュリティコンテキストの制約(SCC)

共同作成者

Kubernetesポッドのセキュリティ標準(PSS)とポッドのセキュリティポリシー(PSP)によって、権限レベルが定義され、ポッドの動作が制限されます。また、OpenShift Security Context Constraints(SCC)でも、OpenShift Kubernetes Engine固有のポッド制限を定義します。このカスタマイズを行うために、Astra Tridentはインストール時に特定の権限を有効にします。次のセクションでは、Astra Tridentによって設定された権限の詳細を説明します。

メモ PSSは、Podセキュリティポリシー(PSP)に代わるものです。PSPはKubernetes v1.21で廃止され、v1.25で削除されます。詳細については、を参照してください "Kubernetes:セキュリティ"

必須のKubernetes Security Contextと関連フィールド

アクセス権 説明

権限があります

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

ホストネットワーク

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

ホストIPC

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

ホストPID

開始する必要があります rpc-statd NFSの場合:Astra Tridentがホストプロセスを照会して、状況を特定 rpc-statd を実行してからNFSボリュームをマウントしてください。

機能

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

Seccom

Seccompプロファイルは、権限のあるコンテナでは常に「制限なし」なので、Astra Tridentでは有効にできません。

SELinux

OpenShiftでは、特権のあるコンテナがで実行されます spc_t (「スーパー特権コンテナ」)ドメインおよび非特権コンテナは、で実行されます container_t ドメイン:オン containerd`を使用 `container-selinux インストールすると、すべてのコンテナがで実行されます spc_t domain。SELinuxは無効になります。そのため、Astra Tridentは機能しません seLinuxOptions コンテナへ。

DAC

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

PODセキュリティ標準(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.>

警告 名前空間ラベルを変更すると、ポッドがスケジュールされず、「Error creating:…​」または「Warning:trident-csi-…​」が表示される場合があります。その場合は、のネームスペースラベルを確認してください privileged が変更されました。その場合は、Tridentを再インストールします。

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

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

allowPrivilegeEscalation

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

true

allowedCSIDrivers

TridentはインラインCSIエフェメラルボリュームを使用しません。

空です

allowedCapabilities

権限のないTridentコンテナにはデフォルトよりも多くの機能が必要ないため、特権コンテナには可能なすべての機能が付与されます。

空です

allowedFlexVolumes

Tridentはを利用しません "FlexVolドライバ"そのため、これらのボリュームは許可されるボリュームのリストに含まれていません。

空です

allowedHostPaths

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

空です

allowedProcMountTypes

Tridentでは使用していません ProcMountTypes

空です

allowedUnsageSysctls

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つあります。

該当なし

volumes

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

hostPath, downwardAPI, projected, emptyDir