사용자 정의 베이스 이미지 권장 사항 사용
기능 가용성\n사용자 정의 베이스 이미지 권장 사항 기능은 엔터프라이즈(Enterprise) 플랜에서만 사용할 수 있습니다.\n자세한 내용은 플랜 및 가격을 참조하십시오.
사용자 정의 베이스 이미지 권장 사항(CBIR) 개요
컨테이너 이미지를 스캔할 때 Snyk은 감지된 베이스 이미지를 기반으로 권장 사항을 제공합니다. Snyk은 Docker 공식 이미지에 대해서만 권장 사항을 미리 계산하므로 이러한 권장 사항은 이미지의 하위 집합에만 적용됩니다.
고객은 종종 Docker 공식 이미지 또는 다른 업스트림 이미지 위에 구축된 자체 내부 베이스 이미지를 유지 관리합니다. 이러한 이미지는 더 넓은 범위의 개발 팀에 서비스로 제공됩니다. 예를 들어: somecompany/base-python:3.12.1.
사용자 정의 베이스 이미지 권장 사항 기능(CBIR)을 통해 Snyk은 내부 이미지 풀에서 이미지 업그레이드를 권장할 수 있습니다. 이를 통해 팀은 이미지 선택에 도움이 되는 취약점 수와 함께 내부 베이스 이미지의 최신 버전을 알 수 있습니다.\ Snyk은 어떤 버전을 표시할지 결정하기 위해 취약점 데이터를 사용하지 않습니다. 현재 이미지에 대한 업그레이드로 간주되는 모든 버전은 권장 이미지 풀에 제공됩니다. 이는 사용자에게 어떤 이미지를 권장하고 어떤 이미지를 권장하지 않을지에 대한 가장 큰 통제권을 제공합니다.\ 권장 사항에 포함(Include in recommendations) 옵션을 비활성화하여 권장하지 않아야 하는 이미지를 제거할 수 있습니다. 자세한 내용은 생성된 프로젝트를 사용자 정의 베이스 이미지로 표시를 참조하십시오.
CBIR 작동 방식
사용자 정의 베이스 이미지 권장 사항 기능을 사용하려면 베이스 이미지와 베이스 이미지 위에 구축된 애플리케이션 이미지가 Snyk에 프로젝트로 가져와야 합니다. 이 프로젝트는 다른 조직(Organization)에 있을 수 있지만, 조직은 동일한 그룹(Group)에 속해야 합니다.
애플리케이션 이미지에 대한 사용자 정의 베이스 이미지 권장 사항을 받으려면 애플리케이션 이미지 프로젝트에 Dockerfile을 지정해야 합니다.
공개 Docker 공식 이미지와 달리 Snyk은 Dockerfile이 애플리케이션 이미지 프로젝트에 연결된 경우에만 사용자 정의 베이스 이미지를 감지할 수 있습니다.
모든 사용자 정의 베이스 이미지 권장 사항은 이미지 태그와 관계없이 마이너 업그레이드로 간주됩니다.
동일한 리포지토리에 가져온 프로젝트 전반에 걸쳐 베이스 이미지의 최신 버전을 결정하기 위해 Snyk은 버전 관리 스키마를 구성할 수 있도록 합니다. 자세한 내용은 사용자 정의 베이스 이미지에 대한 버전 관리 스키마를 참조하십시오.
사용자 정의 베이스 이미지 권장 사항 기능은 자동 Fix PR을 지원합니다. 베이스 이미지의 최신 버전을 사용하지 않는 경우, 이미지 가져오기 직후 Snyk은 Dockerfile에 대한 수정 풀 리퀘스트를 자동으로 발행하여 최신 사용 가능한 사용자 정의 베이스 이미지 버전으로 업그레이드합니다.
특별 고려 사항
CBIR 기능에서 제공하는 권장 사항은 구성된 버전 관리 스키마를 준수하는 버전이 지정된 태그에 의존합니다.
"latest" 태그를 단일 선택으로 이 풀에 추가하거나 사용자 정의 버전 관리 체계의 일부로 추가하는 것이 가능합니다. 그러나 Snyk은 CBIR 기능의 이점을 무효화하므로 이 작업을 권장하지 않습니다. 다음 정보는 권장 사항에 "latest" 태그가 포함되지 않은 것으로 간주합니다.
최신 및 기타 롤링 이미지 태그
Snyk은 "latest" 태그를 다른 태그와 함께 버전 관리 스키마 풀에 추가하지 않을 것을 권장하므로 Snyk은 이를 업데이트로 제공하지 않습니다. 다른 유사한 롤링 태그도 마찬가지입니다.
"latest" 태그를 사용하는 모든 이미지의 경우, Snyk은 해당 리포지토리의 현재 최신 이미지(버전이 지정된 태그 기준)로 이동할 것을 권장합니다. 이는 Snyk이 스캔하는 컨테이너가 "latest" 태그를 사용하여 구축되었을 때, 이 태그가 최신 이미지로 간주되는 이미지와 동일한 이미지를 참조했을 수도 있고 그렇지 않았을 수도 있기 때문입니다.
베이스 이미지 업그레이드 권장 사항
베이스 이미지 업그레이드 권장 사항(Recommendations for upgrading the base image) 뷰는 CBIR 태그 풀에 없는 베이스 이미지의 경우 취약점을 표시하지 않습니다. 이는 일반적으로 "latest" 이미지 태그 또는 기타 롤링 태그가 있는 이미지 또는 권장 풀에 없는 기타 이미지의 경우에 해당합니다. 이는 베이스 이미지 자체가 취약점에서 자유롭다는 것을 의미하지는 않습니다. 이미지가 포함하는 취약점을 확인하려면 해당 이미지의 스캔 결과를 확인하십시오.
CBIR 활성화: 이미지를 사용자 정의 베이스 이미지로 구성
다음 단계는 사용자 정의 베이스 이미지를 구성하는 방법을 설명합니다. 조직을 위한 사용자 정의 베이스 이미지를 생성하고 유지 관리하는 팀이 이 단계를 수행합니다.
베이스 이미지 빌드 및 가져오기
사용자 정의 베이스 이미지를 빌드합니다.
다음 옵션 중 하나를 사용하여 이미지를 Snyk 프로젝트로 가져옵니다:
Snyk 웹 UI: 컨테이너 레지스트리를 사용하여 Snyk으로 이미지 가져오기.
CLI:
snyk container monitor명령을 사용합니다.--project-name플래그(필수)를 설정하여 프로젝트에 고유한 이름을 부여합니다. Snyk은 리포지토리 없이 이미지 이름과 태그를 사용할 것을 권장합니다. 예를 들어base-python:3.9.2_2021110408.Snyk CLI 명령 예시:
snyk container monitor somecompany/base-python:3.9.2_2021110408 --project-name=base-python:3.9.2_2021110408 --org=ORGANIZATION_ID/ORGANIZATION_NAME
생성된 프로젝트를 사용자 정의 베이스 이미지로 표시
웹 UI에서 가져온 베이스 이미지가 있는 프로젝트를 엽니다.
프로젝트 페이지에서 **설정(Settings)**으로 이동합니다.
**사용자 정의 베이스 이미지(Custom Base Image)**를 활성화합니다. 이렇게 하면 Snyk이 이 이미지를 다른 프로젝트의 베이스 이미지로 인식할 수 있습니다.
Snyk이 이 이미지를 최상의 업그레이드 경로를 결정하는 소스로 사용하도록 하려면 **권장 사항에 포함(Include in recommendations)**을 활성화합니다.
기존 컨테이너 프로젝트에서 API 엔드포인트를 사용하여 사용자 정의 베이스 이미지 생성을 통해서도 이 작업을 수행할 수 있습니다.

