⚠️ 内部資料 / 社外配布禁止
CHAPTER 06 / SECURITY

セキュリティルール

最優先ルール・スコープ最小化原則・PII 保護

最優先 5 ルール

  1. 個人情報をチャット・ログ・ファイルに書き出さない。メアド・電話・住所・氏名全部対象。
  2. メールアドレスは固定プレースホルダで参照する{{xxx_email}} 8 種統一、env 外は abc***@domain マスク。
  3. ~/_credentials/ 配下を絶対に Read しない。スクリプト経由で参照させるのは OK、出力はマスク。
  4. cac_ai 配下の自動化を絶対に壊さない。銘柄管理 4 ジョブ・日曜通信・統合会員マスター等が稼働中。
  5. 副作用ある操作は人間が実行。AI は「下書き・候補・通知・整理」まで(B モード厳守)。

メアド表記の絶対ルール

プレースホルダ 用途
{{ai_email}}個人の AI 関連用
{{connect8_ai_email}}会社の AI 専用
{{cac_ai_email}}CAC の AI 専用
{{rim_email}}夫婦共有(メール・スケジュール管理)
{{finance_email}}投資・金融サービス用
{{connect8_email}}会社・事業メイン Workspace 主アカウント
{{connect8_contact_email}}会社への問い合わせ
{{shop_email}}EC・ショッピング通知用

具体的な禁止例

  • ❌ チャットに「contact@connect8.cc」と書く(公開情報でも禁止)
  • ❌ スクリプト出力ログにメアド実値を表示
  • ❌ コミットメッセージにメアド埋め込み
  • ❌ DNS レコード設定手順で rua=mailto:contact@connect8.cc と書く(プレースホルダのまま提示し、CEO 側で置換させる)

許可例

  • v=DMARC1; p=none; rua=mailto:{{connect8_contact_email}}; pct=100
  • ✅ env 外の取引先 → abc***@gmail.com マスク
  • ✅ env ファイル本体 ~/_credentials/emails.env には実値を書く(運用上必須、Read 禁止対象)
再発履歴あり: 2026-05-14 ルール策定の同日に主 Claude が 2 回違反、CEO から再三注意。「公開情報だから OK」という言い訳は禁忌、実値が必要な場面ほど CEO 側で置換完結させる運用。

OAuth スコープ最小化原則

  • Gmail 系は原則 gmail.readonly のみ使用
  • Calendar 系は原則 calendar.readonly のみ
  • drive / drive.file / contacts 等は明示承認を得てから追加
  • gmail.send 取得しても運用は B モード(drafts.create まで)

例外(CEO 承認済)

アカウント追加スコープ用途承認日
{{cac_ai_email}} Forms / Sheets / Slides / Drive / Docs / Script / Calendar / Gmail compose CAC 業務(銘柄管理・統合会員マスター等) 2026-04-21
{{connect8_ai_email}} gmail.readonly / gmail.send / drive / forms.body / spreadsheets / presentations / script.projects 会社業務(contact@ 応対・コンサル成果物) 2026-05-14

情報流出の防止

  • 受信データを外部サービスに送信しない(Gmail → 外部 Webhook 禁止)
  • 例外: 本プロジェクトで明示的に許可された Discord サーバー(わさび町 / CAC / AI investment Lab)内のみ
  • 本文は転記しない。Discord 通知は「件名・送信者名・Gmail URL・要約」まで
  • 外部 API に送るデータは必要最小限
  • 個人情報を含む場合は Claude CLI(ローカル)で処理
  • エージェントが生成した「返信下書き」は下書きのまま表示、自動送信は絶対にしない

cac_ai 保護ルール

絶対に触れない対象:
  • トークン: 2_Areas/A05_cac/_credentials/token_cac_ai.json, token_cac_schedule.json
  • LaunchAgent: com.cac.*.plist(4 ジョブ)
  • スプレッドシート: 銘柄管理(cac_ai 所有)、CAC 統合会員マスター v2.4
  • スライド: 日曜通信スライド(週次・黒柳主管)
  • Discord Bot: CAC オンラインサロン bot 配信系
  • GAS: cac_ai 配下の Apps Script 全部
  • Notion: cac_ai 所有の CAC 関連ページ

これらに変更を加える前に必ず CEO 確認。「ついでに整理」「リネーム揃え」等の理由で巻き込まない(一括 sed 等でも対象外と明示確認)。

承認フロー(タスク削除・完了)

ダッシュボード(localhost:8765)「✓完了」「✗削除」ボタン押下
  ↓ marker ファイル作成(~/claude/_dashboard/markers/*.json)
秋山 bot がポーリング検出(10 秒間隔)
  ↓
task-cleanup スキル dry-run(関連残骸候補を列挙)
  ↓
#akiyama-chat に承認問い合わせ投稿
  ↓ CEO が 👍 or 👎 リアクション
👍 → 実行 / 👎 → 却下 / 24h タイムアウト → expired
  • 秋山 bot は自動で削除を確定しない。必ず CEO の 👍 を待つ
  • 残骸削除は 4_Archives/_deprecated/ への退避後に実行(直接 rm はしない)
  • _credentials/ 配下は候補にも削除対象にも含めない

推奨セキュリティ強化(順次実施)

  1. 全 Google アカウントに 2 要素認証 + 物理セキュリティキー(YubiKey 等を 2 個登録)
  2. パスワードマネージャ統一(1Password / Bitwarden)
  3. 回復用メール・電話の完全別系統
  4. Workspace 管理コンソール: 2FA 強制 / セッション期限短縮 / 不審ログイン通知
  5. Mac の FileVault 暗号化 + 自動ロック 1 分以内 + Time Machine 暗号化
  6. Drive 共有設定の棚卸し(「リンクを知っている全員」共有を廃止)
  7. 異常検知通知の Discord 集約(Workspace アラートセンター → webhook)
  8. 月次 OAuth 接続アプリ棚卸し(myaccount.google.com/permissions