SDK 참조
이름
snyk-iac-rules - Snyk IaC를 위한 사용자 정의 규칙을 작성, 디버그, 테스트 및 번들링하는 SDK
개요
snyk-iac-rules [COMMAND] [PATH] [OPTIONS]
설명
SDK는 Rego로 작성된 사용자 정의 규칙을 작성, 디버그, 테스트, 번들링 및 배포하는 데 도움이 됩니다. 이러한 규칙은 Snyk IaC CLI에 의해 IaC 구성 파일에서 취약점을 찾는 데 사용될 수 있습니다.
Snyk에 대한 자세한 내용은 Snyk 웹사이트를 참조하십시오.
어디서부터 시작해야 할지 모르겠습니까?
$ snyk-iac-rules template로 새 규칙 작성 시작Rego 작성을 시작하려면
$ snyk-iac-rules parse로 픽스처를 JSON으로 파싱$ snyk-iac-rules test로 규칙 테스트$ snyk-iac-rules build로 규칙 번들링$ snyk-iac-rules push로 규칙 배포
명령
명령별 플래그 및 사용법을 확인하려면 help 명령을 실행하십시오. 예를 들어 snyk-iac-rules --help를 실행합니다.
다음 최상위 SDK 명령을 사용할 수 있습니다.
template 새 규칙 작성을 위한 스캐폴딩을 생성합니다. 전체 지침은 snyk-iac-rules template --help를 참조하십시오.
parse 제공된 픽스처 파일의 JSON 형식을 반환합니다. Rego는 JSON 입력을 요구하므로 이를 사용하여 Rego 규칙을 구축하십시오. 전체 지침은 snyk-iac-rules parse --help를 실행하십시오.
test 일치하는 파일에서 발견된 모든 테스트 케이스를 실행합니다. 전체 지침은 snyk-iac-rules test --help를 실행하십시오.
build OPA 정책 및 데이터 파일을 번들로 패키징합니다. 전체 지침은 snyk-iac-rules build --help를 실행하십시오.
push build 명령으로 생성된 번들을 지원되는 컨테이너 레지스트리 중 하나에 배포합니다. 전체 지침은 snyk-iac-rules push --help를 실행하십시오.
경로
SDK의 모든 명령은 규칙이 위치할 폴더의 선택적 경로를 가질 수 있습니다. parse 및 push 명령은 이 경로가 엄격하게 필요한 유일한 명령입니다.
상대 경로 또는 절대 경로를 제공할 수 있습니다.
옵션
명령별 플래그 및 사용법을 확인하려면 help 명령을 실행하십시오. 예를 들어 snyk-iac-rules template --help를 실행합니다.
템플릿 옵션
--rule=RULE
정의하려는 규칙의 필수 이름입니다. 이는 최상위 레벨에 rules/ 폴더를 생성하며, 이 폴더에는 규칙 이름으로 명명된 폴더와 Rego 규칙 및 Rego 테스트 파일이 포함됩니다. 동시에, 규칙 작성 및 테스트 라이브러리 확장을 위해 data.lib에서 액세스할 수 있는 유틸리티 함수가 포함된 lib/ 폴더를 생성하거나 테스트를 위해 data.lib.testing을 생성합니다.
스캐폴드된 폴더 구조는 다음과 같습니다:
rules └── RULE ├── fixtures ├── allowed.<extension> └── denied.<extension> ├── main.rego └── main_test.rego lib └── testing └── main.rego └── tfplan.rego └── main.rego
참고: 규칙 이름에는 공백이 포함될 수 없으며 SNYK-로 시작할 수 없습니다.
--format=hcl2|json|yaml|tf-plan
규칙을 정의하려는 필수 구성 형식입니다. 이는 rules/<RULE>/fixtures 폴더 아래에 두 개의 픽스처 파일을 생성하며, 이 파일은 Rego 규칙의 동작을 확인하기 위해 테스트에서 사용됩니다.
--severity=low|medium|high|critical
Snyk Infrastructure as Code CLI를 실행할 때 표시될 규칙의 심각도입니다.
기본값: low
--title=TITLE
Snyk Infrastructure as Code CLI를 실행할 때 표시될 규칙의 제목입니다.
파싱 옵션
--format=hcl2|yaml|tf-plan
픽스처의 형식입니다. 이 형식은 Snyk이 픽스처에서 JSON을 생성하는 데 사용하는 파서를 결정합니다.
기본값: hcl2
테스트 옵션
--verbose
추적 로그를 출력합니다.
--explain=full|notes|fails
추적 로그를 필터링합니다.
기본값: fails
--timeout=TIMEOUT
테스트 실행을 기다리는 시간(나노초)입니다. TIMEOUT보다 오래 걸리면 테스트는 실패합니다.
기본값: 5000000 (5초).
--ignore
파일 및 폴더를 무시하고 테스트를 위해 로드되지 않도록 하는 데 사용할 수 있는 정규식을 허용합니다.
기본값: ".*" (숨겨진 파일), "fixtures"
--run
테스트의 하위 집합을 실행하는 데 사용할 수 있는 정규식을 허용합니다.
빌드 옵션
--output
결과 번들의 이름과 위치입니다.
기본값: bundle.tar.gz
--entrypoint
기본적으로 템플릿 명령은 rules/<rule> 폴더 아래에 규칙에 대한 Rego를 배치합니다. Rego는 규칙 패키지에 속하며, 진입 함수는 deny라고 불리며 잘못된 구성이 발견되면 취약점을 나타내는 JSON을 반환합니다. 이 구조는 rules/deny 진입점과 함께 작동하지만, 생성된 파일 및 패키지 구조를 수정해야 하는 경우 사용자 정의 진입점을 제공할 수 있습니다.
기본값: "rules/deny"
--ignore
파일 및 폴더를 무시하고 번들링을 위해 로드되지 않도록 하는 데 사용할 수 있는 정규식을 허용합니다.
기본값: "." (숨겨진 파일), "fixtures", "testing", "_test.rego"
--target=rego|wasm
번들에 사용할 형식입니다. Snyk IaC CLI에서는 Rego 번들이 현재 지원되지 않습니다.
기본값: wasm
푸시 옵션
--registry
번들이 푸시될 레지스트리 위치입니다. 예를 들어 docker.io/example/bundle.tar.gz
모든 명령에서 사용 가능한 플래그
[COMMAND] --help, --help [COMMAND], -h
도움말 텍스트를 출력합니다. 자세한 내용을 얻으려면 COMMAND를 지정할 수 있습니다.
SDK 예시
CUSTOM_RULE이라는 새 규칙을 생성합니다:
규칙을 테스트합니다:
사용자 정의 규칙 번들을 생성합니다:
SDK 종료 코드
가능한 종료 코드 및 그 의미:
0: 성공
1: 실패, 사용자 정의 규칙이 유효하지 않을 수 있음
Last updated