第 31 章 通过策略保护构建
31.1. 概述
OpenShift Container Platform 中的构建在有权访问 Docker 守护进程套接字的特权容器中运行。作为一种安全措施,建议限制可以运行构建的人员以及用于这些构建的策略。自定义构建 本质上不如 Source 构建安全,因为他们可以在构建中执行任何代码,并有可能对节点的 Docker 套接字具有完全访问权限,因此默认禁用。另外,还应谨慎授予 Docker 构建 权限,因为 Docker 构建逻辑中的漏洞可能会导致在主机节点上授予特权。
在 Docker 和自定义构建过程中,Docker 守护进程执行的操作是特权的,并在主机网络命名空间中发生。这样的操作会绕过配置的联网规则,包括 EgressNetworkPolicy 对象和静态出口 IP 地址定义的规则。
默认情况下,所有能够创建构建的用户都被授予相应的权限,可以使用 Docker 和 Source-to-Image 构建策略。具有 cluster-admin 特权的用户可以启用 Custom 构建策略,如 将构建策略限制在本页的 User Globally 部分中所述。
您可以使用 授权策略 控制谁可以使用哪个构建策略进行构建。每个构建策略都有一个对应的构建子资源。用户必须具有创建构建的权限以及创建构建策略子资源的权限,才能使用该策略创建构建。提供的默认角色用于授予构建策略子资源的 create 权限。
策略 | 子资源 | 角色 |
---|---|---|
Docker | builds/docker | system:build-strategy-docker |
Source-to-Image | builds/source | system:build-strategy-source |
Custom | builds/custom | system:build-strategy-custom |
JenkinsPipeline | builds/jenkinspipeline | system:build-strategy-jenkinspipeline |