vidi's blog

API 키 관리를 위한 패스워드 매니저 선택기 1Password vs macOS Keychain

Password management tool의 필요성

tool

많은 SI 프로젝트와 외주, 개인프로젝트를 하다보니 발급한 API 키라던가, pem 파일같은 보안이 필요한 자료들이 많이 쌓이게 되었다. 그동안 obsidian에 메모로 작성하고 필요할때 열어서 처리하는식으로 했는데, 프로젝트가 10개이상 넘어가게되니 관리하기가 너무 어려워졌다.

그래서 고려했던게 password를 관리하는 툴인데, 찾아보니 두가지정도 고려할수 있게 되었다

  • 패스워드시장에서 가장 유명한 1password
  • 맥에서 지원하는 keychain

내가 원하는기능은 아래와같다.

  • 그룹을 만들수 있어야한다. 개인프로젝트, SI, 외주 각각으로 비밀번호를 저장할수 있어야한다
  • secure memo 기능이 있어야한다. 암호화된 환경에서 메모를 저장해두고 가져올수 있어야한다.

이정도 기능만 제공한다면 어떤 플랫폼이라도 괜찮다.

1Password 살펴보기

장점들

직관적인 사용자 경험 1Password의 가장 큰 장점은 UI/UX다. 전용 앱답게 카테고리 분류가 명확하고, API 키, 신용카드, 문서 등을 타입별로 관리할 수 있다. 특히 ‘API Credential’ 템플릿이 따로 있어서 API 키 관리에 최적화되어 있다.

강력한 검색과 태그 기능 프로젝트가 많아질수록 빛을 발하는 기능이다. 태그를 활용해서 “SI-2024”, “개인프로젝트-AI” 같은 식으로 세분화할 수 있고, 전체 텍스트 검색이 매우 빠르다.

크로스 플랫폼 지원 Windows, Linux, Android 등 다양한 플랫폼을 지원한다. 개발자라면 여러 환경에서 작업할 일이 많은데, 어디서든 동일한 경험을 제공한다.

개발자 친화적 기능들 CLI 도구(op)가 정말 잘 만들어져 있다. op read "op://vault/openai/api-key" 같은 식으로 스크립트에서 바로 API 키를 가져올 수 있어서, CI/CD 파이프라인에 통합하기 편하다.

단점들

비용 개인용이 월 $3, 가족용이 월 $5다. 연간으로 계산하면 꽤 부담이 된다.

의존성 서드파티 서비스에 의존하게 된다. 1Password 서비스에 문제가 생기거나 회사가 망하면(가능성은 낮지만) 곤란해진다.

macOS Keychain 살펴보기

장점들

완전 무료 macOS에 기본 내장되어 있어서 추가 비용이 전혀 없다. 이것만으로도 큰 메리트다.

시스템 레벨 통합 Safari, 앱들과의 연동이 완벽하다. Touch ID/Face ID 인증도 자연스럽게 통합되어 있어서 사용자 경험이 매끄럽다.

하드웨어 기반 보안 Secure Enclave를 활용한 하드웨어 암호화를 사용한다. 보안 수준은 1Password와 동등하거나 오히려 더 높을 수 있다.

iCloud 동기화 Apple 생태계 내에서는 완벽한 동기화를 제공한다. iPhone, iPad, 다른 맥에서도 바로 접근 가능하다.

단점들

UI가 아쉬움 Keychain Access 앱이 90년대 느낌이다. 검색도 직관적이지 않고, 정리 기능도 부족하다.

Apple 생태계 제한 Windows나 Android에서는 사용할 수 없다. 크로스 플랫폼 작업이 필요하다면 제약이 크다.

카테고리 분류의 한계 프로젝트별 그룹핑이 1Password만큼 직관적이지 않다. 이름 규칙으로 관리해야 한다.

개발자 관점에서의 추가 고려사항

CLI 접근성

