본 사이트는 파트너스 활동으로 수수료를 받으며, 서버 운영과 무료 앱 개발에 사용됩니다. 본 사이트는 파트너스 활동으로 수수료를 받으며
서버 운영과 무료 앱 개발에 사용됩니다.
목록으로
바이브 코딩

1Password | 비밀번호부터 API 키·.env.local까지, 바이브 코더 보안 구성법

최초 발행: 2026년 10월 14일 오후 07:29 | 최종 수정: 2026년 10월 14일 오후 08:29

비밀번호 관리자는 오래전부터 있던 도구인데, 요즘 다시 찾는 사람이 늘었다. 이유는 단순하다. 혼자 사이트 몇 개를 돌리는 바이브 코더라도 OpenAI·Anthropic 같은 AI API 키, Cloudflare 토큰, DB 접속 토큰을 수십 개씩 쥐고 있고, 그 키들이 프로젝트 폴더의 .env.local 파일에 평문으로 들어 있다. 여기에 AI 코딩 에이전트가 같은 폴더를 읽고 쓰기 시작하면서, 키가 커밋이나 로그, 대화 기록으로 새어 나갈 길이 하나 더 생겼다.

1Password는 이 문제를 비밀번호 관리자 쪽에서 푸는 대표적인 서비스다. 사이트 로그인 자동 입력은 기본이고, 개인 요금제에도 명령줄 도구(CLI), SSH 키 관리, .env 파일의 키를 주소로 바꿔 두는 기능, 사람 로그인 없이 쓰는 서비스 계정 토큰까지 들어 있다.

이 문서는 1Password가 무엇인지부터 요금, Bitwarden·Proton Pass와의 차이, 보안 구조와 사고 이력, 개발자 기능, 사이트 여러 개를 운영하는 1인 개발자의 실전 구성, AI 코딩 에이전트와 함께 쓰는 법까지 순서대로 다룬다. 가격은 2026년 10월 14일 공식 요금 페이지(USD) 기준이다.

1. 1Password는 무엇이고, 볼트는 무엇인가

1Password는 캐나다 회사 1Password(옛 AgileBits)가 만드는 유료 비밀번호 관리자다. 사이트 비밀번호, 신용카드, 메모, 패스키, API 키, SSH 키 같은 민감한 정보를 한곳에 암호화해 저장하고, 필요할 때 브라우저나 앱, 터미널에서 꺼내 쓰게 해 준다. 맥·윈도우·리눅스·iOS·안드로이드 앱과 크롬·사파리·엣지·파이어폭스·브레이브 확장 프로그램을 지원한다.

1.1. 볼트를 한 줄로 이해하기

  1. 볼트(Vault)는 1Password 안의 보관함이다. 폴더처럼 항목을 나눠 담는다.
  2. 폴더와 다른 점은 접근 권한이 볼트 단위로 정해진다는 것이다. 특정 볼트만 읽을 수 있는 토큰을 만들면, 그 토큰으로는 다른 볼트에 든 비밀번호를 볼 수 없다.
  3. 가족이나 동료와 공유할 때도 볼트 하나만 골라 공유할 수 있다.
  4. 처음 가입하면 개인(Personal) 볼트가 기본으로 있고, 필요한 만큼 새 볼트를 더 만들 수 있다.
개념쉬운 비유실제 쓰임
항목(Item)금고 속 서류 한 장로그인 1개, API 키 1개, SSH 키 1개
필드(Field)서류 안의 칸아이디, 비밀번호, credential 값
볼트(Vault)칸막이가 있는 금고사이트별·용도별 보관함
계정(Account)금고가 놓인 방내 1Password 구독 전체

이 구조를 알아 두면 뒤에서 다룰 서비스 계정과 사이트별 권한 분리가 훨씬 쉽게 들어온다.

2. 요금제와 가격, Individual에 들어 있는 것

1Password는 무료 플랜이 없다. 대신 Individual·Families는 카드 등록 없이 14일 무료 체험을 할 수 있다. 아래는 2026년 10월 14일 공식 페이지의 USD 가격이며, Individual·Families의 할인가는 1Password.com에서 직접 연 결제로 가입하는 신규 고객의 첫 1년에만 적용된다. 앱 스토어 결제에는 이 할인이 없다.

