코인 거래소 API 키, 자동매매 맡길 때 출금 권한을 켜도 될까
페이지 정보
본문
자동매매 프로그램이나 세금 정리 앱을 연결하려고 API 키를 만들다 보면 조회, 거래, 출금 권한을 고르는 단계가 나옵니다. 여기서 출금 권한까지 켜야 하는지 헷갈립니다. 이 권한은 주문을 맡기는 것과 계정 밖으로 돈이 나갈 문을 여는 것이 다릅니다. 이 차이를 놓치면 위험합니다.
API 키는 외부 프로그램이 내 거래소 계정에 접근할 때 쓰는 별도의 열쇠입니다. 비밀번호를 그대로 넘기지 않아도 된다는 점에서는 편하지만, 어떤 권한을 붙였느냐에 따라 그 열쇠가 할 수 있는 일이 꽤 달라집니다.
API 키는 비밀번호보다 좁지만, 가볍지는 않다
거래소 API 키는 보통 긴 문자열 형태로 만들어집니다. 사람이 로그인할 때 치는 비밀번호와는 다르지만, 프로그램 입장에서는 계정에 대신 들어가는 통로가 됩니다.
업비트 API Key 안내는 API Key가 사용자의 신원과 API 호출 권한을 확인하기 위해 쓰이고, 자산 조회나 주문, 입출금 관리처럼 계정과 연결된 API를 호출할 때 필요하다고 설명합니다. 이 말은 API 키가 단순한 닉네임이나 조회 번호가 아니라는 뜻입니다.
그렇다고 모든 API 키가 같은 힘을 갖는 것도 아닙니다. 읽기만 가능한 키와 주문까지 낼 수 있는 키, 출금까지 가능한 키는 사고가 났을 때 벌어지는 일이 다릅니다.
그래서 API 키를 만들 때는 “이 앱을 믿어도 되나”만 보면 부족합니다. 그 앱이 실제로 어떤 권한을 요구하는지까지 봐야 합니다.
조회 권한은 돈을 움직이지 않는다
세금 정리 앱이나 포트폴리오 앱은 보통 내 거래 내역과 잔고를 읽어야 합니다. 매수·매도 기록, 입출금 기록, 보유 자산을 불러와야 계산이 되기 때문입니다.
이때 필요한 것은 대체로 조회 권한입니다. 조회 권한은 민감하지 않다는 뜻이 아닙니다. 내 거래 기록과 보유 자산이 밖으로 보일 수 있으니 사생활과 보안 면에서는 여전히 중요합니다.
다만 조회 권한만으로는 주문을 새로 내거나 코인을 밖으로 보내지는 못합니다. 위험의 종류가 다릅니다. 내 정보가 노출되는 문제와 내 자산이 움직이는 문제를 같은 칸에 넣으면 판단이 흐려집니다.
Binance.US의 API 키 생성 안내도 기본 제한이 읽기 권한으로 시작하고, 현물 거래나 출금 권한은 별도로 켤 수 있는 항목으로 설명합니다. 거래소마다 표현은 달라도 권한을 나누는 이유는 비슷합니다.
자동매매에 필요한 것은 보통 거래 권한
자동매매 프로그램은 단순 조회보다 한 단계 더 들어갑니다. 가격을 보고, 조건이 맞으면 주문을 내야 하니 거래 권한이 필요할 수 있습니다.
여기서 헷갈리는 부분이 생깁니다. “봇이 주문을 낼 수 있다”는 말과 “봇이 내 코인을 밖으로 보낼 수 있다”는 말은 완전히 다릅니다.
거래 권한이 있으면 원하지 않는 매수나 매도가 생길 수 있습니다. 잘못된 전략, 버그, 유출된 키가 손실을 만들 수 있습니다. 그래도 그 손실은 보통 거래소 계정 안에서 주문이 잘못 나가는 형태로 나타납니다.
출금 권한은 다릅니다. 자산이 거래소 밖의 주소로 나갈 수 있습니다. 주문 손실과 출금 사고는 복구 가능성도, 확인해야 할 기록도 다르게 흘러갑니다.
출금 권한은 사고의 크기를 바꾼다
출금 권한이 켜진 API 키를 외부 프로그램에 넘긴다는 것은 그 프로그램이 조건만 맞으면 자산 이동 요청까지 낼 수 있다는 뜻입니다. 자동매매가 목적이라면 대개 굳이 필요한 권한이 아닙니다.
Binance.US의 API 키 안전 수칙은 API 키가 계정 이메일과 비밀번호를 대신하는 문자열처럼 작동할 수 있고, 권한에 따라 거래나 출금 같은 동작이 가능하다고 설명합니다. 여기서 읽어야 할 부분은 겁을 주는 문구가 아니라 권한의 무게입니다.
세금 앱은 내역을 읽으면 됩니다. 포트폴리오 앱도 대개 잔고를 읽으면 됩니다. 자동매매 봇은 주문 권한이 필요할 수 있지만, 출금 권한까지 필요한 경우는 훨씬 좁습니다.
어떤 서비스가 출금 권한을 요구한다면 그 이유가 분명해야 합니다. 단순히 “연동이 잘 된다”거나 “모든 기능을 쓰려면 필요하다” 정도라면, 계정 밖으로 자산을 옮길 권한을 주기에는 설명이 약합니다.
IP 제한은 귀찮은 울타리
API 키를 만들 때 IP 제한을 보게 되면 귀찮게 느껴질 수 있습니다. 집 인터넷 주소가 바뀌기도 하고, 서버를 따로 쓰지 않으면 어떤 IP를 넣어야 할지도 애매합니다.
그래도 IP 제한은 단순한 장식이 아닙니다. 키 문자열이 밖으로 새더라도, 정해 둔 IP에서 온 요청이 아니면 막을 수 있는 울타리 역할을 합니다.
업비트 안내에는 하나의 API Key에 등록할 수 있는 허용 IP 수가 정해져 있다는 설명이 있고, Binance.US도 IP 접근 제한을 설정할 수 있다고 안내합니다. 숫자나 방식은 거래소마다 다르지만, 방향은 같습니다. 키 자체와 요청이 들어오는 위치를 같이 좁히는 것입니다.
물론 IP 제한이 모든 사고를 막아 주지는 않습니다. 하지만 권한을 줄이고, IP를 좁히고, 필요 없는 키를 지우는 쪽으로 갈수록 사고가 났을 때 움직일 수 있는 범위가 작아집니다.
여기서 출금 주소 허용 목록과도 헷갈릴 수 있습니다. 두 장치는 서로 다른 층의 안전장치입니다. API 키 권한은 외부 프로그램이 어떤 요청을 할 수 있는지를 정하고, 주소 허용 목록은 출금이 어느 주소로 나갈 수 있는지를 좁힙니다.
예전에 다룬 출금 주소 화이트리스트는 새 주소 등록과 대기 시간, 허용 목록의 문제였습니다. 이번 API 키 권한은 그보다 앞단에서 “외부 프로그램에게 출금 요청 자체를 맡길 것인가”의 문제입니다.
둘 중 하나가 있으니 끝이라고 보면 안 됩니다. 출금 권한이 없으면 API 키로 출금 요청을 내기 어렵고, 주소 허용 목록은 출금 단계에서 목적지를 좁힙니다. 역할이 다르니 같이 생각하되 같은 것으로 보면 곤란합니다.
만든 뒤 잊어버린 키가 더 위험할 때
API 키는 만들 때만 신경 쓰고 잊어버리기 쉽습니다. 세금 정리 때문에 잠깐 만들었거나, 예전에 쓰던 봇을 멈췄는데 키는 그대로 남아 있을 수 있습니다.
이런 키는 조용해서 더 문제입니다. 평소에는 아무 일도 없어 보이다가, 나중에 서비스 계정이 털리거나 키가 어딘가에 남아 있으면 그때 권한이 다시 문제가 됩니다.
그래서 API 키를 볼 때는 새로 만들 키만 보지 말고 이미 만들어 둔 키도 같이 떠올려야 합니다. 지금도 쓰는 서비스인지, 조회만 필요한데 거래 권한이 붙어 있는지, 자동매매가 끝났는데 키가 그대로 남아 있는지입니다.
정리하면 API 키에서 가장 중요한 질문은 “이 앱을 믿을 수 있나” 하나가 아닙니다. 이 앱이 지금 내 계정에서 무엇까지 할 수 있게 되는지입니다.
조회, 거래, 출금은 같은 줄에 놓여 있어도 같은 권한이 아닙니다. 자동매매를 맡기더라도 출금 권한까지 켜야 하는지는 별개의 질문입니다. 그 차이를 나눠 보면 API 키가 덜 막연하고, 계정에 열어 두는 문도 조금 더 작게 만들 수 있습니다.
스테이블코인, 거래소 서비스, 지갑 전송, 예치 상품은 가격 괴리, 출금 지연, 체인 선택 오류, 정책 변경 같은 위험이 있을 수 있습니다. 이 글은 정보 제공용이며 특정 자산 매수, 예치, 전송을 권유하지 않습니다. 실제 실행 전에는 공식 공지와 본인 계정 조건을 다시 확인해야 합니다.