Terraform으로 RDS를 만들 때의 비밀번호는 도대체 어떻게 처리해야 합니까?
이때 DB의 비밀번호를 어떻게 안전하게 설정해야 할지 고민이 많았기 때문에 결과를 정리해 보겠습니다.🙌
결론
tfstate
파일 자체를 confidential로 간주한다해설
RDS 인스턴스의 템플릿을 준비합니다.
rds.tf
variable "rds_password" {}
resource "aws_db_instance" "default" {
allocated_storage = 20
storage_type = "gp2"
engine = "postgres"
engine_version = "12.3"
instance_class = "db.t2.micro"
name = "rails_db_instance"
username = "admin"
password = var.rds_password
port = 5432
availability_zone = "ap-northeast-1a"
db_subnet_group_name = aws_db_subnet_group.default.id
publicly_accessible = true
vpc_security_group_ids = [aws_security_group.rds.id]
}
간단하게 외부에서 비밀번호var.rds_password
를 입력하세요.auto.tfvars
파일에 기술하는 것을 추천합니다.credential.auto.tfvars
rds_password = "k3jehufeio2938eurfjkd2ujefgy2"
.gitignore
에 추가하는 것을 잊지 마세요!!주의해야 할 것은 이렇게 하면 암호가 템플릿에서 사라지고
tfstate
파일에는 명문 형식으로 암호가 저장된다는 것이다.이것은 Terraform 정부도 인식한 것으로 최선의 실천으로 추천한다. "
tfstate
파일 자체를 confidential로 처리하는 것을 추천한다."🧐CI에서 시작할 때는 환경 변수를 사용합니다.
Terraform은
TF_VAR_
의 prefix에서 시작하는 환경 변수를 자동으로 읽을 수 있습니다.상기의 예를 참조하다TF_VAR_rds_password
의 값을 CI 도구로 설정하면 문제 없이 읽을 수 있습니다🏄♂️잡담
참고 자료
Reference
이 문제에 관하여(Terraform으로 RDS를 만들 때의 비밀번호는 도대체 어떻게 처리해야 합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tatsurom/articles/terraform-credential텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)