튜토리얼: 빌드 출처 데이터로 컨테이너 이미지에 주석 달기
GitLab CI/CD 파이프라인에서 Cosign을 사용하여 빌드 출처 데이터로 컨테이너 이미지에 주석을 달고 서명합니다.
주석은 빌드 프로세스에 대한 유용한 메타데이터를 제공합니다. 이 정보는 감사와 추적에 사용됩니다. 보안 사고 발생 시, 상세한 출처 데이터가 있으면 조사 및 해결 프로세스를 상당히 빠르게 진행할 수 있습니다. 이 튜토리얼은 Cosign을 사용하여 컨테이너 이미지를 빌드, 서명 및 주석 추가 프로세스를 자동화하는 GitLab 파이프라인을 설정하는 방법을 설명합니다. .gitlab-ci.yml 파일을 구성하여 Docker 이미지를 빌드, 푸시, 서명하고 GitLab 컨테이너 레지스트리에 푸시할 수 있습니다. 컨테이너 이미지에 주석을 달려면: 이미지 및 서비스 이미지 설정 . CI/CD 변수 정의 . OIDC 토큰 준비 . 컨테이너 준비 . 이미지 빌드 및 푸시 . Cosign으로 이미지 서명 . 서명 및 주석 확인 . 모든 내용을 합치면 .gitlab-ci.yml 은 이 튜토리얼 끝에 제공된 샘플 구성 과 비슷해야 합니다. 시작하기 전에 # 다음이 필요합니다: Cosign v2.0 이상이 설치되어 있습니다. GitLab Self-Managed의 경우, 서명을 표시하기 위해 메타데이터 데이터베이스로 구성된 GitLab 컨테이너 레지스트리가 있습니다. 이미지 및 서비스 이미지 설정 # .gitlab-ci.yml 파일에서 docker:cli 이미지를 사용하고 Docker-in-Docker 서비스를 활성화하여 CI/CD 잡 내에서 Docker 명령어를 실행할 수 있도록 합니다. build_and_sign: stage: build image: docker:cli services: - docker:dind # Enable Docker-in-Docker service to allow Docker commands inside the container CI/CD 변수 정의 # GitLab CI/CD 사전 정의 변수를 사용하여 이미지 태그 및 URI에 대한 변수를 정의합니다. variables: IMAGE_TAG: $CI_COMMIT_SHORT_SHA # Use the commit short SHA as the image tag IMAGE_URI: $CI_REGISTRY_IMAGE:$IMAGE_TAG # Construct the full image URI with the registry, project path, and tag COSIGN_YES: "true" # Automatically confirm actions in Cosign without user interaction FF_SCRIPT_SECTIONS: "true" # Enables GitLab's CI script sections for better multi-line script output OIDC 토큰 준비 # Cosign을 이용한 키리스 서명을 위한 OIDC 토큰을 설정합니다. id_tokens: SIGSTORE_ID_TOKEN: aud: sigstore # Provide an OIDC token for keyless signing with Cosign 컨테이너 준비 # .gitlab-ci
