APIキーを画面や原稿へ貼らない:秘密情報の置き場所を決める
開発用の認証情報を、コード・ログ・公開画面から分けて管理します。
APIキーを使う前に、保存場所だけでなく、誰が使い、漏れたら誰が止めるかを決めましょう。この記事では、秘密の値を載せずに、用途・権限・差し替え対象を把握できる管理台帳を作ります。
公式資料から分かること:秘密はライフサイクルで管理する
OWASPは秘密情報の作成・ローテーション・失効・期限を含む管理を説明し、必要最小限の権限と、不要になった、または漏えいの可能性がある秘密の失効を勧めています。公開箇所から文字を消すことと、その認証情報を無効化することは別の対応です。
ブラウザーへ渡すコードやHTMLに秘密を埋め込んでも、隠したことにはなりません。公開可能なキー・識別子もあるため、名称だけで判断せず、対象サービスの公式仕様で秘密か公開用かを確認します。
仕事の具体例:記事登録用キーを共有メモへ貼らない
架空のCMSへ下書きを登録する自動処理を考えます。必要なのが下書き作成なら、公開や削除まで許可する必要があるか見直します。開発と本番の認証情報を分け、秘密の保存には組織が承認した管理機能を使う案です。
環境変数を使う場合も、ブラウザー配信への混入やログ出力に注意が必要です。「環境変数だから安全」とは判断せず、実行環境とビルド時の扱いを確認してください。原稿やAIへの相談には、実値でなく「例示用の値」と明記した文字を使います。
コピーして使える秘密情報の管理台帳
管理名(秘密の値は記載しない):
サービス/公式管理手順URL/確認日:
用途/所有者/保守担当:
利用環境:開発/テスト/本番
必要な操作/付与した権限:
承認された保存先/参照権限を持つ人・処理:
利用している自動処理・接続:
差し替え手順/影響範囲/確認担当:
失効手順/緊急連絡先:
期限・見直し日/不要時の対応:
利用履歴の確認方法:
結果の確認ポイント
コード、配信するファイル、ログ、エラー表示、操作画像、共有メモに秘密が混入しない仕組みを確認します。調査時も、キー全体を画面へ出したり記事へ転記したりする必要はありません。台帳には保存先と手続きを記録し、実値は載せません。
漏えいの疑いがあれば直ちに管理担当者へ知らせ、公式手順で失効・差し替えと利用履歴の確認を進めます。新しいキーで必要な処理が動くことと、古いキーが無効になったことは別々に確認します。露出箇所の除去も必要ですが、証拠やログの扱いは対応担当者と調整し、自己判断で履歴を消さないでください。
今日試すこと
利用中の認証情報1つについて、値を見せずに用途・所有者・利用処理・失効手順を埋めてください。不明な項目があれば、管理担当者への確認事項にします。
参考資料
- OWASP|Secrets Management Cheat Sheet:秘密情報の権限・ライフサイクル・漏えい時の対応。