第 3 章 为 pod 配置安全上下文
OpenShift Pipelines 启动的 pod 的默认服务帐户是 pipeline
。与 pipeline
服务帐户关联的安全性上下文约束(SCC)是 pipelines-scc
。pipelines-scc
SCC 基于 anyuid
SCC,其细微差别如下:
pipelines-scc.yaml
片断示例
apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints # ... allowedCapabilities: - SETFCAP # ... fsGroup: type: MustRunAs # ...
另外,Buildah
集群任务作为 OpenShift Pipelines 的一部分提供,使用 vfs
作为默认存储驱动程序。
您可以为 OpenShift Pipelines 为管道运行和任务运行配置的 pod 配置安全上下文。您可以进行以下更改:
- 更改所有 Pod 的 default 和 maximum SCC
- 更改为管道运行和任务在特定命名空间中运行的 Pod 的默认 SCC
- 将特定的管道运行或任务运行配置为使用自定义 SCC 和服务帐户
运行 buildah
以确保所有镜像都可以构建的镜像是以 root 用户身份在具有 特权
SCC 的 pod 中运行。有关运行带有更严格的安全设置的 buildah
的说明,请参阅 以非 root 用户身份使用 Buildah 构建容器镜像。
3.1. 为 OpenShift Pipelines 创建的 pod 配置默认和最大 SCC
您可以为 OpenShift Pipelines 为任务运行和管道运行创建的所有 pod 配置默认安全性上下文约束(SCC)。您还可以配置最大 SCC,这是可为任何命名空间中这些 pod 配置的最小限制性 SCC。
流程
输入以下命令编辑
TektonConfig
自定义资源(CR):$ oc edit TektonConfig config
在 spec 中设置 default 和 maximum SCC,如下例所示:
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: # ... platforms: openshift: scc: default: "restricted-v2" 1 maxAllowed: "privileged" 2