둘 다 CLI를 지원하지만 접근 방식이 다르다.

1Password CLI:

# 간단하고 직관적
op read "op://Private/OpenAI/credential"

Keychain CLI:

# 좀 더 복잡하지만 강력함
security find-generic-password -a "openai-api" -s "api-keys" -w

스크립트 통합

개발 워크플로우에 통합할 때, 1Password가 좀 더 직관적이다. 하지만 macOS 전용 도구를 만든다면 Keychain이 더 자연스럽다.

백업과 복구

1Password는 클라우드 기반이라 계정만 있으면 어디서든 복구 가능하다. Keychain은 iCloud 키체인을 켜두면 비슷하지만, 로컬에만 저장하면 Time Machine 백업에 의존해야 한다.

실제 사용 시나리오

내 요구사항 체크

그룹 관리:

  • 1Password: vault와 태그를 활용해서 완벽하게 분류 가능
  • Keychain: 이름 규칙으로 관리해야 하지만 가능

Secure Memo:

  • 1Password: Secure Notes 타입으로 완벽 지원
  • Keychain: Secure Notes 항목으로 동일하게 지원

둘 다 내 최소 요구사항은 만족한다.

실제 워크플로우 비교

새 API 키 저장:

  • 1Password: 앱 열기 → 새 항목 → API Credential 선택 → 정보 입력
  • Keychain: Keychain Access 열기 → 새 Secure Note → 정보 입력

API 키 찾기:

  • 1Password: 통합 검색으로 바로 찾기
  • Keychain: 카테고리에서 찾거나 검색

다른 기기에서 접근:

  • 1Password: 어떤 플랫폼이든 동일한 앱
  • Keychain: Apple 기기에서만, 설정 → 암호에서 접근

결론: 선택의 이유

사실 제목처럼 어떤툴을 쓰게된지는 결정이 되어있다.

처음에는 무료라는 이유로 macOS Keychain에 끌렸다. 기본 기능도 내 요구사항을 충족했고, Apple 생태계에 깊게 통합된 점도 매력적이었다.

하지만 실제 사용을 고려하다 보니 치명적인 딜레마가 있었다:

Keychain의 딜레마

  • iCloud 동기화를 켜면: API 키 같은 민감한 정보가 클라우드에 올라가는 게 불안함
  • 로컬에만 저장하면: 맥북이 고장나거나 포맷되면 모든 데이터 손실

이 문제를 깨달은 순간, 차라리 전문 서비스를 쓰는 게 낫겠다고 판단했다.

1Password를 선택한 결정적 이유들

안정적인 데이터 관리 API 키들을 잃어버리면 다시 발급받는 것도 번거롭고, 어떤 건 비용까지 발생한다. 전문 패스워드 관리 회사의 안정적인 인프라에 맡기는 게 더 안전하다고 생각했다.

개발자 친화적인 도구들 CLI 도구(op)가 정말 잘 만들어져 있다. op read "op://vault/project-a/openai-key" 같은 식으로 스크립트에서 바로 사용할 수 있어서, 개발 워크플로우에 자연스럽게 통합된다.

프로젝트별 조직화의 편리함 vault와 태그 시스템으로 “SI 프로젝트”, “개인 프로젝트”, “외주” 같은 식으로 깔끔하게 분류할 수 있다. 프로젝트가 10개 이상 되니까 이런 조직화 기능이 정말 중요했다.

월 $3의 가치 처음엔 비용이 부담스럽다고 생각했지만, 데이터 안전성과 개발 생산성을 고려하면 충분히 가치가 있다. 커피 한 잔 값으로 API 키 관리의 스트레스에서 해방된다고 생각하니 합리적이었다.

결국 안전하고 편리한 개발 환경을 위해서는 적당한 투자가 필요하다는 결론에 도달했다. 무료 도구로도 가능하지만, 전문 도구의 편의성과 안정성을 경험하고 나면 되돌아가기 어렵다.