보안 이미지 파이프라인을 만든 후에는 소스 코드를 변경할 때마다 서명된 이미지를 생성하는 워크플로를 자동화할 수 있습니다.
이 페이지에서는 이미지 파이프라인을 사용하여 안전하고 증명된 이미지를 만드는 방법을 설명합니다.
시작하기 전에
보안 이미지 파이프라인을 만들고 파이프라인에서 만든 리소스를 숙지합니다.
파이프라인 사용
기본 이미지의 소스 코드는 보안 이미지 파이프라인을 설정할 때 지정한 GitHub 조직의 baseimgfct-[some number]-containers
저장소에 있습니다. 이미지를 업데이트하려면 저장소에서 관련 파일을 편집하고 팀 구성원에게 검토를 위해 변경사항과 함께 pull 요청을 보냅니다. 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 요청 만들기를 클릭합니다.
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 빌드 및 구성을 참조하세요.