6장. Buildah를 루트가 아닌 사용자로 사용하여 컨테이너 이미지 빌드
컨테이너에서 root 사용자로 OpenShift Pipelines를 실행하면 컨테이너 프로세스 및 호스트를 다른 잠재적으로 악의적인 리소스에 노출할 수 있습니다. 컨테이너에서 루트가 아닌 특정 사용자로 워크로드를 실행하여 이러한 유형의 노출을 줄일 수 있습니다.
대부분의 경우 이 작업에서 이미지를 빌드하고 사용자 네임스페이스를 구성하는 사용자 지정 작업을 생성하여 root 권한 없이 Buildah를 실행할 수 있습니다.
이 구성을 사용하여 이미지가 성공적으로 빌드되지 않는 경우 사용자 정의 서비스 계정(SA) 및 SCC(보안 컨텍스트 제약 조건) 정의를 사용할 수 있지만 이 옵션을 사용하는 경우 Buildah 단계를 활성화하여 권한을 부여해야 합니다(allowPrivilegeEscalation: true
).
6.1. 사용자 네임스페이스를 구성하여 루트가 아닌 사용자로 Buildah 실행 링크 복사링크가 클립보드에 복사되었습니다!
사용자 네임스페이스를 구성하는 것은 루트가 아닌 사용자로 작업에서 Buildah를 실행하는 가장 간단한 방법입니다. 그러나 일부 이미지는 이 옵션을 사용하여 빌드하지 못할 수 있습니다.
사전 요구 사항
-
oc
명령줄 유틸리티를 설치했습니다.
프로세스
openshift-pipelines
네임스페이스에 제공된buildah
작업의 사본을 생성하고 복사 이름을buildah-as-user
로 변경하려면 다음 명령을 입력합니다.oc get task buildah -n openshift-pipelines -o yaml | yq '. |= (del .metadata |= with_entries(select(.key == "name" )))' | yq '.kind="Task"' | yq '.metadata.name="buildah-as-user"' | oc create -f -
$ oc get task buildah -n openshift-pipelines -o yaml | yq '. |= (del .metadata |= with_entries(select(.key == "name" )))' | yq '.kind="Task"' | yq '.metadata.name="buildah-as-user"' | oc create -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 복사한
buildah
작업을 편집합니다.oc edit task buildah-as-user
$ oc edit task buildah-as-user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 새 작업에서
주석
및stepTemplate
섹션을 생성합니다.buildah-as-user
작업에 추가된 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
podTemplate
이 사용되므로runAsUser:
설정은 엄격하게 필요하지 않습니다.
-
새
buildah-as-user
작업을 사용하여 파이프라인에 이미지를 빌드합니다.