6.2. 사용자 지정 SA 및 SCC를 정의하여 root가 아닌 사용자로 Buildah 실행
Buildah를 루트가 아닌 사용자로 사용하여 컨테이너 이미지의 빌드를 실행하려면 다음 단계를 수행할 수 있습니다.
- 사용자 정의 서비스 계정(SA) 및 SCC(보안 컨텍스트 제약 조건)를 정의합니다.
-
ID
1000
과 함께build
사용자를 사용하도록 Buildah를 구성합니다. - 사용자 정의 구성 맵으로 작업 실행을 시작하거나 파이프라인 실행과 통합합니다.
6.2.1. 사용자 정의 서비스 계정 및 보안 컨텍스트 제약 조건 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본 파이프라인
SA에서는 네임스페이스 범위 외부의 사용자 ID를 사용할 수 있습니다. 기본 SA에 대한 종속성을 줄이기 위해 사용자 ID 1000
을 사용하여 빌드
사용자에 필요한 클러스터 역할 및 역할 바인딩을 사용하여 사용자 지정 SA 및 SCC를 정의할 수 있습니다.
현재 컨테이너에서 Buildah를 성공적으로 실행하려면 allowPrivilegeEscalation
설정을 활성화해야 합니다. 이 설정을 통해 Buildah는 루트가 아닌 사용자로 실행할 때 SETUID
및 SETGID
기능을 활용할 수 있습니다.
프로세스
필요한 클러스터 역할 및 역할 바인딩을 사용하여 사용자 지정 SA 및 SCC를 만듭니다.
예: 사용된 ID
1000
의 사용자 정의 SA 및 SCCCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 1
- 사용자 지정 SA를 정의합니다.
- 2
- 수정된
runAsUser
필드를 사용하여 제한된 권한을 기반으로 생성된 사용자 정의 SCC를 정의합니다. - 3
- 현재 컨테이너에서 Buildah를 성공적으로 실행하려면
allowPrivilegeEscalation
설정을 활성화해야 합니다. 이 설정을 통해 Buildah는 루트가 아닌 사용자로 실행할 때SETUID
및SETGID
기능을 활용할 수 있습니다. - 4
- 사용자 ID
1000
으로 실행되도록 사용자 지정 SCC와 함께 연결된 모든 Pod를 제한합니다. - 5
- 사용자 지정 SCC를 사용하는 클러스터 역할을 정의합니다.
- 6
- 사용자 지정 SCC를 사용하는 클러스터 역할을 사용자 지정 SA에 바인딩합니다.
6.2.2. 빌드 사용자를 사용하도록 Buildah 구성 링크 복사링크가 클립보드에 복사되었습니다!
Buildah 작업을 정의하여 사용자 ID 1000
과 함께 빌드
사용자를 사용할 수 있습니다.
프로세스
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 예:
build
사용자를 사용하여 Buildah 작업Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.3. 사용자 정의 구성 맵 또는 파이프라인 실행을 사용하여 작업 실행 시작 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 Buildah 작업을 정의한 후 사용자 ID 1000
을 사용하여 이미지를 빌드 사용자로 빌드
하는 TaskRun
오브젝트를 생성할 수 있습니다. 또한 PipelineRun
오브젝트의 일부로 TaskRun
오브젝트를 통합할 수 있습니다.
프로세스
사용자 정의
ConfigMap
및Dockerfile
오브젝트를 사용하여TaskRun
오브젝트를 생성합니다.예: Buildah를 사용자 ID
1000
으로 실행하는 작업 실행Copy to Clipboard Copied! Toggle word wrap Toggle overflow (선택 사항) 파이프라인 및 해당 파이프라인 실행을 생성합니다.
예: 파이프라인 및 해당 파이프라인 실행
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 작업 실행 또는 파이프라인 실행을 시작합니다.