GitHub

openbao/openbao — OpenBao is a software solution to manage, store, and distribute sensitive data including secrets, certificates, and keys.

OpenBao — 비밀·인증서·키를 관리하는 오픈소스 시스템

OpenBao는 비밀, 인증서, 키를 저장하고 배포하는 시스템입니다. 암호화 저장, 필요할 때 발급하는 동적 자격 증명, 만료·갱신·폐기 기능으로 여러 시스템의 비밀 정보를 관리합니다.

에디터 노트

HashiCorp Vault의 커뮤니티 포크라는 점이 이 프로젝트의 전부입니다. 라이선스 변경 이후 엔터프라이즈 기능을 쓸 수 없게 된 팀들에게는 사실상 유일한 대안이죠. 관건은 포크 이후 독자적인 로드맵을 얼마나 가져갈 수 있는지입니다. 단순히 Vault를 따라가는 것만으로는 커뮤니티의 동력을 오래 유지하기 어렵습니다.

AI 요약

OpenBao는 데이터베이스 자격 증명이나 외부 API 키처럼 서비스 곳곳에서 쓰이는 비밀 정보를 관리하는 소프트웨어입니다. 커뮤니티 주도로 운영하며, OSI 승인 오픈소스 라이선스와 개방형 거버넌스를 지향합니다.

비밀 저장과 발급

임의의 키·값 비밀 정보를 저장할 때 저장소에 기록하기 전에 암호화합니다. 따라서 저장소 원본에 접근하더라도 비밀 정보를 바로 읽을 수는 없습니다. 저장소로는 디스크와 PostgreSQL 등을 지원합니다.

동적 비밀 기능은 AWS나 SQL 데이터베이스 같은 시스템에서 필요할 때 자격 증명을 발급합니다. 예를 들어 애플리케이션이 S3 접근 자격 증명을 요청하면 OpenBao가 필요한 권한을 가진 AWS 키 쌍을 생성합니다. 발급한 자격 증명은 lease가 끝나면 자동으로 폐기합니다.

암호화와 수명 관리

OpenBao는 데이터를 저장하지 않고 암호화하거나 복호화하는 기능도 제공합니다. 보안팀이 암호화 매개변수를 정하고, 개발자는 직접 암호화 방식을 설계하지 않은 채 SQL 데이터베이스 같은 별도 위치에 암호문을 저장할 수 있습니다.

모든 비밀에는 lease가 연결됩니다. 만료 시 자동 폐기하며, 내장된 갱신 API로 lease를 연장할 수도 있습니다. 단일 비밀뿐 아니라 특정 사용자가 읽은 비밀 전체나 특정 유형의 비밀 전체처럼 범위를 지정해 폐기할 수 있습니다. 이런 기능은 키 교체와 침입 상황에서의 접근 차단에 쓰입니다.

개발 및 사용 범위

프로젝트는 Go로 작성됐으며 Go Modules를 사용합니다. 저장소를 복제한 뒤 go build -o bin/bao .로 바이너리를 만들고, go run . server -dev로 개발 서버를 실행할 수 있습니다. 패키지 테스트는 go test ./some/package 형식으로 실행합니다. CI와 릴리스에서 쓰는 Go 버전은 .go-version에 지정돼 있습니다.

저장소에는 웹사이트, 문서, 웹 UI도 포함됩니다. 다른 프로젝트에서 가져다 쓸 수 있도록 github.com/openbao/openbao/api/v2와 github.com/openbao/openbao/sdk/v2 라이브러리를 제공합니다. 반면 애플리케이션 저장소 자체를 의존성으로 가져오는 방식은 지원하지 않습니다.

원문: GitHub / 번역·요약: Trawling