Chef Server를 사용하는 환경이라면 encrypted data bag 대신에 chef-vault를 사용할 수 있습니다. 아래 블로그 포스팅을 보면 encrypted data bag 및 한계점이 잘 설명되어 있습니다.
Chef Server를 사용하지 않는 경우에는 좀 복잡해지는데, 저는 AWS KMS를 이용해서 구성했습니다.
Git 저장소의 Infrastructure Code 에서 Password, API Key 등을 모두 암호화할 수 있었습니다. 그리고, AWS KMS을 사용하면 shared (encryption/decryption) key를 모든 노드에 뿌리고 관리하는 노가다를 피할 수 있습니다. 아래 URL의 내용을 참고하세요.
개념적으로는 Hashicorp Vault가 가장 앞서 있는 것 같습니다. 특정 솔루션 및 Azure, AWS와 같은 Cloud Service 에 종속되지 않는 것은 매력적으로 보입니다. 하지만, consul을 사용하지 않는 조직이라면 vault + consul 학습 부담이 꽤 있습니다. 그리고, Hashicorp 도구들의 공통된 특징인데, 빠르게 버전 올라가면서 하위호환성에 영향 주는 breaking changes가 간혹 발생합니다. 그래서, Github의 CHANGELOG 열심히 보면서 업그레이드도 맞춰서 잘 해야 합니다.
vault 관련해서 몇 가지 재미난 글 쓰레드 공유합니다. Credential 관리에 대한 사람들의 인식 및 접근 방법에 대해서 도움이 될 것이라고 생각합니다.