1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

非エンジニアがAIとサービスを公開する前にやった、APIキーを守る3ステップ

1
Posted at

はじめに

非エンジニアながらも、生成AIに手伝ってもらいながら、Renotoriという文献検索ツールを作って公開しました。

この記事は、同じように「AIと一緒に何か作ってみたい」人に向けて書いています。エンジニアの方にとっては当たり前の内容だと思うので、そのつもりで読んでもらえるとうれしいです。

APIキーが漏れると何が起きるか

APIキーは、外部サービスを使うための合言葉です。家の鍵とほぼ同じで、持っている人なら誰でもドアを開けられます。

GitHubで公開されたコードは、鍵を探し回るプログラムに自動で読まれています。公開して短時間のうちに見つかり、勝手に使われて利用料を請求された、という話は珍しくありません。

AIと作るときに特有の落とし穴

いちばん伝えたいのはここです。

AIは「とりあえず動かす」ことを優先して、鍵をコードに直接書き込む提案をしてくることがあります。それで動いてしまうので、こちらはなかなか気づけない。

もう1つあります。Claude CodeのようなAIツールは、パソコンの中のファイルを読みながら作業します。秘密の鍵を書いたファイルも読めてしまうので、鍵がそのまま会話に表示される場合がある。AIに悪気はないので、人間の側が仕組みで防ぐしかありません。

私がやった3ステップ

1. 鍵は .env に分けて置く

.env は、秘密の情報だけを書いておくメモ帳のようなファイルです。

.env
MY_API_KEY=ここに自分のキーを書く

コードには鍵そのものを書かず、「 .env から読んでね」とだけ書きます。Pythonなら python-dotenv というライブラリ(便利な部品集)を使うと簡単です。

import os
from dotenv import load_dotenv

load_dotenv()  # .env の中身を読み込む
api_key = os.environ["MY_API_KEY"]

2. .gitignore に .env を書き足す

.gitignore は「このファイルはGitHubに載せない」というリストです。ここに1行足すだけで済みます。

.gitignore
.env

正直に書くと、この記事のために自分のリポジトリを見直したら、 .gitignore に .env が入っていませんでした。幸い .env ファイル自体は置いていなかったので、漏れてはいません。とはいえ、いつ事故が起きてもおかしくない状態でした。気づいたので、すぐに1行足しました。

3. 公開前にAIに確認してもらう

最後は人間の目で…と言いたいところですが、私はコードを全部は読めません。そこで、作業したのとは別の会話を開いて、AIにこう頼んでいます。

このリポジトリの中に、APIキー・パスワード・トークンが
直接書かれている場所がないか確認してください。
.gitignore に入れるべきファイルがあれば教えてください。

ただし、AIの答えをうのみにはしません。指摘された場所は自分で開いて、本当にそうなっているかを確かめます。Claude Codeを使っている場合は、設定で .env を読ませないようにもできるので、気になる方は調べてみてください。

もし漏れてしまったら

コードから鍵を消すだけでは足りません。Git(変更の履歴を残す仕組み)は過去の記録をすべて取っておくので、消したつもりでも履歴から見えてしまいます。

まず、そのサービスの管理画面で漏れた鍵を無効にして、新しい鍵を作り直してください。これをローテーションと呼びます。慌てて履歴を消そうとするより、先に鍵を止めるほうが大事です。

おわりに

完璧なセキュリティが何なのか、私にもまだわかりません。ただ、鍵を分ける、載せないリストに入れる、公開前に確認する。この3つなら今日からできます。

AIのおかげで、作れるものは一気に増えました。そのぶん、最後に確認するのは人間の役目なんだと思っています。

お知らせ

金沢シーサイドFMの番組「社長!あなたの会社教えてください。」に
出演させていただくことになりました。
2026年11月20日ごろ放送予定です。
HP:https://kanazawa-seasidefm.co.jp/
番組(spotify):https://open.spotify.com/show/2vgzg9tW45iW4jZnZAnaRR

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?