1Password 요금제 가격 인포그래픽 그림 1. 1Password 요금제별 가격(2026년 10월 14일, USD)

요금제가격(연 결제 기준)인원비고
Individual월 $2.99 (정가 $3.99)1명신규 첫해 할인, 저장 공간 1GB
Families월 $4.49 (정가 $5.99)5명공유 볼트 무제한, 저장 공간 1인 1GB
Teams Starter Pack월 $24.9510명 포함, 최대 20명소규모 팀용
Business사용자당 월 $8.99제한 없음관리 기능·높은 서비스 계정 한도

Individual은 연 $35.88(첫해)로, 커피 몇 잔 값에 1년을 쓰는 셈이다.

2.1. Individual 요금제 포함 기능

  1. 강력한 비밀번호 생성, 로그인·주소·카드 자동 저장과 자동 입력
  2. 1Password를 쓰지 않는 사람에게도 링크로 항목 공유(만료 시간 설정, 공유 기록 확인)
  3. 모든 기기와 브라우저에서 사용
  4. Watchtower: 약한 비밀번호, 재사용 비밀번호, 유출된 사이트 알림
  5. 2단계 인증 코드, 생체 인증, 패스키 저장
  6. Travel Mode: 국경 통과 때 지정한 볼트만 기기에 남기기
  7. 1Password Developer: SSH 키 관리, Git 커밋 서명, CLI와 SDK
  8. 서비스 계정: 사람 로그인 없이 쓰는 자동화용 토큰(사용량 한도는 아래 개발자 절 참고)

개발자 기능이 상위 요금제 전용이 아니라는 점이 1인 개발자에게는 가장 중요한 대목이다. .env.local 관리, CLI, 서비스 계정 토큰까지 월 $2.99 요금제로 다 쓸 수 있다.

3. Bitwarden, Proton Pass와 무엇이 다른가

비밀번호 관리자를 고를 때 가장 많이 비교되는 셋을 나란히 놓으면 성격 차이가 분명하다. 가격은 세 서비스 공식 요금 페이지의 2026년 10월 14일 USD 기준이다.

항목1PasswordBitwardenProton Pass
무료 플랜없음(14일 체험)있음있음(별칭 10개)
개인 유료월 $2.99(첫해), 정가 $3.99Premium 월 $1.65(연 $19.80)Pass Plus 월 $2.99(연 $35.88)
가족월 $4.49, 5명월 $3.99, 6명월 $4.99, 6명
오픈소스아님예(GitHub 공개)예
셀프 호스팅불가가능불가
CLI있음(op)있음있음(Pass Plus 이상)
대표 강점완성도, 개발자 도구, 2SKD가격, 오픈소스, 셀프 호스팅이메일 별칭, 개인정보 보호

3.1. 서비스별 성격

  1. 1Password: 쓰기 편하고 마감이 깔끔하다. 개발자 도구(CLI, 서비스 계정, Environments, SSH 에이전트)가 가장 촘촘하고, AI 코딩 도구와의 공식 연동도 빠르게 늘고 있다. 무료 플랜이 없다는 게 단점이다.
  2. Bitwarden: 무료 플랜이 넉넉하고 유료도 가장 싸다. 코드가 공개돼 있어 누구나 검토할 수 있고, 서버를 직접 띄우는 셀프 호스팅도 된다. 관리 화면과 일상 사용감은 1Password보다 덜 다듬어졌다는 평이 많다.
  3. Proton Pass: Proton Mail을 만드는 스위스 Proton이 만든다. 사이트마다 다른 가짜 이메일로 가입하는 hide-my-email 별칭이 강점이고, Proton Mail·VPN과 묶어 쓰기 좋다.

X에서도 반응은 비슷하게 갈린다. 10년 가까이 1Password를 쓰면서 이만큼 편한 앱을 찾지 못했다는 사용자가 있는가 하면, 셀프 호스팅이 되는 Bitwarden으로 옮긴 뒤 돌아보지 않았다는 사용자도 있다. 두 관리자를 동시에 켜 두면 자동 입력이 서로 충돌해 엉뚱한 칸에 비밀번호가 들어갈 수 있으니, 브라우저 확장은 하나만 켜 두는 편이 안전하다.

4. 보안 구조: 열쇠가 두 개라 서버가 털려도 못 연다

