【Claude Code 失敗談 #12】APIキーをそのまま書かせてGitHubに上げてしまった話

社員ブログ

※Claude Codeを使用して記事を作成しています。

シリーズ:Claude Codeを使ったAndroidアプリ開発 失敗談

  • #12:APIキーをそのまま書かせてGitHubに上げてしまった話 ← 今回

はじめに

セキュリティに関わる失敗です。
Claude Codeに「APIキーを使った実装をして」とお願いすると、デフォルトではコードの中にAPIキーを直書きします。
それをそのままGitHubに上げてしまいました。

やらかしたこと

Google Maps APIキーを使った実装をClaude Codeにお願いしました。

Google Maps APIキーは「AIzaSyXXXXXXXXXXXXXXXXXXXX」です。
地図画面を実装してください。

Claude Codeは AndroidManifest.xml にAPIキーを直書きしたコードを生成し、私はそのままコミット・プッシュしました。

数日後、見知らぬ国のIPアドレスからのGoogle Maps API使用料が請求されていました。
GitHubのpublicリポジトリにAPIキーが丸見えで、ボットに拾われて悪用されていたのです。

即時対応

  1. Google Cloud ConsoleでAPIキーを即座に無効化
  2. 新しいAPIキーを発行
  3. GitHubのコミット履歴からもAPIキーを削除
    (git filter-branch または BFG Repo Cleaner)

正しいAPIキーの管理方法

Claude Codeに最初から安全な方法で実装してもらうべきでした。

Google Maps APIキーを安全に管理する実装をしてください。

・APIキーは local.properties に書く
・local.properties は .gitignore に追加してGitに含めない
・buildConfigFieldを経由してコードからアクセスする

APIキーの値は「ここに置いてください」という形でコメントを書いてもらえれば十分です。
実際の値はあとで自分で入れます。

絶対にやってはいけないこと

やってはいけないこと理由
APIキーを直接コードに書くGitHubに上げると世界中に公開される
APIキーを指示文に含めてそのまま実装させるコードに直書きされる
.gitignore を設定せずにpushする機密ファイルがすべて公開される

.gitignoreの確認をClaude Codeに依頼する

Androidプロジェクトの .gitignore を確認して、
以下のファイルが含まれているか確認して、なければ追加してください。

・local.properties(APIキーを含むファイル)
・*.jks(署名ファイル)
・keystore.properties(署名情報)
・google-services.json(Firebaseの設定ファイル)※publicリポジトリの場合

まとめ

APIキーの漏洩は金銭的な損害に直結します。
Claude Codeへの指示でAPIキーを伝える必要があるときは、実際の値をコードに含めない実装を最初からお願いしましょう。

次回:【Claude Code 失敗談 #13】FirebaseをClaude Codeに設定させたらテストモードのままリリースした話

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