Terraform 변수 지원

Terraform (TF) 변수에 대한 지원은 현재 CLI에서만 사용할 수 있습니다. Snyk은 다음을 지원합니다:

현재 Snyk은 출력 값(Output Values)arrow-up-right을 지원하지 않습니다.

CLI는 모든 디렉토리를 스캔하고 지원되는 TF 파일이 포함된 각 디렉토리를 자체 모듈로 처리합니다. 변수가 포함된 각 모듈은 적절하게 역참조됩니다.

지원되는 TF 파일 형식은 .tf, .tfvars, .auto.tfvars입니다. Snyk은 환경 변수 또는 --var CLI 옵션을 사용하여 설정 및 정의된 변수를 지원하지 않습니다.

스캔은 TF가 우선순위를 처리하는 것과 동일한 방식으로 변수 정의 우선순위arrow-up-right를 처리합니다.

--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