1Password 보안의 핵심은 모든 데이터를 내 기기에서 암호화한 뒤 서버로 보낸다는 것이다. 회사 서버에는 암호화된 덩어리만 있고, 이를 풀 열쇠는 사용자에게만 있다. 항목 제목과 URL까지 암호화 대상이다.

1Password 2SKD 보안 구조 인포그래픽 그림 2. 계정 비밀번호와 Secret Key를 합쳐 암호화 키를 만드는 2SKD 구조

4.1. 2SKD: 계정 비밀번호 + Secret Key

  1. 계정 비밀번호는 내가 외우는 값이라 강도에 한계가 있다. 1Password는 평균 약 40비트 수준으로 본다.
  2. Secret Key는 처음 가입할 때 기기에서 만들어지는 34자 키다. 128비트 강도라 돈과 컴퓨팅 파워를 아무리 써도 추측이 사실상 불가능하다.
  3. 두 값을 합쳐 최종 암호화 키를 만든다. 이를 2SKD(Two-Secret Key Derivation)라고 부른다.
  4. Secret Key는 서버로 보내지지 않고, 로그인했던 기기와 가입 때 받는 비상 키트(Emergency Kit)에만 있다.
  5. 그래서 서버 데이터가 통째로 유출돼도, 공격자는 계정 비밀번호만으로는 볼트를 풀 수 없다. 새 기기에서 처음 로그인할 때 Secret Key가 필요한 이유도 이것이다.

4.2. 암호화와 로그인 방식

요소방식의미
볼트 암호화AES-256-GCM인증 기능이 있는 256비트 암호화
키 강화PBKDF2-HMAC-SHA256 650,000회비밀번호 대입 공격 속도를 크게 늦춤
로그인SRP(Secure Remote Password)비밀번호를 인터넷으로 보내지 않고 인증
공개키 암호RSA-OAEP 2048비트볼트 공유 때 키 전달

SRP는 서버와 기기가 수학적 핸드셰이크로 서로를 확인하는 방식이라, 통신 중간에서 비밀번호를 가로챌 수 없고 가짜 서버에 접속하는 것도 막아 준다.

4.3. 일상에서 체감하는 보호 기능

  1. Watchtower: 유출 사고가 난 사이트, 약하거나 재사용된 비밀번호, 2단계 인증을 지원하는데 안 켠 사이트, 패스키를 쓸 수 있는 사이트를 알려 준다.
  2. Travel Mode: 출국 전에 켜면 '여행 안전'으로 표시한 볼트만 앱에 남고 나머지는 기기에서 사라진다. 모든 구독에 포함된다.
  3. 브라우저 검증: 서명이 확인된 브라우저에서만 자동 입력한다.
  4. 클립보드 자동 삭제: 복사한 비밀번호를 일정 시간 뒤 클립보드에서 지운다.
  5. 사용자 동작 필수: 사용자가 요청할 때만 값을 보여 주거나 채운다.

4.4. 인증과 외부 검증

1Password는 공식 보안 페이지에서 SOC 2 Type 2 인증을 받았다고 밝히고, 외부 보안 전문가의 독립 감사 결과를 웹사이트에 공개한다. 버그 바운티도 크게 운영한다. 2022년 3월 최고 포상금을 100만 달러로 올렸는데, 당시 Bugcrowd 역사상 최고액이었다. 그 전까지 Bugcrowd에서 지급한 포상금은 총 10만 3천 달러, 건당 평균 약 900달러였고 모두 고객 데이터에 위협이 되지 않는 경미한 버그였다고 한다. 프로그램은 이후 HackerOne으로 옮겨졌다.

5. 유출 사고 이력: 1Password와 LastPass

비밀번호 관리자를 고를 때 가장 먼저 묻는 질문이 "털린 적 있느냐"다. 지금까지 1Password에서 고객 비밀번호나 볼트 데이터가 유출된 사고는 알려진 바 없다. 공개된 보안 사고는 2023년 Okta 관련 사건 하나다.

