This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.18. Buildah를 사용하여 컨테이너 이미지 권한이 없는 빌드
컨테이너에서 Pipeline을 root 사용자로 실행하면 컨테이너 프로세스 및 호스트를 잠재적으로 악의적인 리소스에 노출할 수 있습니다. 워크로드를 컨테이너에서 루트가 아닌 특정 사용자로 실행하여 이러한 유형의 노출을 줄일 수 있습니다. Buildah를 사용하여 컨테이너 이미지의 권한이 없는 보안 빌드의 경우 다음 단계를 수행할 수 있습니다.
- SA(사용자 정의 서비스 계정) 및 SCC(보안 컨텍스트 제약 조건)를 정의합니다.
-
ID
1000
으로빌드
사용자를 사용하도록 Buildah를 구성합니다. - 사용자 정의 구성 맵을 사용하여 작업 실행을 시작하거나 파이프라인 실행과 통합합니다.
4.18.1. 사용자 정의 서비스 계정 및 보안 컨텍스트 제약 조건 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본 파이프라인
SA를 사용하면 네임스페이스 범위 외부에서 사용자 ID를 사용할 수 있습니다. 기본 SA에 대한 종속성을 줄이기 위해 사용자 ID가 1000
인 빌드
사용자에 대해 필요한 클러스터 역할 및 역할 바인딩을 사용하여 사용자 정의 SA 및 SCC를 정의할 수 있습니다.
절차
필요한 클러스터 역할 및 역할 바인딩을 사용하여 사용자 지정 SA 및 SCC를 만듭니다.
예: ID
1000
을 사용하는 사용자 정의 SA 및 SCCCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.18.2. 빌드 사용자를 사용하도록 Buildah 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 ID 1000
으로 빌드
사용자를 사용하도록 Buildah 작업을 정의할 수 있습니다.
절차
buildah
클러스터 작업의 사본을 일반 작업으로 생성합니다.tkn task create --from=buildah
$ tkn task create --from=buildah
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 복사한
buildah
작업을 편집합니다.oc edit task buildah
$ oc edit task buildah
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예:
빌드
사용자가 포함된 Modified Buildah 작업Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.18.3. 사용자 정의 구성 맵 또는 파이프라인 실행을 사용하여 작업 실행 시작 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 Buildah 클러스터 작업을 정의한 후 사용자 ID가 1000
인 빌드 사용자로 이미지를 빌드하는 TaskRun
오브젝트를 생성할 수 있습니다. 또한
TaskRun
오브젝트를 PipelineRun
오브젝트의 일부로 통합할 수 있습니다.
절차
사용자 정의
ConfigMap
및Dockerfile
오브젝트를 사용하여TaskRun
오브젝트를 생성합니다.예: 사용자 ID
1000
으로 Buildah를 실행하는 작업 실행Copy to Clipboard Copied! Toggle word wrap Toggle overflow (선택 사항) 파이프라인 및 해당 파이프라인 실행을 생성합니다.
예: 파이프라인 및 해당 파이프라인 실행
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 작업 실행 또는 파이프라인 실행을 시작합니다.
4.18.4. 권한이 없는 빌드의 제한 링크 복사링크가 클립보드에 복사되었습니다!
권한이 없는 빌드의 프로세스는 대부분의 Dockerfile
오브젝트에서 작동합니다. 그러나 몇 가지 알려진 제한으로 인해 빌드가 실패할 수 있습니다.
-
필요한 권한 문제가 없기 때문에
--mount=type=cache
옵션을 사용하지 못할 수 있습니다. 자세한 내용은 이 문서 를 참조하십시오. -
마운트 리소스에는 사용자 정의 SCC에서 제공하지 않는 추가 기능이 필요하므로
--mount=type=secret
옵션을 사용할 수 없습니다.
추가 리소스