Git 모듈 revision 미지정

검토한 Git 모듈 revision을 명시하고 변경을 의도적으로 적용하세요.

설명

Terraform 모듈을 git::https://... 형태로 가져오면서 ?ref=로 revision을 지정하지 않으면 원격 저장소의 기본 브랜치를 사용합니다. 모듈을 새로 설치하거나 업데이트할 때 기본 브랜치 변경에 따라 이전과 다른 코드를 받을 수 있습니다.

검증한 모듈 버전을 명확히 선택해야 변경 시점을 통제하기 쉽습니다. 브랜치와 태그는 다른 커밋을 가리키도록 바뀔 수 있으므로, 같은 코드를 재현하려면 검토한 전체 커밋 해시로 고정하세요.

잠재적 영향

  • 모듈 코드가 예고 없이 바뀌어 인프라 동작이 달라질 수 있습니다.
  • 배포 실패 원인이 모듈 변경인지 자체 코드 변경인지 구분하기 어려워집니다.
  • 검증되지 않은 변경이 운영 환경에 반영될 수 있습니다.

해결 방법

Git 모듈 소스에 검토한 revision을 ?ref=로 명시하세요. 변경되지 않는 참조가 필요하면 전체 커밋 해시를 사용하고, 모듈 업그레이드는 별도 검토와 테스트를 거쳐 적용하세요.

예시

다음은 Git 모듈 참조 방식의 비교입니다. example.com 주소는 실제 모듈 저장소로 바꾸세요.

변경 전

hcl
module "network" {
  source = "git::https://example.com/terraform-modules/network.git"
}

변경 후

hcl
module "network" {
  source = "git::https://example.com/terraform-modules/network.git?ref=v1.4.2"
}

변경 후 예시는 v1.4.2 태그를 선택합니다. 태그가 이동하면 받는 코드도 달라질 수 있으므로 이 설정만으로 불변성이 보장되지는 않습니다.

참조