5.1. 2023년 Okta 관련 사건

  1. 2023년 9월 29일, 1Password는 직원용 앱 관리에 쓰던 Okta(로그인 관리 서비스) 인스턴스에서 수상한 활동을 발견했다.
  2. 원인은 Okta 고객지원 시스템 해킹이었다. 1Password IT 직원이 Okta 지원팀에 문제 해결용으로 보낸 HAR 파일(브라우저 통신 기록)에 로그인 세션이 들어 있었고, 공격자가 이를 썼다.
  3. 공격자는 관리자 보고서를 요청하는 등 일부 동작을 시도했는데, 직원이 요청한 적 없는 보고서 알림 메일을 받으면서 바로 발각됐다.
  4. 1Password는 즉시 활동을 차단했고, 조사 결과 사용자 데이터와 다른 민감한 시스템은 손상되지 않았다고 2023년 10월 23일 발표했다.
  5. 이후 해당 직원 자격 증명 교체, 외부 로그인 제공자 차단, 관리자 세션 단축, 관리자 MFA 강화, 최고 관리자 수 축소를 진행했다.

5.2. 비교 사례: 2022년 LastPass

LastPass는 2022년 8월 개발 환경 침해에 이어, 같은 해 12월 22일 공지에서 공격자가 클라우드 저장소의 고객 볼트 백업을 복사해 갔다고 밝혔다. 백업에는 회사명, 이름, 청구 주소, 이메일, 전화번호, 접속 IP 같은 계정 정보와, 암호화되지 않은 사이트 URL, 그리고 AES-256으로 암호화된 아이디·비밀번호·메모가 들어 있었다. 암호화된 부분은 마스터 비밀번호가 있어야 풀리지만, 마스터 비밀번호가 약한 사용자는 대입 공격에 노출될 수 있어 사이트 비밀번호를 바꾸라는 권고가 나왔다.

구분1Password (2023)LastPass (2022)
침입 경로Okta 지원 시스템에서 새어 나간 세션개발 환경 침해 후 직원 자격 증명 탈취
고객 볼트접근 없음백업 복사됨
평문 노출없음사이트 URL, 계정 메타데이터
볼트 해독 조건-마스터 비밀번호만 있으면 시도 가능

1Password 구조라면 서버 데이터가 유출돼도 기기에만 있는 Secret Key가 없어 마스터 비밀번호 대입만으로는 풀 수 없다. 이 차이가 2SKD를 둔 이유다. 그래도 완벽한 서비스는 없으니, 계정 비밀번호는 길게 만들고 2단계 인증을 켜 두는 것이 기본이다.

6. 개발자 기능: API 키, CLI, op://, 서비스 계정

여기부터가 바이브 코더와 개발자에게 1Password가 다른 비밀번호 관리자와 갈리는 부분이다. 핵심 생각은 하나다. 파일에는 비밀값 대신 주소를 적고, 실제 값은 실행하는 순간에만 꺼낸다.

6.1. API 자격 증명 항목

  1. 1Password에는 'API 자격 증명(API Credential)'이라는 항목 종류가 따로 있다. OpenAI, Anthropic, Cloudflare 같은 키를 이름별로 저장한다.
  2. 항목에 만료일, 발급처, 메모를 함께 적어 둘 수 있어 키 교체 시기를 관리하기 좋다.
  3. Watchtower의 개발자 버전인 Developer Watchtower는 기기에서 평문 비밀값이 든 .env 파일을 찾아 1Password로 옮기도록 돕는다.

6.2. 1Password CLI와 시크릿 레퍼런스

CLI 명령어는 op다. 윈도우(PowerShell), 맥, 리눅스를 지원하고, 데스크톱 앱과 연동하면 Windows Hello나 Touch ID로 로그인한다.

시크릿 레퍼런스는 1Password에 저장된 값을 가리키는 주소다. 형식은 op://볼트/항목/[섹션/]필드이며, 실제 값으로 바꾸는 명령은 세 가지다.

명령하는 일대표 쓰임
op read주소 하나의 값을 출력하거나 파일로 저장스크립트에서 키 하나 꺼내기
op run환경 변수 속 주소를 실제 값으로 바꿔 하위 프로세스에 전달op run --env-file=.env.local -- npm run dev
op inject템플릿 파일의 주소를 값으로 채운 새 파일 생성설정 파일을 배포 직전에 만들기

op run은 실행하는 동안에만 값을 넘기고, 화면 출력에 비밀값이 찍히면 기본으로 가려 준다. 가림을 끄는 --no-masking 옵션도 있다. 반면 op inject로 만든 파일에는 평문 값이 들어가므로 .gitignore에 꼭 넣어야 한다.

