This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.13. 特権付きセキュリティーコンテキストでの Pod の使用
OpenShift Pipelines 1.3.x 以降のバージョンのデフォルト設定では、パイプライン実行またはタスク実行から Pod が作成される場合、特権付きセキュリティーコンテキストで Pod を実行できません。このような Pod の場合、デフォルトのサービスアカウントは pipeline であり、pipelines サービスアカウントに関連付けられた SCC (Security Context Constraint) は pipelines-scc になります。pipelines-scc SCC は anyuid SCC と似ていますが、パイプラインの SCC に関する YAML ファイルに定義されるように若干の違いがあります。
pipelines-scc.yaml スニペットの例
さらに、OpenShift Pipeline の一部として提供される Buildah クラスタータスクは、デフォルトのストレージドライバーとして vfs を使用します。
4.13.1. 特権付きセキュリティーコンテキストを使用したパイプライン実行 Pod およびタスク実行 Pod の実行 リンクのコピーリンクがクリップボードにコピーされました!
手順
privileged セキュリティーコンテキストで (パイプライン実行またはタスク実行で作成された) Pod を実行するには、以下の変更を行います。
関連するユーザーアカウントまたはサービスアカウントを、明示的な SCC を持つように設定します。以下の方法のいずれかを使用して設定を実行できます。
以下のコマンドを実行します。
oc adm policy add-scc-to-user <scc-name> -z <service-account-name>
$ oc adm policy add-scc-to-user <scc-name> -z <service-account-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow もしくは、
RoleBindingおよび、RoleまたはClusterRoleの YAML ファイルを変更します。RoleBindingオブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterRoleオブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用するロールバインディングに基づいて適切なクラスターロールに置き換えます。
注記ベストプラクティスとして、デフォルトの YAML ファイルのコピーを作成し、その複製ファイルに変更を加えます。
-
vfsストレージドライバーを使用しない場合、タスク実行またはパイプライン実行に関連付けられたサービスアカウントを特権付き SCC を持つように設定し、セキュリティーコンテキストをprivileged: trueに設定します。
4.13.2. カスタム SCC およびカスタムサービスアカウントを使用したパイプライン実行とタスク実行 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの pipelines サービスアカウントに関連付けられた pipelines-scc SCC (Security Context Constraints) を使用する場合、パイプライン実行およびタスク実行 Pod にタイムアウトが生じる可能性があります。これは、デフォルトの pipelines-scc SCC で fsGroup.type パラメーターが MustRunAs に設定されているために発生します。
Pod タイムアウトの詳細は、BZ#1995779 を参照してください。
Pod タイムアウトを回避するには、fsGroup.type パラメーターを RunAsAny に設定してカスタム SCC を作成し、これをカスタムサービスアカウントに関連付けることができます。
ベストプラクティスとして、パイプライン実行とタスク実行にカスタム SCC およびカスタムサービスアカウントを使用します。このアプローチを使用することで、柔軟性が増し、アップグレード時にデフォルト値が変更されても実行が失敗することはありません。
手順
fsGroup.typeパラメーターをRunAsAnyに設定してカスタム SCC を定義します。例: カスタム SCC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタム SCC を作成します。
例:
my-sccSCC の作成oc create -f my-scc.yaml
$ oc create -f my-scc.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムサービスアカウントを作成します。
例:
fsgroup-runasanyサービスアカウントの作成oc create serviceaccount fsgroup-runasany
$ oc create serviceaccount fsgroup-runasanyCopy to Clipboard Copied! Toggle word wrap Toggle overflow カスタム SCC をカスタムサービスアカウントに関連付けます。
例:
my-sccSCC をfsgroup-runasanyサービスアカウントに関連付けます。oc adm policy add-scc-to-user my-scc -z fsgroup-runasany
$ oc adm policy add-scc-to-user my-scc -z fsgroup-runasanyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特権付きタスクにカスタムサービスアカウントを使用する必要がある場合は、以下のコマンドを実行して
privilegedSCC をカスタムサービスアカウントに関連付けることができます。例:
fsgroup-runasanyサービスアカウントを使用したprivilegedSCC の関連付けoc adm policy add-scc-to-user privileged -z fsgroup-runasany
$ oc adm policy add-scc-to-user privileged -z fsgroup-runasanyCopy to Clipboard Copied! Toggle word wrap Toggle overflow パイプライン実行およびタスク実行でカスタムサービスアカウントを使用します。
例:
fsgroup-runasanyカスタムサービスアカウントを使用した Pipeline 実行 YAMLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
fsgroup-runasanyカスタムサービスアカウントを使用したタスク実行 YAMLCopy to Clipboard Copied! Toggle word wrap Toggle overflow