APIキーを安全に使う設定
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 6 分
結論
APIキーは、権限を最小限にし、IPアドレスを制限し、用途ごとに分けて発行するのが基本です。とくに出金権限は、必要がなければ絶対に付けないでください。キーが漏れても出金できなければ被害は限定されます。キーの文字列は発行時にしか表示されないことが多いため、保管方法も先に決めておきます。
要点
- 出金権限は原則として付けない。付ける場合は出金先の制限と併用する
- 接続元のIPアドレスを制限し、必要な範囲だけ許可する
- 用途ごとに別のキーを発行し、不要になったら即座に削除する
- シークレットは発行時にしか表示されないことが多く、再表示できない
定義
外部のプログラムから取引所の口座を操作するための認証情報のこと。通常、公開されるキーと、秘密にすべきシークレットの組で発行されます。
APIキーを発行する前に、何のために使うのかをはっきりさせてください。残高や取引履歴を読むだけのツールに使うのか、注文を出すプログラムに使うのか、資産を自動で移動させるのか。用途が決まれば、必要な権限も決まります。一般的な取引所では、参照のみ、取引、出金といった単位で権限を選べるようになっています。ここで「とりあえず全部許可」にしてしまうのが、最も多く、最も高くつく間違いです。
権限設定の原則は最小権限です。残高を集計するだけなら参照のみで足ります。自動売買を動かすなら取引権限まで。出金権限は、資産を自動で外部に送る仕組みを自分で運用しているのでもなければ、付ける理由がありません。出金権限のないキーが漏れた場合、攻撃者にできるのは情報の閲覧や不利な取引であって、資産を持ち去ることはできません。この差が決定的です。どうしても出金権限が必要な場合は、出金先をホワイトリストに登録したアドレスだけに限定する設定と必ず併用してください。
次にIP制限です。多くの取引所では、APIキーを使える接続元のIPアドレスを指定できます。サーバー上でプログラムを動かすなら、そのサーバーのIPだけを許可します。これにより、キーが漏れても、指定外の場所からは使えません。自宅の回線のようにIPが変わる環境では運用が難しいことがありますが、可能な環境なら最も効果の高い対策のひとつです。
保管と運用も設計に含めます。シークレットは発行時にしか表示されないことが多く、控え忘れると再発行するしかありません。コードに直書きせず環境変数や秘密情報の管理機能を使う、リポジトリに絶対に入れない、スクリーンショットや画面共有で映さない、といった基本を守ってください。用途ごとにキーを分けておくと、1つを無効化しても他の処理が止まりません。
最後に、定期的な棚卸しです。発行済みのキーを一覧で見て、いま使っていないものは削除します。使っているキーについても、権限とIP制限が当初の設計どおりかを確認してください。漏えいが疑われるときは、調査より先に削除が正解です。キーはいつでも作り直せますが、失った資産は戻りません。
注意点
- · APIキーを第三者のサービスや個人に渡さないでください。「運用を代行する」「自動売買ツールに設定するだけ」という誘いは、資産を奪う手口として使われています
- · 出金権限を付けたキーが漏れると、資産をそのまま持ち去られます。付ける必然性がないなら付けないでください
- · APIキーはシードフレーズや秘密鍵とは別物ですが、いずれも第三者に渡してはいけない情報です。取引所がこれらを尋ねることはありません
よくある質問
シークレットを忘れてしまいました。
多くの取引所では再表示できません。該当のキーを削除して、新しいキーを発行し直してください。そのうえで、権限とIP制限を設定し直し、使っているプログラム側の設定も更新します。