원격 IaC 사용자 정의 규칙 번들 사용
사용자 정의 규칙 번들을 생성한 후 번들 푸시의 단계를 따라 지원되는 OCI 레지스트리 중 하나에 배포할 수 있습니다.
사용자 정의 규칙 번들을 성공적으로 푸시한 후 다음 방법 중 하나를 사용하여 번들 사용을 강제할 수 있습니다:
마지막으로, 이러한 옵션 중 하나를 사용하여 사용자 정의 규칙을 강제한 후 Snyk IaC CLI를 사용자 이름과 비밀번호로 구성하여 Snyk이 OCI 레지스트리에서 풀을 승인할 수 있도록 합니다:
snyk config set oci-registry-username=<org registry username>
snyk config set oci-registry-password=<org registry password>이렇게 하면 다음 Snyk 환경 변수가 설정됩니다:
SNYK_CFG_OCI_REGISTRY_USERNAMESNYK_CFG_OCI_REGISTRY_PASSWORD
이 구성을 완료한 후 Snyk IaC 스캔을 실행할 수 있습니다. CLI는 백그라운드에서 구성된 컨테이너 레지스트리로 푸시된 번들을 가져옵니다.
snyk iac test <file>결과로 생성되는 구성 스캔 이슈에는 기본 Snyk 규칙과 사용자 정의 규칙 모두의 이슈가 포함됩니다. IaC CLI 테스트 결과 이해도 참조하십시오.
번들 경로를 정의하는 방법은 한 번에 하나만 정의해야 합니다. Snyk 설정 페이지 또는 Snyk API를 사용하여 사용자 정의 규칙 설정을 비활성화했는지 확인하십시오. 또는 snyk config unset을 사용하여 이전에 저장된 설정을 지우십시오.
Snyk 설정 및 원격 사용자 정의 규칙 번들
Snyk은 Snyk 설정 페이지를 사용하여 사용자 정의 규칙 설정을 구성할 것을 권장합니다. 이는 사용자 정의 규칙 번들의 URL과 태그가 수정될 때마다 쉽게 업데이트하는 방법입니다.
태그는 사용자 정의 규칙 번들의 버전을 관리하는 데 유용합니다. 업데이트된 번들을 구성하는 것은 새 버전 태그를 설정하여 쉽게 수행할 수 있습니다.
이러한 원격 번들은 조직(Organization) 및 그룹(Group) 수준에서 구성할 수 있습니다. 그룹에 대한 원격 번들을 구성하면 그룹의 모든 조직에 원격 번들이 적용됩니다.
원격 번들을 구성하려면:
코드형 인프라(Infrastructure as Code) 설정에서 규칙(Rules) 섹션을 찾습니다.
조직 수준에서 원격 사용자 정의 규칙 번들을 구성하려면 Settings > Infrastructure as Code로 이동하십시오.
그룹 수준에서 원격 사용자 정의 규칙 번들을 구성하려면 Settings > Infrastructure as Code로 이동하십시오.

규칙 활성화(Enable rules) 토글을 사용하여 원격 번들 구성을 활성화합니다. 이렇게 하면 다음 예시에 표시된 대로 레지스트리 URL과 태그를 지정하는 양식이 로드됩니다:

사용자 정의 규칙의 원격 번들에 대한 OCI 레지스트리 URL과 태그를 구성하고 **변경 사항 저장(Save changes)**을 클릭하여 저장합니다.

이제 사용자 정의 규칙의 원격 번들이 구성되었으며 IaC 파일을 테스트할 때 사용됩니다.
Snyk 설정을 사용하여 그룹의 원격 번들 구성을 재정의할 수 있습니다.
기본적으로 그룹에 대한 원격 번들을 구성하면 그룹의 모든 조직에 원격 번들이 적용됩니다. 따라서 그룹 구성이 업데이트되면 이러한 변경 사항은 모든 조직에 적용됩니다.
그러나 조직은 여전히 그룹 구성을 재정의하고 자체 번들과 태그를 정의할 수 있습니다. 그룹이 구성을 업데이트하더라도 이러한 값은 변경되지 않습니다.
그룹 구성을 재정의하려면 코드형 인프라 설정의 조직 규칙(Rules) 섹션으로 이동하십시오.
초기에는 섹션이 조직의 그룹에서 상속된 구성으로 채워집니다.

