AWS EC2 인스턴스는 cloud-init
시작 중에 새 사용자를 생성하고 새 사용자의 암호를 설정합니다. Terraform은 Amazon Linux 2를 실행하는 새로운 EC2 인스턴스 생성을 트리거하는 데 사용됩니다. 비밀번호는 Terraform 변수를 통해 인스턴스로 전송되며, 그 값은 USERDATA
에서 실행하는 bash 스크립트 에 삽입됩니다 cloud-init
.
문제는 cloud-init
로그 파일( /var/log/cloud-init-output.log
)이 영구 로그에 비밀번호 값을 출력하고 있다는 것입니다.
cloud-init 로그 파일에 비밀번호가 유지되지 않도록 하려면 아래 코드에서 어떤 특정 구문을 변경해야 합니까?
이 안전하지 않은 로그 항목을 발생시키는 bash 파일의 코드 줄은 cloud-init
userdata
현재 다음과 같이 작성되어 있습니다.
echo "${var.vm_username}":"${var.vm_pwd}" | chpasswd
노트: 로그에서 비밀번호를 숨기는 방법만 고려하려는 경우(명령이 다음과 같은 경우) Terraform 요소를 무시할 수 있습니다.
echo myusername:mypassword | chpasswd
OP에서 Terraform을 언급한 유일한 이유는 비밀번호가 cloud-init
userdata
스크립트에 유지되지 않는다는 점을 지적하기 위해서였습니다.