IT 시행착오·

비밀번호 관리자·2FA 실전 설정

개인과 작은 팀이 바로 적용할 수 있는 비밀번호 관리자, 2FA, 복구 코드, 계정 공유 운영법을 실무 중심으로 정리합니다.

YubiKey 2FA 보안 토큰 (cc by 2.0, wikimedia-commons)

비밀번호 관리와 2FA는 화려한 보안 기술이 아니라 매일 쓰는 생활 인프라에 가깝습니다. 블로그, 쇼핑몰, 업무용 SaaS, 서버 콘솔, 상업성 광고 계정처럼 여러 서비스에 같은 비밀번호를 반복해서 쓰면 한 곳에서 유출된 비밀번호가 다른 계정 침해로 이어집니다. 특히 운영자가 혼자 시작한 서비스가 팀으로 커질 때는 “누가 어떤 계정에 접근할 수 있는가”가 문서화되지 않아 퇴사, 외주 종료, 장비 분실 같은 상황에서 큰 문제가 됩니다.

이 글은 서민혁닷컴의 API 키와 .env 관리 글과 함께 읽으면 좋습니다. 비밀번호는 사람의 로그인 권한이고, API 키는 프로그램의 로그인 권한입니다. 둘 다 코드 저장소나 메신저에 흘러가면 안 된다는 점은 같습니다.

1. 비밀번호 관리자를 먼저 고른다

비밀번호 관리자는 “복잡한 비밀번호를 기억해 주는 앱”이 아니라 계정 목록, 접근 권한, 복구 정보를 관리하는 보안 장부입니다. 1Password, Bitwarden, Dashlane, iCloud Keychain, Google Password Manager 등 선택지는 많지만, 실무에서는 다음 기준으로 고르면 됩니다.

  • 여러 기기에서 동기화가 안정적인가
  • 브라우저 확장 프로그램과 모바일 자동 입력이 편한가
  • 팀 금고, 공유 금고, 권한 회수 기능이 있는가
  • 긴급 접근, 복구 키, 관리자 복구 정책을 제공하는가
  • CSV 내보내기와 가져오기를 지원해 이사하기 쉬운가

개인 프로젝트라면 무료 도구로도 시작할 수 있습니다. 하지만 서비스 운영자라면 비용보다 “복구 가능성”을 먼저 봐야 합니다. 운영자가 사고로 계정에 접근하지 못하면 도메인, 결제, 배포, 상업성 광고 계정이 한꺼번에 묶일 수 있습니다.

2. 마스터 비밀번호는 문장이 좋다

비밀번호 관리자의 마스터 비밀번호는 가장 중요합니다. 짧고 복잡한 문자열보다 길고 기억 가능한 문장이 안전하고 실수도 적습니다. 예를 들어 한국어 문장, 영어 단어, 숫자, 특수문자를 섞어 20자 이상으로 만들면 타이핑은 가능하면서 추측은 어렵습니다. 단, 가족 이름, 생일, 회사명, 블로그명처럼 공개 정보와 연결되는 단어는 피하세요.

마스터 비밀번호는 메신저, 노션, 이메일 초안, 코드 저장소에 적지 않습니다. 종이에 적어 봉투에 넣고 보관하거나, 신뢰할 수 있는 비상 복구 절차를 따로 마련합니다. 팀이라면 “관리자 1명만 모든 것을 안다”는 구조를 피하고, 최소 2명 이상이 복구 절차를 이해해야 합니다.

3. 모든 계정의 비밀번호를 다르게 만든다

비밀번호 관리자를 도입했다면 가장 먼저 해야 할 일은 중요한 계정부터 비밀번호를 교체하는 것입니다. 한 번에 모든 계정을 바꾸려다 지치기보다 아래 순서로 진행하면 효과가 큽니다.

  1. 이메일 계정: 다른 서비스의 비밀번호 재설정 통로입니다.
  2. 도메인·DNS 계정: 서비스 주소를 탈취당하면 신뢰가 무너집니다.
  3. GitHub·GitLab 계정: 소스코드와 배포 권한이 연결됩니다.
  4. 클라우드·호스팅 계정: 서버와 데이터 접근 권한이 있습니다.
  5. 결제·상업성 광고 계정: 비용 피해가 바로 발생합니다.
  6. 커뮤니케이션 계정: Slack, Notion, Discord, Gmail 등이 포함됩니다.

각 서비스에는 비밀번호 관리자가 생성한 20자 이상의 무작위 비밀번호를 사용합니다. 사람이 외울 필요가 없으니 의미 있는 단어를 넣을 이유가 없습니다. 비밀번호 생성 옵션에서 대문자, 소문자, 숫자, 특수문자를 모두 켜되, 특정 서비스가 특수문자를 제한하면 그 서비스에 맞춰 생성하면 됩니다.

4. 2FA는 앱 기반 또는 보안 키가 기본이다

2FA는 두 번째 증거를 요구하는 장치입니다. 비밀번호가 유출되어도 추가 인증 없이는 로그인하기 어렵게 만듭니다. SMS 인증은 없는 것보다 낫지만, 번호 탈취나 통신사 문제에 취약할 수 있으므로 가능하면 인증 앱이나 보안 키를 사용하세요.

실무에서 권장하는 우선순위는 다음과 같습니다.

  • 1순위: 하드웨어 보안 키, 패스키, 플랫폼 인증
  • 2순위: TOTP 인증 앱
  • 3순위: 푸시 승인 방식
  • 4순위: SMS 또는 이메일 코드

