4.6. セキュリティーおよびパーミッション
カーネルモジュールのロードは、非常に機密性の高い操作です。それらがロードされると、カーネルモジュールには、ノード上であらゆる種類の操作を実行するためのすべての可能な権限が付与されます。
4.6.1. ServiceAccounts および SecurityContextConstraints
Kernel Module Management (KMM) は、カーネルモジュールをノードにロードするための特権ワークロードを作成します。そのワークロードには、privileged
SecurityContextConstraint
(SCC) リソースの使用を許可された ServiceAccounts
が必要です。
そのワークロードの承認モデルは、Module
リソースの namespace とその仕様によって異なります。
-
.spec.moduleLoader.serviceAccountName
または.spec.devicePlugin.serviceAccountName
フィールドが設定されている場合は常に使用されます。 これらのフィールドが設定されていない場合:
-
Module
リソースが Operator の namespace (デフォルトではopenshift-kmm
) に作成された場合、KMM はデフォルトの強力なServiceAccounts
を使用してワーカーおよびデバイスプラグイン Pod を実行します。 -
Module
リソースがその他の namespace に作成された場合、KMM は namespace のdefault
ServiceAccount
を使用して Pod を実行します。Module
リソースは、privileged
SCC の使用を手動で有効にしない限り、特権ワークロードを実行できません。
-
openshift-kmm
は信頼できる namespace です。
RBAC 権限を設定するときは、ユーザーまたは ServiceAccount
が openshift-kmm
namespace で Module
リソースを作成すると、KMM がクラスター内のすべてのノードで特権ワークロードを自動的に実行することに注意してください。
ServiceAccount
が privileged
SCC を使用してワーカーまたはデバイスプラグイン Pod を実行できるようにするには、次の例のように oc adm policy
コマンドを使用します。
oc adm policy add-scc-to-user privileged -z "${serviceAccountName}" [ -n "${namespace}" ]
$ oc adm policy add-scc-to-user privileged -z "${serviceAccountName}" [ -n "${namespace}" ]
4.6.2. Pod のセキュリティー基準
OpenShift は、使用中のセキュリティーコンテキストに基づいて namespace Pod セキュリティーレベルを自動的に設定する同期メカニズムを実行します。アクションは不要です。