HashiCorp/Certificate

Terraform Authoring and Operations Professional(2)

backtwobasic 2025. 1. 31. 19:59

Plugin Mirroring

Terraform을 사용할 때, 일부 환경에서는 네트워크 연결이 제한될 수 있다. 이러한 경우, 필요한 Provider 플러그인을 미리 다운로드하여 로컬에서 사용할 수 있도록 설정할 수 있다. 

 

Provider 플러그인 미러링

먼저, 현재 프로젝트에서 필요한 Provider 플러그인을 로컬 파일 시스템에 다운로드해야 한다. 이를 위해 Terraform의 providers mirror 명령어를 사용합니다.

terraform providers mirror c:/plugin_cache
 

위 명령을 실행하면 현재 Terraform 설정에서 사용되는 모든 Provider 플러그인이 c:/plugin_cache 디렉터리에 저장된다.

 

로컬 플러그인 경로 지정

Terraform이 기본적으로 원격 Registry에서 플러그인을 다운로드하는 대신, 로컬 캐시에 있는 플러그인을 우선적으로 사용하도록 설정해야 한다. 이를 위해 provider_installation 블록을 Terraform CLI 설정 파일에 추가한다. Terraform CLI 설정 파일(~/.terraformrc 또는 terraform.rc)에 아래 내용을 추가한다.

provider_installation {
	filesystem_mirror {
    	path = "c:/plugin_cache" include = [ "registry.terraform.io/hashicorp/*" ]
    }
}

 

 

이렇게 설정하면 Terraform은 c:/plugin_cache 경로에서 HashiCorp Provider 플러그인을 우선적으로 불러와 사용한다. 

 

 

Checkov를 활용한 Terraform 코드 정적 분석

Checkov는 Infrastructure as Code(IaC) 파일을 정적 분석하여 보안 및 컴플라이언스 문제를 사전에 탐지하는 도구로,  Terraform을 포함한 다양한 IaC 프레임워크에서 잘못된 설정(misconfigurations)을 자동으로 감지하여 보안 사고를 예방하는 데 도움을 준다. 

 

정적 분석 도구(Static Analysis Tools)의 장점

정적 분석 도구는 코드 실행 없이 소스 코드를 검사하여 잠재적인 문제를 사전에 발견할 수 있다. 주요 장점은 다음과 같다.

  1. 초기 단계에서 문제 식별 : 개발 초기에 코드의 보안 및 설정 오류를 발견하여 수정할 수 있음
  2. 코딩 표준 준수 : 일관된 코딩 스타일을 유지하고, 보안 및 규정을 준수하도록 강제할 수 있음
  3. 즉각적인 피드백 제공 : 코드 작성 시 실시간으로 문제를 감지하고 피드백을 제공하여 빠른 수정이 가능

 

Terraform을 위한 Checkov의 장점

  • 보안 취약점 자동 감지 : Checkov는 Terraform 코드에서 보안 및 구성 오류를 찾아내어 보안 사고를 사전에 방지
  • 750개 이상의 정책 지원 : Checkov는 750개 이상의 보안 및 컴플라이언스 정책을 제공하여 다음과 같은 주요 문제를 감지
    • 잘못된 보안 그룹 설정 (예: 모든 트래픽을 허용하는 규칙)
    • 과도한 IAM 권한 부여 (예: 필요 이상의 관리자 권한)
    • 하드코딩된 보안 정보 (예: 코드 내 포함된 비밀번호 또는 API 키)
  • 배포 전 보안 리스크 사전 차단 : Checkov를 사용하면배포 전에 보안 취약점을 감지하여 프로덕션 환경에서 발생할 수 있는 문제를 방지

 

정리하자면, Terraform 코드의 보안성을 높이기 위해서는 사전 검토 및 자동화된 분석 도구가 필수적이다. Checkov를 활용하면 코드 작성 초기부터 보안 및 컴플라이언스를 강화할 수 있으며, 배포 전에 잠재적 위험을 제거하여 안전한 인프라 운영이 가능하다. 보안이 중요한 환경에서는 Checkov와 같은 정적 분석 도구를 적극적으로 활용하여 안전한 IaC 개발 문화를 만들어 나가는 것이 중요하다.

 

 

Saving Terraform plan to File

Terraform을 사용할 때, 변경 사항을 즉시 적용하는 대신 Plan 파일을 저장하고 검토 후 적용하는 방식을 활용할 수 있다. 이를 통해 예측 가능한 인프라 변경 및 승인 프로세스를 거친 후 배포할 수 있다.

 

Terraform Plan 파일 저장하기

Terraform은 terraform plan 명령어를 통해 적용될 변경 사항을 미리 확인할 수 있고, 이 계획을 파일로 저장하려면 다음 명령어를 실행한다.

terraform plan -out ec2.plan
이 명령을 실행하면 Terraform이 변경 사항을 분석하고, 결과를 바이너리 파일(ec2.plan)로 저장한다.

 

 

Plan 파일을 사용하여 적용하기

저장된 Plan 파일을 활용하여 인프라를 배포할 수 있다.

terraform apply ec2.plan

 

Plan 파일을 활용하는 이유

  • Terraform이 변경 사항을 다시 계산하지 않고, 사전 검토된 내용 그대로 적용
  • 팀 내 검토 및 승인 절차를 거친 후 안전하게 배포 가능
  • 예상치 못한 변경을 방지하여 일관성을 유지

 

Terraform Plan 파일 내용 확인하기

Plan 파일은 바이너리 형식으로 저장되므로 직접 읽을 수 없다, 따라서 내용을 확인하려면 terraform show 명령어를 사용한다.

terraform show ec2.plan

 

이 명령을 실행하면 해당 Plan 파일이 적용될 경우 어떤 변경 사항이 발생하는지 상세히 확인할 수 있다.

 

조직에서의 활용

기업 환경에서는 인프라 변경 사항을 문서화하고, 사전 승인 후 적용하는 절차가 필수적이다.

  • Plan 파일을 저장하여 변경 사항을 문서화
  • 보안 및 운영팀의 검토 및 승인 절차 진행
  • 승인된 Plan 파일을 기반으로 apply 실행하여 일관된 결과 유지

이러한 방식을 활용하면 예상치 못한 변경을 방지하고, 인프라 운영의 안정성을 확보할 수 있다.

'HashiCorp > Certificate' 카테고리의 다른 글

Terraform Authoring and Operations Professional(1)  (0) 2025.01.29