배경
Terraform 관련 Jenkins Pipeline 중 다음과 같은 요건이 있었다.
- tfvar를 사용
- SecretsManager를 사용하여 환경 변수 등록
환경 변수에 등록된 Terraform 관련 변수를 어떻게 사용할 수 있는에 대한 내용을 기록하려고 한다.
방법
variables.tf 에 아래와 같이 정의한다.
variable "api_key" {
type = string
description = "some api key"
...
}기존에는 tfvars에 아래와 같이 정의해야만 한다. 하지만 이렇게 정의하게 되면, 사용자 측에서 env를 잘못하여 올릴 수 있어 보안 상 좋지 않을 수 있음
api_key = "abcdefg"Jenkins Pipeline에서 해당 key를 secretsmanager 또는 parameter store에 저장 후 등록하여 사용한다면 더 안전하게 사용할 수 있는 환경을 구성할 수 있음
aws secretsmanager get-secret-value --secret-id '[SECRET ARN]' --region [REGION] --query SecretString --output text
export TF_VAR_api_key="abcdefg"