本文へスキップ
Estontinc

公開日 5 分で読めます

アプリのAPIキーを守る方法と、漏えいしたときの対処法

GitHubがLovable、Supabase、Pydanticのキーを検出できるようになりました。APIキーをコードに埋め込む危険性、漏えい時の対処、シークレットをコードから遠ざけるチェックリストをまとめます。

開いたガラスの金庫に収められたガラスの鍵。アプリのAPIキーを守る方法のイメージ

AIアプリビルダーやSupabaseのようなバックエンドサービスによって、アプリはかつてない速さで作られるようになりました。だからこそ、APIキーを守る方法を知ることが欠かせません。2026年10月5日、GitHubはLovable、Supabase、Pydanticのキーに対応したシークレットスキャンの検出を追加しました。有効なセーフティネットですが、最も強い対策は、そもそもシークレットをコードに含めないことです。

本ガイドでは、コードに埋め込まれたキーが危険な理由、GitHubが新たに検出するもの、キーが漏えいした直後に行うべきこと、そしてシークレットをコードから遠ざけるためのチェックリストを紹介します。

APIキーをコードに埋め込むリスク

GitHubのドキュメントによると、APIキーやパスワードなどの認証情報がハードコードされたシークレットとしてリポジトリにコミットされると、不正アクセスの標的になります。キーを手に入れた人は、アプリになりすましてデータを読み取ったり、メッセージを送ったり、有料サービスの利用料を発生させたりできます。

GitHubは、認証情報が複数のリポジトリに無秩序に広がる「シークレットスプロール」についても説明しています。キーの保管場所が増えるほど、誰が使えるのかを把握しにくくなり、差し替えにも時間がかかります。

GitHubのシークレットスキャンが新たに検出するもの

GitHubのシークレットスキャンが新たに検出するシークレット:Lovable Labsのlovable_api_key、Pydanticのlogfire_tokenとpydantic_ai_gateway_api_key、Supabaseの2種類のアクセストークン

10月5日の更新で、次のシークレットが自動検出の対象に加わりました。

  • Lovable Labs: lovable_api_key。Lovableはシークレットスキャンのパートナープログラムにも参加しました。
  • Pydantic Services: logfire_token、pydantic_ai_gateway_api_key。
  • Supabase: supabase_oauth_access_token、supabase_scoped_personal_access_token。

公開リポジトリで見つかったパートナーのシークレットは、発行元の企業に自動で報告され、悪用される前に失効や差し替えができるようになっています。その他のシークレットは、公開・非公開を問わずリポジトリで見つかるとアラートが作成されます。シークレットスキャンは公開リポジトリでは無料で、組織が所有する非公開リポジトリではGitHub Secret Protectionで利用できます。

APIキーが漏えいしたときの対処

APIキーが漏えいしたときの対処:すぐにキーを差し替える、使用状況を確認する、コードから削除する、プッシュ保護を有効にする
  1. すぐにキーを差し替える: GitHubは、不正アクセスを防ぐため、影響を受けた認証情報をただちにローテーションするよう推奨しています。
  2. 使用状況を確認する: サービス提供元のログで見覚えのない操作がないか確認します。これはGitHubの案内ではなく、私たちの推奨です。
  3. コードから削除する: 新しいキーは環境変数またはシークレットマネージャーに保管します。Git履歴の書き換えは必須ではなく、GitHubはキーを失効させた後なら時間がかかるうえ多くの場合不要だとしています。
  4. 次の漏えいを防ぐ: プッシュ保護を有効にし、同じミスをリポジトリに届く前に止めます。

プッシュ保護:シークレットをプッシュ前に止める

シークレットスキャンは漏えいを事後に見つけます。プッシュ保護はそれより前に働き、シークレットを含むプッシュをブロックして理由を表示するため、開発者は削除してから再度プッシュできます。初期設定では無効で、リポジトリ管理者、組織オーナー、セキュリティマネージャー、エンタープライズオーナーが有効にできます。

コントリビューターは、テスト用の値や誤検知といった理由を示してブロックを回避できます。その場合、GitHubはアラートを作成し、リポジトリを監視している人に通知するため、回避の記録は残ります。

