보안 이미지 파이프라인을 만들면 소스 코드를 변경할 때마다 서명된 이미지를 생성하는 워크플로를 자동화할 수 있습니다.
이 페이지에서는 이미지 파이프라인을 사용하여 안전하고 증명된 이미지를 생성하는 방법을 설명합니다.
시작하기 전에
보안 이미지 파이프라인을 만들고 파이프라인에서 생성된 리소스를 숙지하세요.
파이프라인 사용
기본 이미지의 소스 코드는 보안 이미지 파이프라인을 설정할 때 지정한 GitHub 조직의 baseimgfct-[some number]-containers
저장소에 있습니다. 이미지를 업데이트하려면 저장소에서 관련 파일을 수정한 후 변경사항이 포함된 pull 요청을 팀원에게 보내 검토를 받습니다. 풀 요청을 만들면 YOUR_PROJECT_NAME-builder
의 Cloud Build 트리거가 업데이트된 이미지를 빌드하고 YOUR_PROJECT_NAME-stage
의 Artifact Registry 저장소에 이미지를 푸시합니다.
팀원이 YOUR_PROJECT_NAME-stage
에서 이미지를 테스트하고 확인한 후에는 pull 요청을 승인하고 병합할 수 있습니다. 병합 작업은 이미지를 빌드, 스캔, 증명하고 스테이징 프로젝트에서 YOUR_PROJECT_NAME-verified
로 이미지를 푸시합니다.
다음 단계에서는 보안 이미지 파이프라인을 사용하는 개발자 워크플로를 설명합니다.
baseimgfact-[some number]-containers 저장소로 이동합니다.
변경하려는 이미지에 해당하는 폴더(예:
ubuntu_18_0_4
)를 엽니다.수정을 합니다. 예를 들어
Dockerfile
를 수정하여 컨테이너 이미지를 업데이트합니다.이 커밋에 대한 새 브랜치를 만들고 pull 요청 시작을 선택합니다.
변경사항 제안을 클릭합니다.
주석 설명에 /gcbrun을 입력합니다. 이는 승인된 사용자만 저장소 변경사항을 제안할 수 있도록 하기 위함입니다.
pull 요청 만들기를 클릭합니다.
풀 요청을 만들면
YOUR_PROJECT_NAME-builder
의 빌드 트리거가 이미지를 빌드하고YOUR_PROJECT_NAME-stage
에 이미지를 푸시합니다.pull 요청을 검토하려면 팀 구성원을 추가하세요.
이미지를 수동으로 확인한 후 팀 구성원이 pull 요청을 승인하고 병합합니다.
병합 작업은 취약점이 있는지 이미지를 빌드, 테스트 및 스캔하고 이미지가 컨테이너 이미지인지 증명한 다음 이미지를
YOUR_PROJECT_NAME-verified
로 푸시합니다.
맞춤설정된 보안 정책 지정
보안 이미지 파이프라인을 사용하여 기본 컨테이너 이미지를 생성하고 유지 관리하는 경우 이미지가 확인되는 맞춤설정된 보안 정책을 지정할 수 있습니다.
YOUR_PROJECT_NAME-stage
는 컨테이너 이미지에서 일련의 검사를 실행하고 Binary Authorization 증명을 만드는 오픈소스 도구인 인스턴스 Voucher를 실행합니다. YOUR_PROJECT_NAME-stage
의 이미지가 수동으로 확인되었고 팀 구성원이 GitHub 컨테이너 이미지 저장소에서 pull 요청을 병합하면 Voucher는 Voucher 구성 파일에 정의된 이미지의 취약점을 확인합니다. 검사가 완료된 후 식별된 모든 취약점이 기준점 아래로 떨어지면 Voucher가 이미지의 Binary Authorization 증명을 만들고 이미지를 YOUR_PROJECT_NAME-verified
로 푸시합니다. 식별된 취약점이 기준점에 도달하거나 초과하면 Voucher가 증명을 만들지 않습니다. 확인된 증명이 없으면 Binary Authorization 시행자는 이미지를 YOUR_PROJECT_NAME-verified
로 푸시하지 못하게 합니다.
Voucher Server 구성 파일에서 Voucher가 다른 기준과 함께 실행하는 검사를 정의할 수 있습니다. 이 작업을 수행하는 방법에 대한 안내는 Voucher Server 빌드 및 구성을 참조하세요.