
누구나 사용할 수 있는 로컬 비밀번호 관리자
pm-team에서 완전한 RBAC, 부서, 승인 워크플로우, 공유 볼트를 제공합니다.go build -o pm .
pm setup # initialize vault and choose security profile
pm unlock # start a session
pm add # add a secret (interactive)
pm get github # fuzzy search and retrieve
pm lock # end session
팀 에디션:
cd team
go build -o pm-team .
APM은 검증된 필드와 유형별 표시 로직을 갖춘 25개의 구조화된 비밀 유형을 지원합니다:
| # | 유형 | # | 유형 |
|---|---|---|---|
| 1 | 비밀번호 | 14 | Docker 레지스트리 |
| 2 | TOTP | 15 | CI/CD 시크릿 |
| 3 | 정부 발급 신분증 | 16 | 보안 메모 |
| 4 | 의료 기록 | 17 | 복구 코드 |
| 5 | 여행 정보 | 18 | 인증서 |
| 6 | 연락처 | 19 | 뱅킹 |
| 7 | Wi-Fi | 20 | 문서 |
| 8 | API 키 | 21 | 소프트웨어 라이선스 |
| 9 | 토큰 | 22 | 법률 계약 |
| 10 | SSH 키 | 23 | 사진 |
| 11 | SSH 설정 | 24 | 오디오 |
| 12 | 클라우드 자격 증명 | 25 | 비디오 |
| 13 | Kubernetes |
보안
standard, hardened, paranoid, legacy볼트
TOTP
pm totp github클라우드 동기화
.apmignore세션
MCP 서버
read, secrets, write, admin복구
| 요소 | 명령어 |
|---|---|
| 이메일 OTP | pm auth email |
| 복구 키 | pm auth recover |
| 쿼럼 공유(Shamir) | pm auth quorum-setup |
| WebAuthn 패스키 | pm auth passkey register |
| 일회용 복구 코드 | pm auth codes generate |
가져오기 / 내보내기
| 형식 | 가져오기 | 내보내기 |
|---|---|---|
| JSON | pm import json | pm export json |
| CSV | pm import csv | pm export csv |
| TXT | pm import txt | pm export txt |
정책 엔진
name: corporate-standard
password_policy:
min_length: 14
require_uppercase: true
require_numbers: true
require_symbols: true
rotation_policy:
rotate_every_days: 90
notify_before_days: 14
pm policy load ./policies/
팀 에디션 (pm-team)
| 프로필 | Argon2 메모리 | 반복 횟수 | 병렬성 | 사용 사례 |
|---|---|---|---|---|
standard | 64 MB | 3 | 2 | 대부분의 머신 |
hardened | 256 MB | 5 | 4 | 워크스테이션(≥8 GB RAM) |
paranoid | 512 MB | 6 | 4 | 서버(≥16 GB RAM) |
legacy | PBKDF2 | 600,000 | 1 | 하위 호환성 |
APM은 pm setup 중에 CPU 코어와 RAM을 자동 감지하여 최적의 프로필을 추천합니다.
(이 글은 소유자가 작성한 것입니다) 2026년 3월 30일 기준으로, 저는 현재 APM의 GUI를 작업하고 있습니다. 처음에는 CLI 애플리케이션으로 시작했습니다. 이슈 #38에서 모든 내용을 자세히 설명하고 있습니다. 전반적으로 저는 APM이 더 많은 사용자층에 도달하기를 바랍니다. GUI는 apm-gui 저장소에 별도로 유지하거나, 조직을 만들어 두 저장소를 모두 그곳으로 옮길 예정입니다.
저는 APM을 진정한 개인 프로젝트로 시작했습니다. 어느 저녁, 제 자신만의 비밀번호 관리자를 만들고 싶었을 때 시작되었습니다. 저는 TOTP용으로 zoho password를 사용하고 있었는데 지겨웠습니다. 작동하는 것이 믿을 수 없을 정도로 느렸고, 토큰에 평문 파일을 사용하고 있었는데 이는 안전하지 않습니다.
현재로서는 프로젝트를 포기하거나 은퇴시킬 계획이 없습니다. 오랫동안 계속 작동할 것입니다. 매일 더 나아지도록 노력하고 매일 사용합니다. 때때로 저장소가 비활성 상태일 수 있는데, 그때는 애플리케이션을 테스트하고 실험합니다.
| 계층 | 안정적? | 볼트 안전? | 목적 |
|---|---|---|---|
| Canary | ❌ | ❌ | 가장 빠른 기능 미리보기 — 볼트가 손상될 수 있음 |
| Alpha | ❌ | ✅ | 불안정한 기능, 볼트 무결성 유지 |
| Beta | ✅ | ✅ | 완전히 테스트된 기능, 신중한 롤아웃 |
| Stable | ✅ | ✅ | 프로덕션 준비 완료 릴리스 |
Canary 릴리스를 시도하기 전에 항상 볼트를 백업하세요. P.S. 일부 릴리스의 경우, 불필요한 계층을 만들지 않고 얼마나 빠르고 쉽게 출시할 수 있는지에 따라 일부 계층이 릴리스되지 않을 수 있습니다.
전체 문서는 **aaravmaloo.github.io/apm**에서 확인할 수 있습니다.
기여를 환영합니다. 가이드라인은 CONTRIBUTING.md를 참조하세요.
GPL-3.0 License © Aarav Maloo