입력 파일 구문 분석하기
Regol 코드를 작성할 때 입력 파일의 내부 표현을 이해하는 것은 어려울 수 있습니다. 규칙을 작성하는 방법을 배우면 알 수 있겠지만, 입력 값은 JSON과 유사한 객체이지만 입력 파일은 YAML, Terraform 또는 테라폼 계획 JSON 출력일 수도 있습니다. 이러한 것들이 JSON으로 어떻게 변환되는지 이해하는 데 도움이 되도록 Snyk은 parse 명령을 제공합니다.
Regol 코드를 작성하는 데 도움이 될 JSON으로 파싱된 파일을 얻으려면 IaC 파일이 필요합니다. 규칙 테스트할 때도 사용할 수 있는 이 입력 파일은 기본적으로 파일을 JSON으로 파싱합니다.
Terraform 파일 파싱
예를 들어 다음과 같은 Terraform 파일이 있습니다:
resource "aws_redshift_cluster" "example" {
cluster_identifier = "tf-redshift-cluster"
database_name = "mydb"
master_username = "foo"
master_password = "Mustbe8characters"
node_type = "dc1.large"
cluster_type = "single-node"
}동등한 JSON 형식을 얻으려면 다음과 같이 파싱 명령을 실행하십시오:
snyk-iac-rules parse example.tf --format hcl2이렇게 하면 JSON이 출력되고, 규칙을 작성할 때 참고할 수 있습니다:
{
"resource": {
"aws_redshift_cluster": {
"example": {
"cluster_identifier": "tf-redshift-cluster",
"cluster_type": "single-node",
"database_name": "mydb",
"master_password": "Mustbe8characters",
"master_username": "foo",
"node_type": "dc1.large"
}
}
}
}Regol에서 node_type 필드에 액세스하는 것은 다음과 같이 보일 것입니다:
YAML 파일 파싱
다른 예로는 Kubernetes 리소스를 정의하는 다음 YAML 파일이 있습니다:
동등한 JSON 형식을 얻으려면 다음과 같이 파싱 명령을 실행하십시오:
이렇게 하면 JSON이 출력되고, 규칙을 작성할 때 참고할 수 있습니다:
Regol에서 privileged 필드에 액세스하는 것은 다음과 같이 보일 것입니다:
Terraform 계획 JSON 출력 파일 파싱
다른 예로는 terraform show -json ./plan/example.json.tfplan 명령으로 반환된 다음 Terraform 계획 JSON 출력 파일이 있습니다:
동등한 JSON 형식을 얻으려면 다음과 같이 파싱 명령을 실행하십시오:
이렇게 하면 JSON이 출력되고, 규칙을 작성할 때 참고할 수 있습니다:
Regol에서 tags 필드에 액세스하는 것은 다음과 같이 보일 것입니다:
Last updated