Mistake #57 : The Secret Leak

GitHubは
インスタグラムだ

あなたは、クレジットカードの裏表を撮影して、
Instagramに投稿しますか?
「APIキーをコミットする」とは、まさにそういうことです。

🔑 公開処刑診断
  • コードの中に `AWS_ACCESS_KEY` を直接書いている
  • 「Privateリポジトリだから安全だ」と思っている
  • APIキーを含んだコミットを、後から `git rm` で消したつもりになっている
  • 環境変数(.env)を管理するのが面倒だと感じている
⚠️ CRITICAL:3分以内にクラウド破産します。
世界中のボットが、あなたの公開したキーを見つけ出し、仮想通貨マイニングを始めます。

01. 3分後の不正利用

const s3 = new AWS.S3({ accessKeyId: "AKIAIOSFODNN7EXAMPLE", secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" });

AWSのアクセスキーを含んだコードをGitHubにプッシュしてしまったとします。
攻撃者がそれを見つけるまで、何日かかると思いますか?
答えは「数秒〜数分」です。
世界中を巡回するボット網がキーを検知し、自動的に地球の裏側で100台の最高級サーバーを起動させます。
あなたがミスに気づいてキーを無効化する頃には、既に数百万円の請求が確定しています。

ソースコードは「公開情報」である。
たとえ非公開設定であっても。

02. 履歴からは消せない

「間違えてアップしちゃった! 消して再コミットすればいいや」
これは最悪の間違いです。
Gitは「履歴」を管理するツールです。最新のファイルから消しても、過去のコミット履歴にはキーが永遠に残ります。
一度でもGitに乗せてしまった情報は、すべて「漏洩した」とみなして、キー自体を再発行(ローテーション)する以外に助かる道はありません。

03. 環境変数を徹底する

機密情報はコードから分離し、「環境変数(.env)」や「AWS Secrets Manager」で管理するのが鉄則です。
そして、人間の注意力をアテにせず、`git-secrets` などのツールで「コミット時に自動チェック」する仕組みを入れること。
「うっかり」が「破産」に直結する時代。システムで自分を守りましょう。

執筆:DevSecOpsチーム

開発スピードを落とさずに、セキュリティを自動化するプロフェッショナル。
CI/CDパイプラインへの自動スキャン導入支援実績多数。