API는 고급 사용자가 전략이나 자동화를 수행하기 위한 도구이지만, 동시에 계정을 도용당하는 가장 흔한 경로이기도 합니다. 본문에서는 보안 설정 방법을 제공합니다. 다운로드 입구: Binance 공식 사이트, 모바일 환경 Binance 공식 APP. iOS에 앱이 설치되어 있지 않다면 iOS 설치 가이드를 참고하세요.
1. API key 권한
| 권한 | 기본 상태 | 권장 상태 |
|---|---|---|
| 읽기 전용(Read) | 켜짐 | 켜짐 |
| 현물 / 마진 거래 | 꺼짐 | 필요에 따라 켬 |
| 선물 거래 | 꺼짐 | 필요에 따라 켬 |
| 유니버설 전송(Universal Transfer) | 꺼짐 | 필요에 따라 켬 |
| 출금 | 꺼짐 | **절대 켜지 않음** |
2. 출금 권한의 위험성
API 출금 권한이 활성화되면 다음과 같은 일이 발생합니다:
- 키를 확보하기만 하면 2FA 없이도 출금이 가능합니다.
- 24시간 대기 시간이 적용되지 않습니다.
- 화이트리스트 제한이 적용되지 않습니다(추가로 설정하지 않은 경우).
거의 모든 대규모 API 탈취 사건은 출금 권한을 켜두었기 때문에 발생했습니다. 자신감이 아주 넘치고 물리적으로 격리된 서버를 사용하는 경우가 아니라면 영원히 켜지 마세요.
3. IP 화이트리스트
API key는 특정 IP에 연동할 수 있습니다:
- 귀하 서버의 IP
- 자택 게이트웨이의 공인 IP
연동 후에는 해당 IP에서 오는 요청만 수락됩니다. 따라서 키가 유출되더라도 공격자가 다른 IP에서 이를 사용할 수 없습니다.
설정 방법
API 관리 → 키 편집 → IP 화이트리스트 → IP 추가(여러 개 가능).
한계점
가정용 네트워크 IP는 가끔 변경될 수 있습니다(동적 IP). 상업용 VPS에서 고정 IP를 사용하는 것이 더 안정적입니다.
4. 키 보관
API 생성 후 표시되는 secret은 단 한 번만 보여집니다. 보관 방법:
권장
- 1Password / Bitwarden 등 비밀번호 관리자
- 암호화된 노트
- 서버의 .env 파일(권한 600)
금기 사항
- GitHub / GitLab에 커밋
- 스스로에게 이메일 전송
- Slack / 메신저로 팀원에게 전송
- 캡처하여 클라우드에 저장
- 코드 주석에 기록
5. API 도용 신호
정기적으로 API 관리 페이지를 점검하세요:
- 본인이 생성하지 않은 키가 있는지
- 기존 키의 권한이 변경되었는지(특히 출금 권한)
- IP 화이트리스트가 변경되었는지
- 최근 호출 시간이 이상한지
하나라도 이상이 발견되면 즉시 해당 키를 삭제하세요.
6. 정기 교체
빈도
- 고위험(퀀트 거래): 매월 한 번
- 일반 전략: 매 분기
- 읽기 전용 모니터링: 반년
프로세스
- 새 키 생성
- 전략 코드 업데이트
- 새 키가 제대로 작동하는지 테스트
- 예전 키 삭제
- 같은 목적의 여러 키를 장기간 방치하지 말 것
7. API 도용 응급 조치
키에 이상을 발견했다면:
즉시
- binance.com 로그인 → API 관리
- 모든 키 삭제(한 번에 전체 삭제 가능)
- Binance 로그인 비밀번호 변경
- 2FA 재설정(공격자가 2FA도 탈취했을 가능성 있음)
이어서
- 거래 내역 / 출금 기록 확인
- "API 도용" 문의(工单) 제출
- 키를 저장했던 모든 기기에 바이러스 검사 수행
- 유출 경로 파악(GitHub 공개 여부? 동료 컴퓨터?)
장기 조치
- 키를 다시 생성할 때 모든 보안 기능 활성화(IP 화이트리스트, 권한 제한)
- 더 이상 출금 권한을 켜지 않음
8. API와 2FA의 관계
API 호출 자체는 2FA가 필요하지 않습니다. 이것이 API의 편리함입니다. 하지만:
- 키를 생성 / 삭제하려면 2FA가 필요합니다.
- 키 권한을 변경하려면 2FA가 필요합니다.
- IP 화이트리스트를 변경하려면 2FA가 필요합니다.
따라서 2FA 보안이 강할수록 API 생성 과정이 철저히 보호되며, 공격자가 악성 키를 직접 생성하기 어려워집니다.
9. 제3자 플랫폼에 API 연동 시 주의 사항
일부 카피 트레이딩 / 차익 거래 플랫폼에서는 API key를 요구합니다:
평가 기준
- 플랫폼이 합법적이고 규제를 준수하는가
- 출금 권한을 요구하는가 (요구한다면 → 거절)
- IP 고정을 지원하는가 (지원하지 않는다면 → 경계)
권장 조치
- 오직 "읽기 전용 + 거래" 권한만 부여
- 플랫폼이 공개한 IP로 제한 설정
- 격월로 키 상태 점검
자주 묻는 질문
Q1: API key는 언제 만료되나요? 자동으로 만료되지 않습니다. 사용자가 수동으로 삭제하거나 교체해야 합니다.
Q2: 키를 삭제하면 현재 실행 중인 전략은 어떻게 되나요? 즉시 연결이 끊깁니다. 이후의 요청은 인증 오류를 반환합니다.
Q3: 하루 최대 거래 금액을 제한할 수 있나요? Binance API에는 내장된 호출 한도(rate limit)는 있지만 사용자 수준에서 "일일 한도"를 설정할 수는 없습니다. 이는 전략 코드 내에서 자체적으로 구현해야 합니다.
Q4: 왜 제가 생성한 기억이 없는 키가 계속 사용 중인 것으로 표시되나요? 도용당한 것으로 간주하고 즉시 삭제하세요.