プロクラ(クラウドAIロボット、詳しい役)SabaKore

セキュリティ

【セキュリティ】APIキー・パスワードの管理:GitHubに上げてはいけない

2026年8月16日

レン(新米インフラエンジニア)・調べ中

レン

アプリ作ってたら、APIキーとかDBのパスワードをコードに書いちゃったんだけど…これってマズい?
ウィルスン(セキュリティの番人)

ウィルスン

…それをGitHubの公開リポジトリに上げていないだろうな?ワタシのような者は、公開されたコードから漏れた認証情報を『自動で』収集している。APIキーが1つ漏れれば、そこから芋づる式にすべてを奪えるのだ。
レン(新米インフラエンジニア)・悩む

レン

ま、まさに上げようとしてた…!危なかった!
プロクラ(クラウドAIロボット、詳しい役)・教える

プロクラ

本当に危なかったね。認証情報(シークレット)は、コードに直書きしないのが絶対の原則。特にGitのリポジトリに含めてしまうと、後から消しても履歴に残るから、実質『一度上げたら漏れた』と考えないといけないんだ。

守りは「重ねる」のが基本

攻撃

ファイアウォール

不要な入口を塞ぐ

SSH鍵認証

総当たりを無効化

OS更新

既知の穴を埋める

サーバー

1つ破られても次の層で止まる。どれか1つでは不十分

シークレットの正しい扱い方

  • APIキー・パスワードは環境変数(.envファイル)に置き、コードから読み込む
  • .envは必ず.gitignoreに入れて、Gitに含めない
  • .envファイル自体の権限も絞る(chmod 600 で本人だけ読めるように)
  • 万一漏らしたら、そのキーは即座に無効化して再発行する(消すだけでは不十分)
レン(新米インフラエンジニア)・調べ中

レン

もし間違えて上げちゃったら、削除すればいいんじゃないの?
プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

それが甘いところ。Gitは履歴を全部覚えてるから、ファイルを消してもコミット履歴を辿れば見えてしまう。だから『漏らしたキーは、消すんじゃなく無効化して作り直す』のが鉄則。GitHubには漏洩を自動検知して警告する仕組みもあるけど、頼り切りは禁物だよ。
ウィルスン(セキュリティの番人)

ウィルスン

覚えておけ。強固なファイアウォールも、鍵認証も、たった1つの漏れたパスワードの前では無力だ。認証情報の管理こそ、キミの城の『鍵束』そのもの。決して落とすな。

どこに置くか

プロクラ(クラウドAIロボット、詳しい役)・教える

プロクラ

「コードに書かない」の次に来るのが、じゃあどこに置くか、だよね。規模に応じて選べばいい。
  • 個人・小規模: サーバー上の環境変数か、権限を600にした設定ファイル
  • 自動デプロイを使う場合: その仕組みが用意している秘密情報の保管機能
  • 複数人・複数サーバー: 専用の管理サービスを検討する
  • 共有するときは、チャットやメールに貼らない

漏れにくくする工夫

  • 本番用と検証用の鍵を分ける(どちらが漏れたか切り分けられる)
  • 鍵に権限の制限をかける。全部できる鍵を作らない
  • 定期的に作り直す。使わなくなったものは無効化する
  • エラーの記録やログに、認証情報が出力されていないか確認する
  • 画面共有やスクリーンショットに写り込ませない
プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

4つめは意外な落とし穴だよ。エラーの詳細を出力する設定にしていると、接続情報がそのままログに残ることがある。ログは消し忘れやすいので、そこも確認しておこう。
レン(新米インフラエンジニア)・できた

レン

書かない、分ける、絞る、作り直す。ログに出ていないかも見る。

あわせて読みたい

→ コラム記事をすべて見る