Terraform 변수 지원
Terraform (TF) 변수에 대한 지원은 현재 CLI에서만 사용할 수 있습니다. Snyk은 다음을 지원합니다:
현재 Snyk은 출력 값(Output Values)을 지원하지 않습니다.
CLI는 모든 디렉토리를 스캔하고 지원되는 TF 파일이 포함된 각 디렉토리를 자체 모듈로 처리합니다. 변수가 포함된 각 모듈은 적절하게 역참조됩니다.
지원되는 TF 파일 형식은 .tf, .tfvars, .auto.tfvars입니다. Snyk은 환경 변수 또는 --var CLI 옵션을 사용하여 설정 및 정의된 변수를 지원하지 않습니다.
스캔은 TF가 우선순위를 처리하는 것과 동일한 방식으로 변수 정의 우선순위를 처리합니다.
--var-file 옵션을 사용하여 외부 변수 정의 파일을 로드할 수 있습니다. 예:
snyk iac test myproject/staging/networking --var-file=myproject/vars.tf
이것은 myproject 디렉토리에서 vars.tf 정의 파일을 로드하고, 변수가 존재하는 경우 역참조하여 이 예시에서는 myproject/staging/networking인 스캔된 경로의 컨텍스트에 적용합니다.
자세한 내용은 IAC test 도움말을 참조하십시오.
지원되는 Terraform 표현식
다음 표현식이 지원됩니다:
지원되는 Terraform 함수
다음 함수가 지원됩니다:
숫자 함수 - 모든 함수
문자열 함수 -
lower,regex,regexall,replace,substr,title,upper를 제외한 모든 함수컬렉션 함수 -
chunklist,concat,distinct,flatten,length,merge,reverse,sort인코딩 함수 -
csvdecode,jsondecode,jsonencode날짜 및 시간 함수 -
formatdate,timeadd
Terraform 변수 예시
올바른 우선순위의 변수 처리
다음 예시에서는 새 리소스를 구성하고 remote_user_addr라는 변수를 사용하여 cidr_blocks 값을 설정하는 것을 볼 수 있습니다.
변수는 variables.tf 파일 내에 기본값과 함께 정의되어 있지만, terraform.tfvars 파일 내에서 값이 재정의됩니다.
결과적으로 값은 0.0.0.0/0으로 설정되며, 이는 CLI에서 이슈를 발생시킵니다.
변수를 사용한 조건부 표현식
다음 예시에서는 로컬 및 입력 변수와 조건부 표현식을 함께 사용합니다.
local.test가 0과 같은지 확인하고, 그에 따라 cidr_blocks 값을 설정합니다.
이 경우 local.test는 0과 같으며, var.remote_user_addr의 값으로 설정되어 CLI에서 이슈를 발생시킵니다.
Last updated