Terraform 파일
Snyk 코드형 인프라를 사용하면 CLI를 사용하여 정적 구성 파일과 Terraform 계획 출력을 모두 스캔할 수 있습니다.
Terraform 구성 파일
Snyk IaC를 사용하면 CLI를 사용하여 main.tf와 같은 구성 파일을 스캔할 수 있습니다. 외부 모듈은 지원되지 않습니다. 변수 처리에 대한 자세한 내용은 Terraform 변수 지원을 참조하십시오.
구성 파일 스캔
파일 이름 또는 전체 디렉토리를 지정할 수 있습니다.
snyk iac test main.tf
snyk iac test .Terraform 계획
Terraform 계획은 구성 파일을 작성하고 해당 변경 사항을 배포하는 중간 단계입니다.
$ terraform plan은 원하는 상태와 일치하도록 대상 환경에 적용해야 하는 변경 사항을 식별합니다.
이 계획 단계의 일부로 대상 Terraform 배포에 사용되는 모든 변수 및 Terraform 모듈이 고려됩니다.
사용자 지정 Terraform 모듈을 작성하고 배포에서 참조하는 경우 Terraform 계획 출력에 포함되고 그에 따라 스캔됩니다. 즉, Terraform 계획 출력은 보안 관점에서 스캔할 완전한 아티팩트를 제공합니다.
Snyk CLI 버전 1.594.0부터 Snyk IaC CLI를 사용하여 이 아티팩트를 스캔할 수 있습니다.
이 파일은 Snyk으로 전송되어 처리되지 않습니다. CLI로 로컬에서 스캔되며 시스템을 벗어나지 않습니다.
Terraform 계획 출력 스캔
유효한 JSON 파일로 저장되어야 하는 Terraform 계획 출력의 경로를 제공합니다.
기본적으로 Snyk은 전체 인프라가 아닌 인프라에 적용될 변경 사항만 스캔합니다.
--scan= 옵션을 사용하여 이 동작을 변경할 수 있습니다.
--scan=resource-changes는 기본 동작입니다. 이는$ terraform apply를 실행할 경우 인프라에 적용될 변경 사항만 스캔합니다.--scan=planned-values는 전체 계획된 상태를 스캔하여 기존 인프라와 적용될 변경 사항에 대한 결과를 제공합니다.
Terraform 계획 출력을 아직 JSON 파일로 저장하지 않은 경우 다음 단계를 따라야 할 수 있습니다.
tf-plan.json 파일은 필요에 따라 이름을 지정할 수 있습니다.
이러한 파일은 민감한 것으로 간주되며 소스 제어에 커밋하는 것은 권장되지 않습니다.
Terraform 스캔 문제 해결
Terraform 프로젝트 테스트에 --experimental 옵션은 더 이상 필요하지 않습니다.
정적 파일과 계획 출력 스캔 간에 차이가 있습니다. 이는 다음으로 인해 발생할 수 있습니다.
변수 - Terraform 계획 출력은 변수에 저장된 값을 고려합니다.
Terraform 모듈 - Terraform 계획 출력에는 사용 중인 Terraform 모듈에서 발견된 모든 구성 문제가 포함됩니다.
차이점 - 기본적으로 Terraform 계획 출력 스캔은 전체 배포가 아닌 적용될 변경 사항에 대한 구성 문제만 스캔합니다. 반면 정적 스캔은 모든 파일을 살펴봅니다.
--scan=planned-values옵션을 사용하여 스캔을 다시 실행해 보십시오.
이 정보를 기반으로 설명할 수 없는 불일치를 발견한 경우 지원팀에 요청을 제출하십시오.
Last updated