GitHub, Google, Cloudflare, Vercel, AWS 같은 핵심 계정은 보안 키나 패스키를 우선 고려하세요. 보안 키는 최소 2개를 등록하는 것이 좋습니다. 하나는 평소 사용하고, 하나는 잠긴 서랍이나 금고에 보관합니다. 하나만 등록하면 분실 시 복구가 어려워질 수 있습니다.

5. 복구 코드는 발급 즉시 보관한다

2FA를 켜면 대부분의 서비스가 복구 코드를 제공합니다. 많은 사고가 “2FA를 켰지만 복구 코드를 저장하지 않음”에서 시작됩니다. 휴대폰을 잃어버리거나 인증 앱 데이터가 날아가면 복구 코드가 마지막 통로가 됩니다.

복구 코드는 다음 원칙으로 관리합니다.

  • 비밀번호 관리자 안에 계정 항목의 보안 메모로 저장한다.
  • 종이로 출력해 오프라인 장소에 보관한다.
  • 코드가 한 번 사용되면 새 복구 코드를 다시 발급한다.
  • 팀 계정은 공유 금고에 저장하고 접근 권한을 제한한다.
  • 스크린샷을 사진 앱에 방치하지 않는다.

복구 코드와 마스터 비밀번호를 같은 장소에만 두는 것도 위험합니다. 예를 들어 노트북 분실과 동시에 모든 복구 정보가 사라지지 않도록 온라인 금고와 오프라인 백업을 나눠 두세요.

6. 공유 계정은 최대한 줄인다

서비스가 개인별 계정을 지원한다면 공유 계정보다 개인 계정을 초대하는 방식이 좋습니다. 공유 계정은 누가 로그인했는지 알기 어렵고, 한 명이 그만둘 때 비밀번호를 바꿔야 하며, 2FA 기기가 한 사람에게 묶이는 문제가 생깁니다.

어쩔 수 없이 공유 계정을 써야 한다면 다음 항목을 문서화하세요.

  • 계정의 목적과 소유자
  • 로그인 URL과 담당 부서
  • 비밀번호 관리자 금고 위치
  • 2FA 방식과 복구 코드 위치
  • 접근 가능한 사람 목록
  • 권한 회수 절차
  • 마지막 비밀번호 변경일

이 문서는 공개 위키가 아니라 제한된 운영 문서에 보관해야 합니다. 공개 저장소, 이슈, 커밋 메시지에 계정 정보를 남기면 안 됩니다. Git 사용이 익숙하지 않다면 Git·GitHub 초보가 커밋과 푸시하는 법을 먼저 익혀 실수로 민감 정보를 올리는 일을 줄이세요.

7. 퇴사·외주 종료 체크리스트를 만든다

보안은 시작보다 종료 절차에서 자주 무너집니다. 외주 개발자, 마케터, 디자이너가 프로젝트에서 빠질 때 계정 권한을 회수하지 않으면 몇 달 뒤에도 접근 가능한 상태가 남습니다.

종료 시 확인할 항목은 다음과 같습니다.

  • GitHub, 배포 플랫폼, 클라우드 콘솔에서 계정 제거
  • 공유 금고 접근 권한 회수
  • 공유 계정 비밀번호 교체
  • API 키와 토큰 재발급 여부 검토
  • Slack, Notion, Figma 등 협업 도구 초대 해제
  • 도메인·DNS·결제 계정 접근 권한 확인
  • 개인 장비에 저장된 SSH 키와 세션 만료 안내

모든 항목을 매번 새로 생각하지 말고 체크리스트로 만들어 두세요. 작은 팀일수록 사람이 기억하는 운영이 많은데, 그럴수록 실수는 더 쉽게 발생합니다.

8. 월 1회 보안 점검 루틴

처음 설정을 끝냈다고 보안이 끝나는 것은 아닙니다. 한 달에 한 번 20분만 투자해도 위험을 크게 줄일 수 있습니다.

  • 비밀번호 관리자에서 약한 비밀번호와 재사용 비밀번호를 확인한다.
  • 오래된 공유 계정과 사용하지 않는 초대를 삭제한다.
  • 2FA가 꺼진 핵심 계정이 없는지 확인한다.
  • 브라우저에 저장된 비밀번호가 중복으로 남아 있지 않은지 확인한다.
  • 복구 이메일과 전화번호가 최신인지 확인한다.
  • 의심스러운 로그인 기록과 활성 세션을 점검한다.

개인정보를 다루는 서비스라면 계정 보안은 법적·운영적 책임과도 연결됩니다. 운영자 관점에서 어떤 항목을 공개 문서에 담아야 하는지는 개인정보처리방침에 꼭 넣을 항목에서 이어서 확인할 수 있습니다.

마무리 체크리스트

  • 비밀번호 관리자를 하나 정하고 모든 핵심 계정을 등록했는가
  • 이메일, 도메인, GitHub, 클라우드 계정의 비밀번호를 고유하게 바꿨는가
  • 핵심 계정에 앱 기반 2FA, 패스키, 보안 키를 적용했는가
  • 복구 코드를 온라인 금고와 오프라인 장소에 안전하게 보관했는가
  • 공유 계정 목록과 권한 회수 절차가 문서화되어 있는가
  • 퇴사·외주 종료 시 사용할 보안 체크리스트가 있는가

보안 설정은 완벽을 목표로 시작하면 미뤄지기 쉽습니다. 오늘은 이메일과 GitHub 계정부터 정리하고, 내일은 도메인과 배포 계정을 정리하는 방식으로 쪼개서 진행하세요. 가장 위험한 계정부터 하나씩 잠그는 것이 실무에서 가장 현실적인 출발점입니다.