セキュリティ基本

絶対にやること

API鍵・パスワード・トークンは絶対にGitにコミットしない

APIキーとは

外部サービス(GitHub, OpenAI等)にアクセスするための合言葉。パスワードと同じ扱い。

種類用途
APIキーsk-abc123...サービスへのアクセス
トークンghp_xxx...GitHub認証
SSH鍵id_ed25519サーバー認証

.gitignore(Gitに含めないファイル)

# .gitignore に書くべきもの
.env
.env.local
*.key
*.pem
secrets.*
credentials.json
node_modules/
リポジトリ作成時に最初に用意する。後から追加しても、既にコミット済みのファイルは対象外。

環境変数で管理(推奨パターン)

コードには鍵を書かず、環境変数から読み込む:
# .env(Gitにコミットしない!)
API_KEY=sk-your-key-here
DATABASE_URL=postgres://...

# Pythonでの読み込み
import os
api_key = os.environ["API_KEY"]
.env.example はコミットOK(値は空):
# .env.example(コミットする)
API_KEY=
DATABASE_URL=

間違えてコミットしてしまったら

1. すぐにAPIキーを無効化(サービス側で再生成)
2. Git履歴から削除:
git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch .env' \
  --prune-empty --tag-name-filter cat -- --all
一度GitHubにpushすると、他人がコピー済みの可能性がある。必ずキーを再生成すること。

GitHubのシークレットスキャン

GitHubは自動でコミット内容をスキャンし、APIキーの漏洩を検知する。
警告が出たら即対応。
CLI: gh api repos/OWNER/REPO/secret-scanning/alerts で確認可能
← ガイド一覧に戻る