第 2 章 为 pod 配置安全上下文
OpenShift Pipelines 启动的 pod 的默认服务帐户是 管道
。与 pipeline
服务帐户关联的安全性上下文约束(SCC)是 pipelines-scc
。pipelines-scc
SCC 基于 anyuid
SCC,但有以下 YAML 规范中定义的细微差别:
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
的最简单方法是,确保所有镜像都可以构建,以便在具有 特权
SCC 的 pod 中以 root 用户身份运行。有关运行带有更严格的安全设置的 buildah
的说明,请参阅 以非 root 用户身份使用 Buildah 构建容器镜像。
2.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