1Password 공식 채널의 아래 영상은 op run으로 로컬 개발 서버와 서비스 계정을 쓴 원격 서버에서 같은 명령으로 비밀값을 불러오는 과정을 보여 준다.

6.3. 1Password Environments

Environments는 프로젝트별 환경 변수를 볼트 항목과 따로 관리하는 기능이다.

  1. 기존 .env 파일을 그대로 가져오거나 변수를 하나씩 추가한다.
  2. 로컬 마운트 .env: 1Password가 프로젝트 폴더에 .env 파일을 메모리로 띄워 주고, 디스크에는 평문을 쓰지 않는다. 앱 코드는 고칠 필요가 없다.
  3. op run --environment 환경ID -- 명령으로 불러올 수도 있다.
  4. AWS Secrets Manager 동기화(베타)도 지원한다.
  5. 계정 소유자나 관리자가 관리 콘솔에서 Environments 정책을 켜야 쓸 수 있고, 모바일 앱에서는 안 된다.
  6. 2026년 10월 현재 로컬 마운트 .env는 맥과 리눅스만 지원한다. 윈도우 사용자는 시크릿 레퍼런스와 op run 조합을 쓰는 편이 현실적이다.

6.4. SSH 에이전트와 Git 커밋 서명

  1. 1Password SSH 에이전트는 저장된 SSH 키로 Git과 SSH 접속을 인증한다. 개인 키는 1Password 앱 밖으로 나가지 않는다.
  2. 사용자가 승인한 SSH 클라이언트만, 1Password가 잠기기 전까지 키를 쓸 수 있다.
  3. 같은 키로 Git 커밋에 SSH 서명을 하면 GitHub·GitLab에서 Verified 배지가 붙는다.

6.5. 서비스 계정: 사람 없이 도는 자동화용 토큰

서비스 계정은 특정 사람이 아닌 서버·CI·스크립트용 계정이다. 토큰 하나(ops로 시작)를 OPSERVICEACCOUNTTOKEN 환경 변수에 넣으면 CLI가 그 권한으로 동작한다.

  1. 어떤 볼트에 접근할지, 볼트마다 어떤 권한(readitems, writeitems, share_items)을 줄지 고른다.
  2. 토큰 만료 기간을 정할 수 있고, 토큰은 만들 때 단 한 번만 화면에 나온다. 바로 1Password에 저장해 둔다.
  3. 계정당 최대 100개까지 만들 수 있다.
  4. 기본 개인(Personal) 볼트와 기본 공유 볼트에는 권한을 줄 수 없다. 그래서 자동화용 볼트를 따로 만들어야 한다.
  5. Environments에는 읽기 권한만 줄 수 있고, CLI 2.18.0 이상이 필요하다.
  6. 1Password.com의 Developer 메뉴에서 사용 보고서로 어떤 항목을 언제 읽었는지 보고, 토큰을 교체(rotate) 하거나 즉시 취소(revoke) 할 수 있다. 교체할 때는 기존 토큰에 유예 만료 시간을 줘서 서비스 중단 없이 넘어갈 수 있다.

6.6. 서비스 계정 사용량 한도

요금제시간당 읽기(토큰당)시간당 쓰기(토큰당)하루 전체(계정당)
1Password(Individual), Families1,000회100회1,000회
Teams1,000회100회5,000회
Business10,000회1,000회50,000회

한도를 넘으면 429 오류가 나고, 시간 창이 초기화될 때까지 기다리거나 요금제를 올려야 한다. CLI 명령 하나가 요청을 여러 번 보내기도 한다는 점도 감안해야 한다. 개발 서버를 켜거나 배포할 때 키를 불러오는 정도라면 하루 수십 번 수준이라 개인 요금제 한도로 충분하다. 반대로 CI가 커밋마다 수십 개 키를 읽는 구조라면 하루 1,000회는 금방 찬다.

7. 사이트 여러 개 운영하는 1인 개발자의 실전 구성

사이트 서너 개를 혼자 돌리면 키가 금세 뒤섞인다. 아래는 공식 기능만으로 짤 수 있는 구성이다.

바이브 코더용 1Password 볼트·토큰 구성 인포그래픽 그림 3. 사이트별 볼트와 읽기 전용 토큰, op run으로 실행 시점에만 값 전달

