테마
계정 삭제 안내
1pass에서는 사용자가 직접 계정을 영구 삭제할 수 있습니다 (Apple App Store Guideline 5.1.1(v) 준수).
어디서 하나요?
iOS / macOS 앱: 설정 → 계정 삭제 버튼
확인 다이얼로그에서 "영구 삭제하기"를 누르면 즉시 처리됩니다.
삭제되는 항목
다음 데이터가 모두 삭제됩니다:
- 연결된 로그인 (Apple, Google)
- 등록된 모든 기기와 디바이스 시크릿
- Passkey (WebAuthn 자격증명)
- OTP/TOTP 설정 + 백업 코드
- Personal API Key
- 동의한 외부 앱(RP) 연결 기록 + 접근 토큰
- 접속 기록 (login logs)
- 프로필 정보 (닉네임, 이메일, custom claims)
삭제 후 동작
삭제 즉시 다음이 일어납니다:
- 모든 로그인 세션이 종료됩니다 (다른 기기 포함)
- 1pass로 발급된 외부 앱(RP)의 access token / refresh token / consent가 즉시 revoke 됩니다
- RP가 webhook URL을 등록해 둔 경우
token.revoked/consent.revoked이벤트가 즉시 발송되며, RP가 이를 처리하면 그 앱에서도 자동 로그아웃됩니다 (RP에 webhook이 없거나 처리에 실패하면 다음 토큰 검증 시 만료된 것으로 처리됩니다) - 같은 Apple/Google 계정으로의 즉시 재가입은 30일 동안 제한됩니다
30일 유예 기간
- 30일 이내: 운영팀 (support@1pass.dev — Developer Console → Support 도 가능)에 연락하면 계정 복구가 가능합니다
- 30일 이후: 계정과 위에 나열된 사용자 데이터가 영구 삭제됩니다. 같은 Apple/Google 계정으로 새로 가입할 수 있습니다
자동 영구 삭제는 백그라운드 Job(PurgeUserJob)이 처리하며, 사용자가 추가로 할 일은 없습니다.
익명화되어 보존되는 항목
다음 감사·보안 로그는 사용자 식별자(user_id)가 NULL로 익명화된 채 데이터베이스에 남습니다 — 이상 로그인 추적, 부정사용 조사, 외부 앱(RP) 운영자에 대한 감사 의무 등 보안·법적 요건 때문입니다. 이 로그에는 사용자의 이메일·이름·연락처·기기 정보가 포함되지 않으며, 누가 만든 기록인지 식별할 수 없습니다.
- 인증 이벤트 감사 로그 (
authentication_audit_logs) - Apple 서버 알림 기록 (
apple_server_notifications) - 개발자 포털 감사 로그 (
developer_audit_logs) - CLI 인가 기록 (
cli_grants) - 다른 기기에서 승인했던 QR 로그인 세션 기록 (
qr_login_sessions)
"로그아웃" / "계정 초기화"와의 차이
| 동작 | 서버 데이터 | 다른 기기 | 외부 앱 (RP) |
|---|---|---|---|
| 로그아웃 | 유지 | 영향 없음 | 영향 없음 |
| 계정 초기화 (익명 계정 한정) | 유지 (서버에 익명 사용자 row 남음) | 새 익명 사용자로 분기 | 영향 없음 |
| 계정 삭제 | 즉시 사용 불가 + 30일 후 영구 삭제 | 즉시 강제 로그아웃 | 즉시 webhook 발송 |
자주 묻는 질문
Q. 실수로 삭제했어요. 복구할 수 있나요?
30일 이내라면 자동 복구 — 같은 Apple/Google 계정으로 다시 SSO 로그인하면 서버가 apple_sub (또는 google_sub) 가 일치하는 soft-deleted user 를 찾아 자동으로 살립니다 (find_restorable_within_grace). 같은 SSO 가 없어도 삭제 시점의 이메일 주소가 일치하면 같은 경로로 복구 (예: 이메일/패스워드 가입 계정). 30일이 지나면 PurgeUserJob 가 hard-delete 한 후라 복구 불가 — 신규 가입으로 진행됩니다.
자동 복구가 안 되는 케이스 (예: 다른 provider 로 같은 이메일 신규 가입, hijack 탐지 트리거) 는 운영팀 (support@1pass.dev — Developer Console → Support 도 가능)에 가입 시 사용한 Apple/Google ID 또는 닉네임을 알려주시면 수동 확인.
Q. 같은 Apple ID로 바로 다시 가입하려면?
30일 유예 기간 안에 같은 Apple/Google 로 SSO 로그인 → 위 자동 복구 로 같은 user 가 부활. 30일 유예가 끝나야 "신규" 가입으로 처리됩니다. 그 전에는 "이 계정은 삭제 진행 중입니다" 메시지를 보거나 자동 복구 둘 중 하나로 안내됩니다.
Q. 1pass로 연결해둔 외부 앱들은 어떻게 되나요?
해당 앱의 access token과 consent가 1pass 서버에서 즉시 revoke 됩니다. 그 앱이 webhook을 등록해 두었다면 token.revoked / consent.revoked 이벤트가 즉시 발송되어 그 앱에서도 자동 로그아웃됩니다. webhook이 등록되어 있지 않거나 일시 장애가 있으면 그 앱은 다음에 토큰을 검증할 때 401 응답을 받고 로그아웃됩니다.
Q. 모든 플랫폼에서 삭제되나요?
네. 한 번 삭제하면 iOS/macOS/Android/CLI 어디서 만든 데이터든 모두 삭제됩니다.
30일 유예와 통합의 상호작용
soft-deleted user 가 통합 대상이 되는 경우 동작:
- deleted user 를 살리려는 통합 —
MergeService가purge_state가 set 된 user 를 흡수 대상 또는 survivor 로 받으면:user_in_purge를 반환하고 통합 실패. 운영자 개입 필요 — 사용자가 의도적으로 삭제했으므로 자동 통합으로 부활시키지 않음. - 30일 유예 중 SSO 자동 복구 —
find_restorable_within_grace로 soft-deleted user 가 되살아난 뒤 그 user 가 다른 active user 와 같은 이메일이면 그 시점에서 T2 트리거 발화 가능. 이 경우는 의도된 동작.
통합된 user 의 삭제
이미 흡수된 (linked_user_id) user 의 row 를 삭제해달라는 요청이 들어오면:
- 그 user 의 row 는
identity_links의 forensic 추적 대상이라 즉시 hard-delete 하지 않음. - 대신 personally-identifying 필드 (email, name, provider sub) 를 익명화하고
deleted_at설정. user.grants_revoked가 영향받는 RP 에 emit — 단, survivor 쪽 grant 는 살아 있음.
이는 흡수된 user 가 "여전히 다른 사람의 통합 history 의 일부" 라는 점 때문이며, GDPR 의 데이터 최소화 원칙과 audit 의무 사이의 절충입니다. 사용자가 "통합 자체를 되돌려달라" 고 요청하는 경우의 절차는 Rollback Policy 참고.
Two-tier purge state machine
[active]
│ 사용자 요청 →
▼
[soft_deleted] ← 30일 유예. SSO 재로그인 시 자동 복구.
│ 30일 경과 →
▼
[purge_queued] ← PurgeUserJob 가 정리 시작.
│ 모든 자격증명/세션/grant revoke 완료 →
▼
[purged] ← 익명화된 row 만 남음. 복구 불가.각 상태 전이는 audit log 에 기록되고, 운영자 콘솔에서 임의 user 의 현재 state 를 조회할 수 있습니다.