**변경 사항 저장(Save changes)**을 클릭합니다.
이것이 이미지 리포지토리에서 사용자 정의 베이스 이미지로 표시한 첫 번째 프로젝트인 경우, 버전 관리 스키마를 설정해야 합니다. 자세한 내용은 사용자 정의 베이스 이미지에 대한 버전 관리 스키마를 참조하십시오. 이미지 리포지토리에 스키마가 이미 존재하는 경우 변경 사항을 저장한 후 표시됩니다.
버전 관리 스키마에 대한 변경 사항은 리포지토리의 모든 사용자 정의 베이스 이미지에 적용됩니다.
사용자 정의 베이스 이미지로 이미 표시한 프로젝트에 대한 **사용자 정의 베이스 이미지 설정(Custom base Image settings)**도 편집할 수 있습니다.
사용자 정의 베이스 이미지 권장 사항 받기
미리 빌드된 사용자 정의 베이스 이미지를 사용하고 애플리케이션용 미리 빌드된 이미지 위에 추가 레이어를 추가하는 팀이 이 단계를 수행합니다.
먼저 새 Snyk 프로젝트로 이미지를 가져옵니다. 프로젝트가 사용자 정의 이미지와 동일한 그룹에 있는지 확인하십시오. CLI 또는 웹 UI를 사용하여 이미지를 가져올 수 있습니다.
CLI와 웹 UI에서 동일한 이미지를 스캔하는 경우, Snyk은 두 개의 프로젝트를 생성하고 둘 다 모니터링합니다.
CLI를 통해 새 이미지 가져오기 및 Dockerfile 설정
다음은 CLI를 통해 이미지를 가져오는 예시 명령입니다:
snyk container monitor somecompany/app-python:2021110408 --file=path/to/Dockerfile
Dockerfile 경로를 지정하려면 --file(필수)을 사용하십시오.
이전에 가져온 이미지 사용 및 Dockerfile 설정
기존 컨테이너 프로젝트를 수정하여 Dockerfile을 첨부할 수 있습니다.
애플리케이션 이미지의 프로젝트 페이지에서 **설정(Settings)**으로 이동하고 **Dockerfile 구성(Configure Dockerfile)**을 클릭하여 드롭다운에서 소스 제어 시스템을 선택하여 Dockerfile을 구성하십시오.

Dockerfile 리포지토리를 선택하고 Dockerfile 경로를 추가합니다. **Dockerfile 업데이트(Update Dockerfile)**를 클릭합니다.
사용자 정의 베이스 이미지 권장 사항 보기
다음으로 프로젝트(Project) 페이지로 이동하여 이미지에 대한 권장 사항을 확인하십시오.
기존 프로젝트에 대한 Dockerfile을 설정할 때 프로젝트를 재테스트해야 할 수 있습니다.
CBIR의 알려진 제한 사항
애플리케이션 이미지를 스캔할 때, Dockerfile이 스캔된 프로젝트에 첨부되지 않으면 사용자 정의 베이스 이미지 권장 사항이 나타나지 않습니다.
사용자 정의 베이스 이미지에 대한 권장 사항이 제공될 때 이미지 레지스트리는 무시됩니다. Snyk이 권장 사항 및 Fix PR을 표시할 때, 동일한 리포지토리이지만 다른 레지스트리를 가진 이미지는 동일한 레지스트리(현재 베이스 이미지의 레지스트리)에서 온 것으로 처리됩니다.
Last updated