7.1. 볼트 나누기

볼트 이름(예시)담는 것접근
shared-ai여러 사이트가 같이 쓰는 AI API 키모든 사이트 토큰이 읽기
site-asite-a 전용 DB 토큰, 배포 토큰site-a 토큰만
site-bsite-b 전용 키site-b 토큰만
login일반 사이트 계정 비밀번호토큰 접근 없음, 사람만

7.2. 항목 이름과 필드 규칙

  1. 키 하나에 항목 하나를 만들고, 종류는 API 자격 증명으로 한다.
  2. 이름은 openai-api, site-a-db-token처럼 서비스와 용도가 보이게 짓는다. 공백을 피하면 주소를 쓸 때 편하다.
  3. 필드나 항목 이름을 .env의 변수 이름(OPENAIAPIKEY 등)과 맞춰 두면 어느 변수가 어느 항목인지 헷갈리지 않는다.
  4. 메모 칸에 발급일, 만료일, 쓰는 사이트를 적어 둔다.

7.3. .env.local을 주소로 바꾸기

각 사이트 폴더의 .env.local에는 그 사이트 볼트와 shared-ai 볼트 주소만 적는다. 값은 예시 이름이다.

변수값(파일에 적는 내용)
OPENAIAPIKEYop://shared-ai/openai-api/credential
ANTHROPICAPIKEYop://shared-ai/anthropic-api/credential
DATABASE_TOKENop://site-a/site-a-db-token/credential
CLOUDFLAREAPITOKENop://site-a/site-a-cloudflare/credential

개발 서버는 op run --env-file=.env.local -- npm run dev처럼 감싸서 실행한다. 파일이 실수로 커밋되거나 AI가 열어 봐도 보이는 건 주소뿐이다.

7.4. 토큰은 사이트별, 읽기 전용으로

  1. 사이트마다 서비스 계정을 하나씩 만들고, 자기 볼트와 shared-ai에 read_items만 준다.
  2. 한 사이트 토큰이 새도 다른 사이트와 로그인 볼트는 안전하다.
  3. 만료 기간을 두고, 사용 보고서로 이상한 읽기가 없는지 가끔 확인한다.
  4. 처음엔 토큰 하나로 시작해 익숙해진 뒤 나눠도 된다.

7.5. CI와 배포

  1. GitHub Actions: 공식 1password/load-secrets-action이 있다. 저장소 시크릿에 OPSERVICEACCOUNT_TOKEN 하나만 넣고, 워크플로에서 op:// 주소로 나머지 값을 불러온다. 로그에 값이 찍히면 ***로 가려진다.
  2. Cloudflare 등 배포 플랫폼: 런타임 환경 변수는 각 플랫폼 설정에 따로 들어가야 한다. 배포 스크립트를 op run으로 감싸 값을 넘기거나, GitHub Actions에서 불러온 값으로 배포하는 식으로 1Password를 원본으로 삼고 플랫폼 값을 맞춰 둔다.
  3. 1Password 개발자 문서는 토큰 관리 없이 CI에 짧은 수명 접근을 주는 Credential Broker도 새로 안내하고 있다.

8. AI 코딩 에이전트와 함께 쓸 때

Cursor, Claude Code, Codex 같은 에이전트는 프로젝트 폴더를 읽고 명령을 실행한다. .env.local에 평문 키가 있으면 에이전트가 파일을 열어 대화 기록에 남기거나, 디버깅하다 로그에 출력하거나, 실수로 커밋할 수 있다.

8.1. 비밀값을 파일과 로그 밖에 두는 원칙

  1. .env.local에는 op:// 주소만 둔다. 에이전트가 파일을 읽어도 값이 없다.
  2. 개발 서버나 에이전트를 op run으로 감싸 실행하면 값은 프로세스 환경 변수로만 전달된다.
  3. 에이전트 설정에서 .env 파일 읽기를 막는 규칙을 함께 두면 한 겹 더 안전하다.
  4. 기존에 평문으로 있던 키는 1Password로 옮긴 뒤 반드시 새 키로 교체한다. 옮기는 것만으로는 Git 기록이나 에이전트 메모리에 남은 과거 노출이 지워지지 않는다고 1Password도 강조한다.
  5. 다만 op run도 결국 프로세스 환경 변수에 값을 넣는다. 같은 사용자 권한으로 도는 다른 프로그램은 이를 읽을 수 있으니, 출처가 불분명한 패키지 설치는 여전히 조심해야 한다.

