APIは上級ユーザーが戦略や自動化を行うためのツールですが、同時に盗難の最も一般的な経路でもあります。本記事では安全な設定方法を提供します。ダウンロード入口:Binance公式サイト、モバイル版は Binance公式アプリ、iOSでアプリをインストールしていない場合は iOSインストール手順 を確認してください。
1. APIキーの権限
| 権限 | デフォルト | 推奨 |
|---|---|---|
| 読み取り専用(Read) | オン | オン |
| 現物 / マージン取引 | オフ | 必要に応じてオン |
| 先物取引 | オフ | 必要に応じてオン |
| ユニバーサルトランスファー | オフ | 必要に応じてオン |
| 出金 | オフ | **永遠にオンにしない** |
2. 出金権限の危険性
APIの出金権限をオンにすると:
- キーを取得すれば2FAなしで出金可能になる
- 24時間の遅延がなくなる
- ホワイトリストの制限がなくなる(追加で設定しない限り)
ほぼすべての大規模なAPI盗難事件は、出金権限をオンにしていたことが原因です。絶対的な自信と物理的に隔離されたサーバーがない限り、永遠にオンにしないでください。
3. IPホワイトリスト
APIキーは特定のIPにバインドすることができます:
- 自身のサーバーのIP
- 自宅ゲートウェイのパブリックIP
バインドすると、これらのIPからのリクエストのみが受け付けられます。キーが流出しても、攻撃者が他のIPから使用することはできません。
設定
API管理 → キーの編集 → IPホワイトリスト → IPを追加(複数可)。
制限
家庭内ネットワークのIPは時々変わります(動的)。商用のVPSで静的IPを使用する方が安定します。
4. キーの保存
APIを作成した後に表示されるsecretは一度しか表示されません。保存方法:
推奨
- 1Password / Bitwardenなどのパスワードマネージャー
- 暗号化されたメモ
- サーバーの .env ファイル(権限 600)
禁忌
- GitHub / GitLabへのコミット
- 自分宛てのメール送信
- Slack / WeChatでのチーム内送信
- スクリーンショットをクラウドに保存
- コードのコメント内に記述
5. API盗難のシグナル
定期的にAPI管理ページを確認してください:
- 自分が作成していないキーが存在しないか
- 既存のキーの権限が変更されていないか(特に出金)
- IPホワイトリストが変更されていないか
- 最近の呼び出し時間
いずれかの異常があれば、直ちにキーを削除してください。
6. 定期的なローテーション
頻度
- 高リスク(クオンツ取引):毎月1回
- 通常の戦略:四半期ごと
- 読み取り専用の監視のみ:半年ごと
手順
- 新しいキーを作成する
- 戦略コードを更新する
- 新しいキーが機能するかテストする
- 古いキーを削除する
- 同じ用途のキーを複数長期間保持しない
7. API盗難時の応急対応
キーの異常を発見した場合:
直ちに
- binance.com → API管理 にログイン
- すべてのキーを削除する(一括削除)
- Binanceのパスワードを変更する
- 2FAをリセットする(攻撃者がこれも入手している可能性があるため)
その後
- 取引履歴 / 出金履歴を確認する
- 「API盗難」のサポートチケットを提出する
- キーを保存したことのあるすべてのデバイスでウイルススキャンを実行する
- 流出元を特定する(GitHubで公開していないか?同僚のPCか?)
長期的に
- キーを再生成する際はすべての保護(IPホワイトリスト、権限の制限)を有効にする
- 今後出金権限はオンにしない
8. APIと2FAの関係
APIの呼び出し自体には2FAは不要です——これがAPIの利便性です。しかし:
- キーの作成 / 削除には2FAが必要
- キーの権限変更には2FAが必要
- IPホワイトリストの変更には2FAが必要
つまり、2FAを強固に保つこと = API作成が保護される = 攻撃者が直接悪意のあるキーを作成しにくくなる、ということです。
9. サードパーティプラットフォームとのAPI連携の注意点
コピートレードやアービトラージのプラットフォームでAPIキーの提供を求められる場合があります:
評価
- プラットフォームはコンプライアンスを遵守しているか
- 出金権限を要求しているか(要求する場合は拒否)
- IPをロックしているか(ロックしない場合は警戒)
推奨
- 「読み取り専用 + 取引」権限のみを与える
- プラットフォームが公開しているIPにロックする
- 隔月でキーの状態をチェックする
よくある質問
Q1:APIキーの有効期限はどれくらいですか? 自動的な有効期限はありません。手動で削除するかローテーションする必要があります。
Q2:キーを削除した後、実行中の戦略はどうなりますか? 直ちに接続が切断されます。その他のリクエストは認証エラーを返します。
Q3:1日の最大取引額を制限することはできますか? Binance APIには組み込みのレートリミットがありますが、ユーザーレベルで「1日あたりの限度額」を設定することはできません。戦略コード内で独自に実装する必要があります。
Q4:ずっと使われているが作成した覚えのないキーを見つけました。なぜですか? 直ちに削除し、盗難として対処してください。