
取引所APIキーの安全な管理方法|ボット運用者が守るべき5つの鉄則
※本記事にはアフィリエイト広告(プロモーション)が含まれています。
自動売買ボットは取引所のAPIキーがあって初めて動きます。そしてAPIキーは、漏れたら資産を直接失いかねない「鍵」そのものです。この記事では、実際にボットを運用している筆者が守っている管理の鉄則をまとめます。
鉄則1: 出金権限は絶対に付けない
ほとんどの取引所では、APIキー作成時に権限を選べます。
- 読み取り(残高・価格の取得)
- 取引(注文の発注・キャンセル)
- 出金 ← これは絶対にOFF
ボットに必要なのは読み取りと取引だけです。出金権限がなければ、万一キーが漏れても資産を直接送金で抜かれることはありません。これだけで被害の上限が大きく変わります。
※ただし出金権限がなくても「不利な価格で強制的に取引させて間接的に抜く」攻撃はありえるので、漏れてもいいわけではありません。
鉄則2: IPアドレス制限(ホワイトリスト)を設定する
取引所側で「このIPアドレスからのAPIアクセスしか受け付けない」という制限をかけられます。ボットをVPSで動かしているなら、VPSの固定IPだけを許可しておきましょう。これでキーが漏れても、攻撃者のマシンからは使えません。
VPS運用についてはこちらの記事で解説しています。
鉄則3: キーはコードに書かない(環境変数で管理)
やりがちなのが、スクリプトに直接キーを書いてしまうことです。
# ❌ 絶対にやってはいけない
api_key = 'mx0abc123...'
# ✅ 環境変数や .env ファイルから読む
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('EXCHANGE_API_KEY')
コードに書くと、GitHubへのアップロードやファイル共有の瞬間に流出します。「コードは公開されるかもしれないもの」という前提で、秘密情報は必ず .env などの別ファイルに分離し、.gitignore に登録しておきます。
実際、GitHubには流出したAPIキーを自動で探し回るボットが常時巡回しており、うっかりpushすると数分で抜かれると言われています。
鉄則4: 権限とアカウントを分離する
- ボット用と手動取引用でAPIキーを分ける
- 監視ツールには読み取り専用キーを渡す(取引権限を持たせない)
- 用途が終わったキーは削除する
「このキーが漏れたら何ができてしまうか」を常に最小化するのが基本です。
鉄則5: 定期的に作り直す(ローテーション)
キーは長く使うほど漏洩リスクが積み上がります。数ヶ月に一度は再発行して古いキーを無効化するのがおすすめです。取引所のAPI管理画面から数分でできます。
万一漏れたと思ったら
- 即座にAPIキーを削除(取引所のAPI管理画面)
- 口座のポジションと残高を確認
- 取引所のパスワード・2FAも変更
- 新しいキーを発行し、漏洩経路を潰してから再開
まとめ
| 鉄則 | 効果 |
|---|---|
| 出金権限OFF | 直接送金による盗難を遮断 |
| IP制限 | 漏れても他所から使えない |
| 環境変数管理 | コード経由の流出を防止 |
| 権限・キーの分離 | 被害範囲を最小化 |
| 定期ローテーション | 長期漏洩リスクを低減 |
セキュリティは「全部やって当たり前」の世界です。取引所選びの段階で細かい権限設定やIP制限に対応しているかも確認しておきましょう(取引所の選び方参照)。