8.2. 1Password의 공식 AI 연동

  1. Environments MCP 서버: 1Password 데스크톱 앱 안에서 로컬로 도는 MCP 서버다. Claude Code, Codex, Cursor, Kiro 같은 클라이언트가 환경 만들기, 변수 이름 보기, 로컬 .env 마운트 같은 작업을 할 수 있지만, 비밀값 자체는 에이전트에게 절대 돌려주지 않는다. 처음 연결할 때마다 1Password 앱이 승인 창을 띄운다.
  2. 에이전트 훅: Claude Code, Cursor, GitHub Copilot, Windsurf에서 에이전트가 명령을 실행하기 전에 로컬 마운트 .env가 제대로 준비됐는지 확인한다. 맥·리눅스 전용이며 윈도우에서는 검사를 건너뛴다.
  3. Cursor Marketplace의 1Password 플러그인, Claude Code 플러그인, Codex 네이티브 연동이 공식 블로그와 문서로 안내돼 있다. Codex·Kiro 연동은 개인 계정에서도 쓸 수 있다고 밝혔다.

아래 1Password 공식 영상은 기존 .env 파일을 Environments로 옮기고 로컬 .env로 마운트하는 흐름을 보여 준다.

9. 개인에게 1Password는 돈값을 할까

Individual 첫해 연 $35.88은 적지 않지만, 키 하나만 새어도 AI API 요금 폭탄이나 계정 정지로 그보다 큰 손해를 보는 일이 흔하다. 다만 모두에게 맞는 답은 아니다.

장점단점
개인 요금제에 CLI·서비스 계정·SSH·Git 서명 포함무료 플랜 없음
2SKD로 서버 유출에도 볼트 보호코드 비공개, 셀프 호스팅 불가
자동 입력·공유 등 일상 사용감이 좋음첫해 할인 뒤 정가 월 $3.99
AI 코딩 도구 공식 연동이 빠르게 늘어남Environments 로컬 마운트·에이전트 훅은 맥·리눅스 우선
서비스 계정 사용 보고서·즉시 취소개인 요금제 서비스 계정 하루 1,000회 한도

9.1. 누가 무엇을 고르면 좋을까

  1. 사이트 여러 개를 혼자 운영하는 바이브 코더: 1Password. 볼트·서비스 계정·op run 조합이 가장 큰 효과를 낸다.
  2. AI 코딩 에이전트를 매일 쓰는 개발자: 1Password. 비밀값을 에이전트에 주지 않는 공식 연동이 있다.
  3. 비밀번호만 싸게 관리하고 싶은 개인: Bitwarden 무료나 Premium.
  4. 서버를 직접 운영하고 코드 공개를 중시하는 사람: Bitwarden 셀프 호스팅.
  5. 가입용 이메일 별칭과 개인정보 보호가 우선인 사람: Proton Pass.
  6. 사이트 하나, 키 몇 개뿐인 경우: 지금 방식이나 무료 관리자로도 충분하다.

망설여진다면 14일 무료 체험 동안 사이트 한 곳의 .env.local만 주소 방식으로 바꿔 보고, 불편이 없을 때 결제하는 순서가 무난하다.

10. 출처

11. 마무리

앞에서 다룬 1Password의 핵심만 짧게 정리한다.

  • 볼트는 권한이 붙은 보관함이다. 사이트별·용도별로 나누는 것이 보안 구성의 출발점이다.
  • Individual 월 $2.99(첫해, 연 결제)에 CLI, SSH, Git 서명, 서비스 계정까지 들어 있다.
  • 계정 비밀번호와 기기에만 있는 Secret Key를 합치는 2SKD 덕분에 서버가 털려도 볼트는 풀기 어렵다.
  • 공개된 사고는 2023년 Okta 관련 건이 유일하고, 사용자 데이터 접근은 없었다.
  • .env.local에는 op:// 주소만 두고 op run으로 실행 시점에만 값을 넘긴다.
  • 사이트별 읽기 전용 서비스 계정 토큰을 쓰면 한 곳이 새도 피해가 번지지 않는다.
  • 비밀번호만 싸게 관리하려면 Bitwarden, 이메일 별칭이 중요하면 Proton Pass가 더 맞을 수 있다.

