Insights 설정: Snyk 오픈소스, 코드 및 컨테이너 프로젝트 연결
인사이트(Insights)를 설정한 후, Snyk은 선택한 애플리케이션에 필요한 연결을 설정할 수 있습니다.
Snyk Code 및 Snyk Open Source 취약점의 우선순위를 정하려면, Snyk은 가져온 Snyk 프로젝트와 Container 프로젝트 간의 관계를 이해해야 합니다. Snyk은 이러한 프로젝트 간의 관계를 컨테이너 이미지의 구성을 이해하기 위한 대리 수단으로 사용합니다.
Set up Insights UI는 다음을 포함하되 이에 국한되지 않는 다양한 자산 유형을 표시합니다.
리포지토리 자산
패키지
컨테이너 이미지
스캔된 아티팩트
이러한 자산은 Snyk 인벤토리 보기에 표시되는 자산과 직접 연결됩니다.
컨테이너 이미지는 Kubernetes 클러스터에 배포되어 실행 중인 빌드 아티팩트이므로, Snyk은 다음을 이해함으로써 소스 코드부터 배포된 상태까지 애플리케이션을 매핑할 수 있습니다.
소스 코드 및 오픈소스 종속성과 이미지 간의 링크.
Kubernetes에 어떤 이미지가 배포되었으며 어떻게 구성되었는지.

프로젝트 태그를 사용하여 프로젝트 링크하기
애플리케이션에서 사용하는 모든 프로젝트에 Snyk 프로젝트 태그를 추가하여 이러한 프로젝트를 함께 링크하고 Snyk이 테스트 중인 전체 애플리케이션을 표현할 수 있도록 하십시오.
두 프로젝트를 서로 연관시키려면 두 프로젝트에 정확히 동일한 태그를 추가하십시오. 예를 들어, Snyk 오픈소스 프로젝트와 Snyk 컨테이너 프로젝트가 서로 관련이 있다면 동일한 태그를 추가하십시오.
이 섹션 끝에 있는 예시를 참조하십시오.
프로젝트 태그 요구 사항
컨테이너 이미지와 코드 또는 오픈소스 프로젝트에 동일한 태그가 적용되어야 합니다.
태그는 지정된 형식을 따라야 합니다.
프로젝트가 매핑되기 위해 반드시 동일한 Snyk 조직에 있을 필요는 없지만 동일한 Snyk 그룹 내에 있어야 합니다.

프로젝트 태그 예시
단일 리포지토리를 단일 이미지로
이 예시에서는 단일 리포지토리에 package.json이 포함되어 있으며, 이는 image-A라는 이미지로 빌드됩니다.

이러한 연관성을 매핑하려면 다음과 같이 태그를 설정해야 합니다.
github.com/my-team/front-end
package.json
Snyk 조직: my-team
프로젝트 이름: package.json
component=pkg:github/my-team/front-end@main
양쪽에 동일한 태그가 적용됨
image-A라는 빌드된 컨테이너 이미지
Snyk 조직: my-team
프로젝트 이름: image-A
component=pkg:github/my-team/front-end@main
여러 리포지토리를 단일 이미지로

이 시나리오에서는 두 개의 기여 리포지토리가 있습니다.
Snyk 오픈소스에 의해 스캔된 package.json이 포함된 프론트엔드 리포지토리와 Snyk Code에 의해 스캔된 go 코드가 포함된 백엔드 리포지토리가 있습니다.
이러한 연관성을 매핑하려면 다음과 같이 태그를 설정해야 합니다.
github.com/my-team/front-end
package.json
Snyk 조직: my-team
프로젝트 이름: package.json
component=pkg:github/my-team/front-end@main
github.com/my-team/back-end
Go 소스 코드
Snyk 조직: my-team
프로젝트 이름: Code
component=pkg:github/my-team/back-end@main
image-A라는 빌드된 컨테이너 이미지
Snyk 조직: my-team
프로젝트 이름: image-A
component=pkg:github/my-team/front-end@main
component=pkg:github/my-team/back-end@main
이미지에 서로 다른 태그를 가진 두 개의 업스트림 종속성이 있으므로 이미지에 두 개의 태그가 적용됩니다.
이미지에 여러 태그를 적용할 수 있습니다.
모노레포를 여러 이미지로

이 예시에서 애플리케이션 팀은 모노레포 접근 방식을 사용하고 있습니다. 리포지토리의 콘텐츠는 별도로 실행될 수 있으므로 서로 다른 컨테이너 이미지로 빌드됩니다.
여기서는 태그의 범위를 더 정확하게 지정하여 태그를 더욱 차별화해야 합니다.
github.com/my-team/service
package.json
Snyk 조직: my-team
프로젝트 이름: package.json
component=pkg:github/my-team/service/front-end@main
끝에 /front-end를 지정하여 태그의 범위를 더욱 좁힘
my-app-frontend:latest라는 빌드된 컨테이너 이미지
Snyk 조직: my-team
프로젝트 이름: my-app-frontend:latest
component=pkg:github/my-team/service/front-end@main
github.com/my-team/service
Go 소스 코드
Snyk 조직: my-team
프로젝트 이름: Code
component=pkg:github/my-team/service/back-end@main
끝에 /back-end를 지정하여 태그의 범위를 더욱 좁힘
my-app-backend:latest라는 빌드된 컨테이너 이미지
Snyk 조직: my-team
프로젝트 이름: my-app-backend:latest
component=pkg:github/my-team/service/back-end@main
태그 적용
프로젝트 태그는 다음과 같이 적용될 수 있습니다.
Snyk Code
API
UI
다음에 의해 생성된 프로젝트의 경우
Git 가져오기
Snyk Open Source
API
UI
CLI
다음에 의해 생성된 프로젝트의 경우
Git 가져오기
CLI Monitor
Snyk Container
API
UI
CLI
다음에 의해 생성된 프로젝트의 경우
Git 가져오기
CLI Monitor
컨테이너 레지스트리 통합
Snyk은 프로세스 자동화를 위해 API를 통해 태그를 적용할 것을 권장합니다. 자세한 내용은 프로젝트에 태그 추가 엔드포인트를 참조하십시오.
프로젝트 태그 UI 예시

CLI 예시
snyk monitor --project-tags=component=pkg:github/my-team/back-end@main
API 예시
프로젝트 업데이트 문서를 참조하십시오.
예시:
Kubernetes 커넥터가 올바르게 설정되었는지 확인하려면, Insights 페이지의 Set up Insights 탭으로 이동하여 Image composition 섹션을 확인하여 Insights가 액세스할 수 있는 데이터를 확인하십시오.
Last updated