31장. 전략을 통한 빌드 보안
31.1. 개요
OpenShift Container Platform의 빌드는 Docker 데몬 소켓에 액세스할 수 있는 권한 있는 컨테이너에서 실행됩니다. 보안 조치에서는 빌드를 실행할 수 있는 사용자와 해당 빌드에 사용되는 전략을 제한하는 것이 좋습니다. 사용자 지정 빌드는 본질적으로 노드의 Docker 소켓에 대한 전체 액세스 권한으로 빌드의 모든 코드를 실행할 수 있으므로 소스 빌드보다 안전하지 않으므로 기본적으로 비활성화됩니다. Docker 빌드 논리의 취약점으로 인해 호스트 노드에 권한이 부여될 수 있으므로 Docker 빌드 권한도 주의해서 부여되어야 합니다.
Docker 및 사용자 지정 빌드 중에 Docker 데몬에서 수행하는 작업에는 권한이 부여되며 호스트 네트워크 네임스페이스에서 수행됩니다. 이러한 조치는 EgressNetworkPolicy 오브젝트 및 고정 송신 IP 주소에서 정의하는 규칙을 포함하여 구성된 네트워킹 규칙을 바이패스합니다.
기본적으로 빌드를 생성할 수 있는 모든 사용자에게 Docker 및 S2I 빌드 전략을 사용할 수 있는 권한이 부여됩니다. cluster-admin 권한이 있는 사용자는 이 페이지의 전역적으로 빌드 전략에 대한 Restricting Build Strategies에서 참조된 대로 사용자 정의 빌드 전략을 활성화할 수 있습니다.
권한 부여 정책을 사용하여 빌드 전략을 사용하여 빌드할 수 있는 사용자를 제어할 수 있습니다. 각 빌드 전략에는 해당 빌드의 하위 소스가 있습니다. 해당 전략을 사용하여 빌드를 생성하려면 사용자가 빌드를 생성할 수 있는 권한 과 빌드 전략 하위 리소스에서 생성할 수 있는 권한이 있어야 합니다. 빌드 전략 하위 리소스에 대한 생성 권한을 부여하는 기본 역할이 제공됩니다.
전략 | 하위 리소스 | 역할 |
---|---|---|
Docker | 빌드/Docker | system:build-strategy-docker |
S2I(Source-to-Image) | 빌드/소스 | system:build-strategy-source |
사용자 정의 | 빌드/사용자 정의 | system:build-strategy-custom |
JenkinsPipeline | builds/jenkinspipeline | system:build-strategy-jenkinspipeline |