第 3 章 为 pod 配置安全上下文


OpenShift Pipelines 启动的 pod 的默认服务帐户是 pipeline。与 pipeline 服务帐户关联的安全性上下文约束(SCC)是 pipelines-sccpipelines-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
    1
    spec.platforms.openshift.scc.default 指定 OpenShift Pipelines 附加到用于工作负载的服务帐户(SA)的默认 SCC,默认为 管道 SA。此 SCC 用于所有管道运行和任务运行 Pod。
    2
    spec.platforms.openshift.scc.maxAllowed 指定至少限制的 SCC,您可以为管道运行和任务运行 Pod 配置。当您在特定的管道运行或任务运行中配置自定义 SA 和 SCC 时,此设置不适用。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.