4.2.5.5.3. 事前に割り当てられた値および SCC (Security Context Constraints) について
受付コントローラーは、これが namespace の事前に設定された値を検索し、Pod の処理前に SCC (Security Context Constraints) を設定するようにトリガーする SCC (Security Context Constraint) の特定の条件を認識します。各 SCC ストラテジーは他のストラテジーとは別個に評価されます。 この際、(許可される場合に) Pod 仕様の値と共に集計された各ポリシーの事前に割り当てられた値が使用され、実行中の Pod で定義される各種 ID の最終の値が設定されます。
以下の SCC により、受付コントローラーは、範囲が Pod 仕様で定義されていない場合に事前に定義された値を検索できます。
-
最小または最大値が設定されていない MustRunAsRange の
RunAsUser
ストラテジーです。受付は openshift.io/sa.scc.uid-range アノテーションを検索して範囲フィールドを設定します。 -
レベルが設定されていない MustRunAs の
SELinuxContext
ストラテジーです。受付は openshift.io/sa.scc.mcs アノテーションを検索してレベルを設定します。 -
MustRunAs の
FSGroup
ストラテジーです。受付は openshift.io/sa.scc.supplemental-groups アノテーションを検索します。 -
MustRunAs の
SupplementalGroups
ストラテジーです。受付は openshift.io/sa.scc.supplemental-groups アノテーションを検索します。
生成フェーズでは、セキュリティーコンテキストのプロバイダーが Pod にとくに設定されていない値をデフォルト設定します。デフォルト設定は使用されるストラテジーに基づいて行われます。
-
RunAsAny
およびMustRunAsNonRoot
ストラテジーはデフォルトの値を提供しません。そのため、Pod が定義されるフィールドを必要とする場合 (グループ ID など)、このフィールドは Pod 仕様内に定義する必要があります。 -
MustRunAs
(単一の値) ストラテジーは、常に使用されるデフォルト値を提供します。たとえば、グループ ID の場合、Pod 仕様が独自の ID 値を定義する場合でも、namespace のデフォルトフィールドが Pod のグループに表示されます。 -
MustRunAsRange
およびMustRunAs
(範囲ベース) ストラテジーは、範囲の最小値を提供します。単一値のMustRunAs
ストラテジーの場合のように、namespace のデフォルト値は実行中の Pod に表示されます。範囲ベースのストラテジーが複数の範囲で設定可能な場合、これは最初に設定された範囲の最小値を指定します。
FSGroup
および SupplementalGroups
ストラテジーは、openshift.io/sa.scc.supplemental-groups アノテーションが namespace に存在しない場合に openshift.io/sa.scc.uid-range アノテーションにフォールバックします。いずれも存在しない場合、SCC は作成に失敗します。
デフォルトで、アノテーションベースの FSGroup
ストラテジーは、自身をアノテーションの最小値に基づく単一の範囲で設定します。たとえば、アノテーションが 1/3 を読み取る場合、FSGroup
ストラテジーは 1 の最小値および最大値で自らを設定します。追加のグループを FSGroup
フィールドで許可する必要がある場合は、アノテーションを使用しないカスタム SCC を設定することができます。
openshift.io/sa.scc.supplemental-groups アノテーションは、<start>/<length
または <start>-<end>
形式のコンマ区切りのブロックの一覧を受け入れます。openshift.io/sa.scc.uid-range アノテーションは単一ブロックのみを受け入れます。