AIにPythonやWebアプリのコードを書いてもらい、無事に動いた。うれしくなって、そのままGitHubや共有フォルダへ保存したくなることはありませんか。
しかし、コードの中にAPIキーが直接書かれている場合は、そのまま公開してはいけません。APIキーはプログラムの一部ではなく、他人に見せてはいけない「秘密の鍵」として扱う必要があります。
APIキーとは何か
APIキーは、外部のサービスや機能を利用するときに使う認証情報です。
たとえば、AIサービスや地図、翻訳などのAPIをプログラムから利用する際に、「この利用者からのアクセスです」と確認するために使われます。
パスワードに近い役割を持つため、第三者に見られないように管理することが大切です。
コードへ直接書くと何が問題なのか
AIが生成したコードに、次のような記述が含まれることがあります。
API_KEY = "xxxxx"
自分のパソコンだけで試している間は動作していても、このコードをGitHubへ公開すると、APIキーまで一緒に見られる可能性があります。
第三者にキーを使われると、意図しないAPI利用や料金の発生につながるおそれがあります。
「コードが正常に動くこと」と「安全に共有できること」は、別の完成条件です。
コメントへ移動しても対策にはならない
コードから外したつもりで、APIキーをコメントへ書く方法も安全ではありません。
# API_KEY = "xxxxx"
コメントもソースコードの一部です。GitHubや共有フォルダへ保存すれば、ほかの人から読むことができます。
APIキーは書く場所を少し変えるのではなく、コードそのものから分離する必要があります。
APIキーは環境変数などへ分ける
基本的な考え方は、プログラムと秘密情報を別々に管理することです。
コード側にはAPIキーの値を書かず、環境変数から読み込みます。
import os
api_key = os.environ["API_KEY"]
実際のAPIキーは、パソコンや実行環境側へ設定します。これにより、コードを共有してもキーそのものは含まれません。
利用する開発環境や公開先によっては、「Secrets」「Secret Manager」などの秘密情報用設定が用意されています。名前や設定手順は異なりますが、「コードと秘密情報を分ける」という考え方は共通です。
.envファイルもGitHubへ上げない
開発中は、APIキーを.envファイルへ記録する方法もあります。
API_KEY=xxxxx
ただし、.envファイルには実際の秘密情報が入っています。コードから分けただけで安心せず、GitHubの共有対象からも外さなければなりません。
一般的には、.gitignoreへ次のように記載します。
.env
これにより、.envファイルを誤ってGitの管理対象へ追加するリスクを下げられます。
なお、すでにGitへ登録したAPIキーは、あとから.gitignoreへ追加するだけでは過去の履歴から消えません。
もしAPIキーを公開してしまったら
実際のAPIキーをGitHubなどへ公開した可能性がある場合は、コードから削除するだけで終わらせないようにします。
まず、利用しているサービスの管理画面で対象のキーを無効化し、新しいキーへ交換します。そのうえで、公開したリポジトリや履歴への対応を確認します。
「誰にも見られていないはず」と考えて同じキーを使い続けるより、漏れた可能性があるキーは交換する方が安全です。
AIが書いたコードを公開する前の確認
AIにコードを書いてもらった後は、公開前に次の一文で確認してみましょう。
秘密の値が、コードやコメントに残っていないか?
APIキーだけでなく、パスワードやアクセストークンなどの秘密情報にも使える確認方法です。
AIへレビューを依頼する場合も、実際の秘密情報を入力せず、伏せ字やダミーの値へ置き換えてから確認するようにします。
まとめ
AIが生成したコードは、動いただけでは公開準備まで完了したとは限りません。
APIキーを安全に扱うポイントは次のとおりです。
- APIキーをコードへ直接書かない
- コメントへ残さない
- 環境変数や秘密情報用設定へ分ける
- 秘密情報を含む
.envを公開しない - 公開した可能性があるキーは無効化して交換する
まずはGitHubへ公開する直前に、「秘密の値がコードやコメントに残っていないか」を確認してみてください。プログラムと秘密の鍵を分けるところまでが、安全な完成です。


コメント