「키는 파일이 아니라 금고에, 파일에는 주소만」 — 사이트 한 곳의 .env.local부터 바꿔 보면 나머지 사이트로 넓히는 일은 금방이다.

자주 묻는 질문

  • 1Password는 무료로 쓸 수 없나요?

    1Password에는 무료 플랜이 없습니다. 대신 Individual과 Families 요금제는 카드 등록 없이 14일 무료 체험이 가능하고, 2026년 10월 14일 기준 Individual은 신규 고객 첫해 연 결제 시 월 $2.99입니다.

  • 볼트는 폴더와 무엇이 다른가요?

    볼트는 항목을 나눠 담는다는 점에서 폴더와 비슷하지만, 접근 권한이 볼트 단위로 정해진다는 점이 다릅니다. 특정 볼트만 읽는 서비스 계정 토큰을 만들면 그 토큰으로는 다른 볼트의 비밀번호를 볼 수 없습니다.

  • 최저 요금제인 Individual로도 서비스 계정과 CLI를 쓸 수 있나요?

    쓸 수 있습니다. Individual 요금제에 CLI, SSH 키 관리, Git 커밋 서명이 포함되고, 서비스 계정도 만들 수 있습니다. 다만 토큰당 시간당 읽기 1,000회, 쓰기 100회, 계정 전체 하루 1,000회라는 한도가 있습니다.

  • Bitwarden과 1Password 중 무엇이 더 안전한가요?

    둘 다 종단간 암호화를 쓰는 검증된 서비스입니다. 1Password는 계정 비밀번호에 기기 전용 Secret Key를 더하는 2SKD 구조가 특징이고, Bitwarden은 코드가 공개돼 누구나 검토할 수 있고 셀프 호스팅이 된다는 점이 강점입니다.

  • 1Password가 해킹당한 적이 있나요?

    고객 비밀번호나 볼트 데이터가 유출된 사고는 알려진 바 없습니다. 2023년 9월 Okta 지원 시스템 해킹과 연결된 침입 시도가 있었지만 1Password가 바로 차단했고, 사용자 데이터 접근은 없었다고 발표했습니다.

  • op run과 op inject는 어떻게 다른가요?

    op run은 환경 변수 속 op:// 주소를 실제 값으로 바꿔 실행 중인 프로세스에만 넘기므로 디스크에 평문이 남지 않습니다. op inject는 템플릿 파일을 실제 값이 든 새 파일로 만들기 때문에 결과 파일을 git에 올리지 않도록 주의해야 합니다.

  • 윈도우에서도 1Password Environments의 로컬 .env 마운트를 쓸 수 있나요?

    2026년 10월 현재 로컬 마운트 .env와 에이전트 훅은 맥과 리눅스만 지원합니다. 윈도우에서는 .env.local에 op:// 주소를 적고 op run으로 실행하는 시크릿 레퍼런스 방식을 쓰면 같은 효과를 얻을 수 있습니다.

  • 서비스 계정 토큰이 유출되면 어떻게 하나요?

    1Password.com의 Developer 메뉴에서 해당 서비스 계정을 열고 토큰을 즉시 취소하면 그 순간부터 접근이 막힙니다. 사용 보고서로 어떤 항목이 읽혔는지 확인한 뒤, 노출 가능성이 있는 키는 원래 서비스에서 새로 발급받는 것이 안전합니다.

  • AI 코딩 에이전트가 1Password 비밀값을 읽어 갈 수 있나요?

    1Password Environments MCP 서버는 환경과 변수 이름만 다루고 비밀값은 에이전트에 돌려주지 않도록 설계됐습니다. 다만 op run으로 넘긴 값은 프로세스 환경 변수에 들어가므로, 에이전트가 직접 출력하지 않도록 .env 읽기 차단 규칙을 함께 두는 편이 좋습니다.

  • GitHub Actions에서 1Password 값을 쓰려면 무엇이 필요한가요?

    서비스 계정을 만들고 그 토큰을 저장소 시크릿 OPSERVICEACCOUNT_TOKEN에 넣은 뒤, 공식 1password/load-secrets-action으로 op:// 주소의 값을 불러오면 됩니다. 로그에 값이 출력되면 별표로 자동 가려집니다.