AIが書いたコードのAPIキーはどこに置く?GitHubへ公開する前の基本対策

セキュリティ・情報管理

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へ公開する直前に、「秘密の値がコードやコメントに残っていないか」を確認してみてください。プログラムと秘密の鍵を分けるところまでが、安全な完成です。

コメント

タイトルとURLをコピーしました