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-userCopy 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작업을 사용하여 파이프라인에 이미지를 빌드합니다.