APIキーのセキュリティチェックリスト

APIキーのセキュリティチェックリスト:ソースコードにキーを置かない、環境ごとに別のキー、シークレットスキャン有効、プッシュ保護有効、キーごとの最小権限、キーのローテーション計画

私たちのプロジェクト経験から、次の習慣で多くの漏えいを防げます。

  1. ソースコードにキーを置かない: モバイルやフロントエンドのプロジェクトでも、環境変数やシークレットマネージャーを使います。
  2. 環境ごとに別のキーを使う: 開発、ステージング、本番で同じキーを共有しないようにします。
  3. すべてのリポジトリでシークレットスキャンを有効にする。
  4. プッシュ保護を有効にする: ミスがPCの外に出る前に止められます。
  5. キーごとに最小権限にする: 必要な権限だけを与え、提供元がスコープ付きトークンを用意していればそちらを使います。
  6. ローテーションの計画を持つ: 各キーを誰が差し替えられ、どれくらい時間がかかるかを把握しておきます。

AIサービスと連携するアプリでも、そのキーには同じルールが当てはまります。AIでレガシーソフトウェアを自動化する方法の記事では、重要な操作に人の承認を残す考え方も紹介しています。

ビジネスへの影響

AIアプリビルダーにより、動くプロダクトを数日で公開できるようになりました。そのスピードは価値がありますが、キーがコードに残ったままのプロトタイプが実際のユーザーに届くケースも増えています。検出ツールは役立つものの、事後の対応です。テストやバックアップと同じく、シークレットの管理もプロトタイプを本番に移す際の必須項目として扱うことをおすすめします。

手早く作ったプロトタイプから始めた場合は、MVP開発ガイドで、拡大前に強化すべき点を解説しています。

Estontincのサポート

Estontincはマラン(インドネシア)のソフトウェア開発会社で、6年以上にわたり100件以上のプロジェクトと50社以上のクライアントを支援してきました。Web開発サービスでは、AIで作られたプロトタイプを含むWebアプリの監査と強化を行います。クラウド・DevOpsチームは、シークレットマネージャー、シークレットスキャン、プッシュ保護をパイプラインに導入します。

NDAの締結に対応し、監視とバックアップを含む保守サービスで、公開後もセキュリティを維持します。お問い合わせページからアプリについてお聞かせください。24時間以内にご返信します。

よくある質問

アプリのAPIキーはどう守ればよいですか?

環境変数やシークレットマネージャーを使ってキーをソースコードから遠ざけ、環境ごとに別のキーを使い、各キーには必要な権限だけを与えます。シークレットスキャンで漏えいを検出し、プッシュ保護でプッシュ前にブロックし、キーのローテーション計画も用意しましょう。

APIキーが漏えいしたらどうすればよいですか?

GitHubの推奨どおり、影響を受けた認証情報をただちにローテーションし、漏えいしたキーを使えないようにします。そのうえで提供元のログで不審な操作を確認し、新しいキーをシークレットマネージャーに移し、プッシュ保護を有効にします。キー失効後のGit履歴の書き換えは多くの場合不要です。

GitHubのシークレットスキャンは何を検出しますか?

すべてのブランチのGit履歴全体をスキャンし、APIキー、パスワード、トークンなどのハードコードされた認証情報を検出します。2026年10月5日には、Lovable、Supabase、Pydanticのキーの検出が追加されました。公開リポジトリのパートナーシークレットは、失効できるよう発行元に報告されます。

GitHubのプッシュ保護とは何ですか?

シークレットを含むプッシュをリポジトリに届く前にブロックし、理由を表示するシークレットスキャンの機能です。初期設定では無効で、リポジトリ管理者や組織オーナーが有効にできます。ブロックを回避するには理由の入力が必要で、アラートが作成されます。

出典

この記事の事実と数値は、以下の公式情報に基づいています。

  • App security
  • Web development
  • Custom software
  • AI
すべての記事を見る

アイデアを、動くソフトウェアに。

つくりたいものをお聞かせください。明確な計画、スケジュール、見積もりを無料でご提案します。

  • 無料相談
  • 24 時間以内に返信
  • NDA 締結可