Binance API権限の最も安全な設定方法:IPホワイトリストは必須
APIキーはアカウントレベルのリスク要因です。本記事では、権限の最小化、IPホワイトリストの設定、出金制限など、核心となるセキュリティ設定について解説します。
APIキーが一度流出すると、被害は甚大になる可能性があります。まず Binance公式サイト でAPIリストを確認し、アプリでの管理には Binance公式アプリ を使用してください(iOSについては iOSインストールガイド を参照)。
API権限の階層
| 権限 | リスク |
|---|---|
| 読み取り専用 | 非常に低い |
| 現物取引 | 中 |
| レバレッジ取引 | 中 |
| 先物取引 | 中 |
| 内部転送(サブアカウント) | 中〜高 |
| 出金(有効化) | 非常に高い |
「最小権限の原則」に基づき、必要な権限のみを付与してください。
「出金」権限は絶対に有効にしない
自動出金が必要な特殊な業務(取引所間の連携など)を行っている場合を除き、出金権限は常にオフにしてください。
もし有効にしていると、キーを奪われた攻撃者が直接資産を引き出すことができてしまいます。IPホワイトリストを設定していても、何らかの方法でバイパスされるリスクはゼロではありません。
IPホワイトリストの役割
指定したIPアドレスからのリクエストのみを有効にします。たとえAPIキーが盗まれても、他のIPからはアクセスできません。
設定の目安:
- 自宅のIP(固定IPの場合)
- 使用しているVPSのIP
- 会社の固定グローバルIP
固定IPを持っていない場合
一般的な家庭用回線は動的IPです。以下の対策を検討してください。
1. VPSを利用する
クラウドサービス(DigitalOcean、Vultr、AWSなど)でVPSを借り、固定IPを割り当てます。プログラムはそのVPS上で稼働させます。月額5〜10ドル程度で十分なスペックのものが借りられます。
2. 内網透過
frpcやngrokなどのツールで固定アドレスを公開する方法がありますが、安定性に欠けます。
3. 設定しない(ハイリスク)
推奨されません。相場情報の取得(読み取り専用)のみに限定すべきです。
APIキーの用途別分離
用途ごとに異なるAPIキーを作成します。
| 用途 | キー | 権限 |
|---|---|---|
| 相場チェック | キーA | 読み取り専用 |
| 現物戦略 | キーB | 現物取引 + IPホワイトリスト |
| 先物戦略 | キーC | 先物取引 + IPホワイトリスト |
| バックアップ | キーD | 停止中(緊急時のみ有効化) |
どれか一つのキーに問題が発生しても、それを削除するだけで済み、他の運用には影響しません。
APIキーの保管
シークレットキー(Secret Key)は適切に保管してください:
- パスワードマネージャー(1Password / Bitwardenなど)
- 環境変数(コード内に直接書かない)
- 暗号化された .env ファイル
シークレットキーをGitHubなどの公開リポジトリにコミットしないでください。 毎年、数千人の開発者がこれが原因で資産を盗まれています。
コードにおけるベストプラクティス
# 良い例
import os
secret = os.environ['BINANCE_SECRET']
# 悪い例
secret = 'abc123def456...'
シークレットはOSの環境変数から読み込むようにし、ソースコードには含めないようにします。
定期的な監査
月に一度は以下の確認を行ってください:
- Binanceにログインし、APIリストを表示
- すべてのキーが現在も使用されているか確認
- 不要なキーは削除
- 流出の疑いがある場合は即座に削除して再作成
流出が疑われる兆候
- 身に覚えのない注文がある
- 資産が不自然に減少している
- 異常なIPからのログイン履歴がある
- API呼び出し統計が異常に急増している
一つでも兆候があれば、直ちに以下の対応を取ってください:
- すべてのAPIキーを削除
- パスワードの変更
- 2FA(二段階認証)の再設定
- カスタマーサポートへの連絡
APIキーの「ローテーション」
90日ごとにAPIキーを能動的に更新するのが望ましい習慣です。流出の有無にかかわらず定期的に交換することで、攻撃を受けるリスクの期間を短縮できます。
サブアカウントでのAPI運用
サブアカウントごとに独立したAPIキーを発行できます。これにより隔離性が高まります:
- メインアカウントではAPIを作成しない
- サブアカウントに必要な資金のみを割り当てる
- サブアカウントのAPIで戦略を実行
- 一つのサブアカウントが攻撃されても、メインアカウントや他のサブアカウントには影響しない
API権限と2FA
APIによる操作自体には2FAは不要です(これがAPIのリスクの源泉です)。 ただし、APIキーの作成、変更、削除の際には、2FAとメール認証が必要になります。
セキュリティチェックリスト
- [ ] 各キーの権限を最小化している
- [ ] 出金権限がオフになっている
- [ ] IPホワイトリストを設定している
- [ ] シークレットをコードリポジトリに入れていない
- [ ] 環境変数を使用している
- [ ] 定期的に監査を行っている
- [ ] 90日ごとに交換している
- [ ] サブアカウントで隔離している
サードパーティプラットフォームのAPI
3Commasなどの外部ツールを利用する場合、そのプラットフォームにAPIキーを提供する必要があります:
- 現物/先物取引のみを許可し、出金は決して許可しない
- そのプラットフォームが指定するIPホワイトリストをバインドする
- 現在もそのツールを利用しているか毎年評価する
サードパーティプラットフォーム自体がハッキングされるリスクもあります。提供したキーのリスクは、そのプラットフォームのセキュリティレベルと同等になります。
よくある質問
Q: 盗まれた資産を回復することはできますか? A: 基本的に不可能です。Binanceは調査を行いますが、回収率は極めて低いです。事前の防御がすべてです。
Q: APIレート制限でアカウントが永久凍結されることはありますか? A: いいえ、レート制限は一時的なアクセスブロックであり、永久的な凍結ではありません。
Q: 一つのAPIで複数のアカウントを操作できますか? A: アカウントごとにキーは独立しています。複数のキーを同時に使用することは可能です。
Q: APIで他人のアカウントを確認できますか? A: できません。キーは作成した本人のアカウントにのみ紐付きます。
Q: シークレットキーを忘れた場合、再発行できますか? A: できません。既存のキーを削除し、新しく作成し直す必要があります。
関連ガイド
APIのセキュリティが不十分なままでは、どんなに優れた技術があってもハッカーのために働いているようなものです。まず権限とIPのロックを確実に設定しましょう。