구성을 조직에 맞게 사용자 정의하고 **변경 사항 저장(Save changes)**을 클릭합니다.

이제 그룹 수준의 구성이 조직에 대한 사용자 정의 설정을 재정의하지 않습니다.
그룹 기본값으로 재설정(Reset to group default) 버튼을 사용하여 언제든지 그룹 구성의 상속을 복원할 수 있습니다.
Snyk API 및 원격 사용자 정의 규칙 번들
Snyk 설정 페이지를 통해 설정을 수동으로 업데이트하는 데 시간이 너무 많이 걸리는 경우 Snyk API를 사용할 수 있으며, 이를 통해 API 호출을 사용하여 사용자 정의 규칙 설정의 모든 변형을 보낼 수 있습니다.
예를 들어, 그룹 수준에서 사용자 정의 규칙 번들을 구성하려면 다음 본문을 제공하여 그룹에 대한 코드형 인프라 설정 업데이트 엔드포인트를 사용하십시오:
태그만 업데이트하려면 더 간단한 본문을 보낼 수 있습니다:
사용자 정의 규칙을 비활성화하려면
is_enabled플래그를 보낼 수 있습니다:
API는 변경 사항을 확인할 수 있도록 그룹 설정을 사용하여 응답합니다:
Snyk API를 사용하여 원격 번들 구성을 재정의할 수 있습니다.
설정 페이지와 유사하게, 그룹에 대한 코드형 인프라 설정 업데이트 엔드포인트를 사용하면 원격 번들을 그룹의 모든 조직에 적용할 수 있습니다. 조직은 API 호출을 사용하여 그룹 구성을 재정의하고 자체 번들과 태그를 정의할 수 있습니다.
그룹 구성을 재정의하려면 요청 본문에 다른 사용자 정의 규칙 번들과 태그를 제공하여 조직에 대한 코드형 인프라 설정 업데이트 엔드포인트를 호출하십시오:
API는 조직 설정을 사용하여 응답하고
parents섹션 아래에 그룹 설정을 표시하여 두 가지를 비교할 수 있도록 합니다:
그룹 설정으로 되돌리려면 다음 요청 본문을 제공하여 API를 호출하십시오:
API는 조직 설정을 사용하여 응답하고
parents섹션 아래에 그룹 설정을 표시하여 두 가지를 비교할 수 있도록 합니다:
환경 변수 및 원격 사용자 정의 규칙 번들
조직의 Snyk config를 사용하여 사용자 정의 규칙 번들의 위치를 구성할 수도 있습니다. 프로젝트 폴더에서 다음 명령을 사용하여 컨테이너 레지스트리를 Snyk IaC CLI로 구성하십시오:
이렇게 하면 Snyk 환경 변수 SNYK_CFG_OCI_REGISTRY_URL이 설정됩니다.
OCI 레지스트리 URL이 유효한 URL인지 확인하십시오. 예를 들어 DockerHub의 경우:
registry-1.docker.io/org-account/org-bundle-image:1.3.14
이전에 정의된 URL이 Snyk 설정 페이지에 있는 경우 지우거나 사용자 정의 규칙을 비활성화하십시오. 번들 경로를 정의하는 방법은 한 번에 하나만 정의해야 합니다.
원격 사용자 정의 규칙 번들 문제 해결
-d 옵션과 함께 명령을 실행하여 디버그 로그를 활성화하십시오:
발생할 수 있는 몇 가지 문제는 다음과 같습니다:
유효하지 않은 컨테이너 레지스트리 URL을 제공하는 경우. Docker Hub를 사용하는 경우 위 노트(note)를 참조하십시오. 오류는 다음과 같습니다:
유효하지 않은 자격 증명을 제공하는 경우. 오류는 다음과 같습니다:
설명할 수 없는 불일치를 발견한 경우 Snyk 지원팀에 문의하십시오.
Last updated