여기어때, 시크릿 관리 플랫폼 Secrethub 구축으로 보안과 개발 생산성 두 마리 토끼를 잡다!
민감 정보 관리의 중요성이 커짐에 따라, 기존 분산 관리 방식의 한계를 인지하고 중앙 집중형 플랫폼(Centralized Platform) 구축을 결정
Secrethub는 데이터베이스 접속 정보, API Key 등 민감 정보를 안전하게 관리하는 내부 플랫폼으로, 플랫폼 차원의 관리를 목표로 함
외부 솔루션 대신 자체 개발을 선택한 이유는 내부 계정 시스템 연동 및 다양한 실행 환경 지원의 필요성 때문
Secrethub 도입으로 개발자는 민감 정보를 몰라도 개발 가능하며, 접근 통제 및 감사 기능을 강화함
자체 개발 선택의 기술적 배경
본문에서는 AWS Secrets Manager나 HashiCorp Vault와 같은 외부 솔루션 대신 자체 개발을 선택한 이유를 설명한다.
계정 관리의 복잡성(Account Management Complexity): 기존 내부 계정 시스템과의 통합을 통해 계정 관리 부담(Account Management Burden) 최소화
다양한 환경 지원(Diverse Environment Support): EKS, EC2, 로컬 환경 등 다양한 환경에서 일관된 경험(Consistent Experience) 제공
Secrethub Loader 라이브러리(Secrethub Loader Library): 순수 자바(Java) 기반으로 구현하여 의존성 충돌(Dependency Conflict) 없이 모든 프로젝트에서 동일하게 동작
Secret 관리 시스템 도입의 핵심 목표
Secrethub 도입의 목표는 단순히 보안 강화가 아닌, 개발 생산성 향상과 운영 효율성 증대에 있다.
코드와 민감 정보 분리(Separation of Concerns): 민감 정보를 코드에서 분리하여 개발자의 인지 부하(Cognitive Load) 감소
변경 시 운영 부담 감소(Reduced Operational Burden): 민감 정보 변경 시 전체 서비스에 미치는 영향 최소화
접근 통제 및 감사 기능 강화(Enhanced Access Control and Auditing): 누가, 언제, 어떤 민감 정보에 접근했는지 추적하여 보안 사고 예방
DevOps 역할에 대한 새로운 정의
Secrethub 구축 경험을 통해 DevOps팀의 역할에 대한 새로운 시각을 제시한다.
DevOps의 핵심 역할: 새로운 도구를 만드는 것이 아니라, 개발자가 불필요한 고민을 하지 않도록(Eliminating Unnecessary Concerns) 구조를 만드는 것
개발 생산성 향상(Improved Developer Productivity): 개발자가 민감 정보 관리의 복잡성에서 벗어나 애플리케이션 개발에 집중(Focus on Application Development)할 수 있도록 지원
DevOps 문화 정착(DevOps Culture Establishment): 개발과 운영 간의 협업을 강화하고, 지속적인 개선(Continuous Improvement)을 통해 시스템 안정성 확보
Secrethub 도입 후 변화
Secrethub 도입으로 민감 정보 관리 방식이 근본적으로 변화했다.
플랫폼 중심 관리(Platform-Centric Management): 각 서비스에서 담당하던 민감 정보 관리 책임을 플랫폼으로 이관(Responsibility Transfer)
개발자 경험 개선(Improved Developer Experience): 개발자는 민감 정보를 몰라도 애플리케이션 개발 가능, 기존 방식 그대로 사용(Using Existing Methods)
자원으로서의 Secret(Secret as a Resource): 민감 정보를 “직접 관리해야 하는 값”에서 “필요할 때 안전하게 주입되는 자원”으로 변경하여 보안 및 편의성(Security and Convenience) 향상