> For the complete documentation index, see [llms.txt](https://livlog-llc.gitbook.io/engineering-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://livlog-llc.gitbook.io/engineering-handbook/riburoguno/5-development-operations/security-and-ai-usage.md).

# セキュリティとAI利用時の情報管理

## 基本方針

リブログでは、AIを開発支援に活用する一方で、機密情報、個人情報、認証情報を不用意に外部へ渡さないことを重視します。

AIは、調査、実装、テスト、レビュー、文書化を支援する道具です。出力の正しさ、安全性、公開可否についての最終判断は人間が行います。

## 公開リポジトリに含めてよいもの

* ソースコード
* サンプル設定
* ダミー値だけを記載した `.env.example`
* 個人や実在組織と結びつかないダミーデータ
* 公開済みのAPI仕様
* 公開サイトのURL
* 一般化された設計・運用方針

公開済みの情報でも、別の情報と組み合わせることで機密性が高まらないかを確認します。公開範囲に迷う場合は、含めない判断を優先します。

## 公開リポジトリに含めてはいけないもの

* APIキー
* パスワード
* 秘密鍵
* 本番DBの接続情報
* 個人情報
* 非公開の業務データ
* 契約情報
* 顧客・取引先情報
* サーバーIPや内部構成の詳細
* トークンや認証Cookie
* 管理画面や内部サービスへの非公開アクセス情報

値を伏せただけで構成が推測できる情報もあります。外部公開する文書では、技術的な判断に必要な概要だけを記載します。

## AIに渡してよい情報

* 一般化した仕様
* 個人情報、トークン、内部URLなどを除去したエラーログ
* 公開済みのソースコード
* ダミーデータ
* 一般化できる技術的な課題
* 再現可能な最小コード

AIへ情報を渡す前に、入力内容だけでなく、添付ファイル、コマンド出力、スクリーンショットに秘密情報が含まれていないかを確認します。

## AIに渡してはいけない情報

* APIキー
* パスワード
* 秘密鍵
* 本番DBの接続情報
* 個人を特定できるデータ
* 顧客・取引先情報
* 非公開の契約情報
* 社外秘資料
* 認証済みセッション情報
* 秘密情報を含むログ、設定ファイル、スクリーンショット

問題の再現に本番データが必要に見える場合でも、そのまま渡さず、構造を保ったダミーデータや最小コードへ置き換えます。

## GitHubでのSecrets管理

* 認証情報はGitHub Secretsや実行環境の環境変数で管理する
* privateリポジトリであっても、秘密情報を直接コミットしない
* `.env` はコミットせず、必要に応じて `.gitignore` で除外する
* `.env.example` には項目名とダミー値だけを書く
* Actionsのログや成果物に秘密情報を出力しない
* Secretsへアクセスできるワークフローと権限を必要最小限にする
* 誤って秘密情報をコミットした場合は、履歴からの削除だけで終わらせず、該当するキーやトークンを失効させて再発行する

## AI利用時の注意点

* AIの出力をそのまま本番へ反映しない
* 変更対象、変更範囲、変更してはいけない箇所を明確に指示する
* README、設計文書、テスト、既存実装を確認させてから修正させる
* AIが生成した依存関係、コマンド、URL、仕様を人間が確認する
* セキュリティ、認証、認可、個人情報に関わる変更は人間が必ずレビューする
* テストと差分レビューを行い、意図しない削除や公開範囲の変更がないか確認する
* 外部公開前に、ソースコード、履歴、ログ、生成物へ機密情報が含まれていないか確認する

## 誤公開や漏えいが疑われる場合

1. 公開や自動処理を止め、影響範囲を確認する
2. キー、トークン、パスワード、セッションを失効させる
3. 必要な認証情報を再発行し、利用箇所を更新する
4. リポジトリの履歴、Actionsログ、成果物、公開サイトを確認する
5. 原因と対応を記録し、再発防止のチェックや仕組みを追加する

履歴の書き換えだけでは、すでに取得された秘密情報を無効化できません。認証情報の失効と再発行を優先します。
