hoshu

セキュリティとデータの扱い

hoshu は保険契約者の個人情報と募集記録を預かるシステムです。アプリ側の実装に頼らず、データベース側で分離と証跡を強制する設計にしています。

最終更新: 2026年9月9日

テナント分離(行レベルセキュリティ)

  • すべてのテーブルに代理店ID(agency_id)を持ち、PostgreSQL の行レベルセキュリティ(RLS)で「ログイン中のユーザーが所属する代理店の行」以外は参照・更新できないようにしています。
  • アプリケーションはテーブル所有者ではない接続ロールでデータベースに接続します。RLS を回避する権限を持たないため、アプリのバグや SQL の書き漏れがあっても他社のデータは返りません。
  • 同一データベース内で複数の代理店(テナント)を扱う場合も、分離はデータベース側で強制されます。

募集記録の追記型管理と監査ログ

  • 意向把握・選別・推奨理由・説明・権限明示・合致確認などの募集記録は追記型です。訂正は新しい行を追加して旧行を参照する方式で、UPDATE・DELETE はデータベースのポリシーで禁止しています。
  • 意向不明確のまま推奨できない、自賠責を比較対象にできない、といった業法上のゲートはデータベースのトリガで強制し、アプリ画面を経由しない操作でも通りません。
  • 全記録テーブルにデータベーストリガによる監査ログを付与し、誰が・いつ・何を・どう変えたかを記録します。監査ログはアプリの権限では書き換えられません。
  • 個人情報を含む CSV 出力は、実行者・対象・件数・日時を出力履歴として記録します。

権限ロール

代理店ごとに次のロールをメンバー単位で割り当てます。ロールはデータベースのポリシーとトリガの両方で判定します。

  • 管理者: 代理店の設定、メンバー管理、保険会社・商品・社内規則の登録、取込・出力。
  • 検証者: 募集記録の検証・モニタリング。自分が担当した案件は検証できません(自己検証の禁止)。
  • 募集人: 顧客・契約・活動・案件の登録と募集記録の作成。募集人登録がない者は担当になれません。
  • 紹介者: 紹介案件の登録のみ。募集行為に関わる記録は作成できません。
  • 保険会社監査: 参照専用。委託元の保険会社による点検用に、必要な範囲だけを閲覧できます。

認証

  • クラウド版のログインはメールアドレス+パスワード、またはメールに送るワンタイムリンク(マジックリンク)です。認証基盤は Supabase Auth を利用します。
  • 認証済みでも代理店のメンバーとして紐づいていないユーザーは、管理者が紐づけるまでデータにアクセスできません。
  • セッションは HttpOnly Cookie で保持し、未ログインのリクエストはサーバー側でログイン画面へ転送します。
  • SSO(SAML / OIDC)は Cloud 松プランで提供予定です。

通信と保存の暗号化

  • ブラウザとサーバー間、サーバーとデータベース間の通信は TLS で暗号化します。
  • クラウド版のデータベース・添付ファイル・バックアップは保存時に暗号化されます。
  • セルフホスト版では、リバースプロキシでの TLS 終端とディスク暗号化を利用者の環境で設定してください。README に構成例を記載しています。

添付ファイルの保存先

  • 録音・見積・比較表などの添付ファイルは、データベースとは別のストレージに保存し、データベースには保存先のパスとメタデータのみを持ちます。
  • クラウド版は国内リージョン(東京)のオブジェクトストレージに保存します。ファイルは代理店ごとのフォルダに分かれ、ダウンロードはログイン中のユーザーが所属する代理店の案件に紐づくものに限られます。
  • セルフホスト版は既定でサーバーのローカルディスク(UPLOAD_DIR)に保存します。Docker Compose では永続ボリュームに割り当てています。

バックアップと保管場所

  • クラウド版は日次でデータベースと添付ファイルのバックアップを取得し、国内リージョンに保管します。ポイントインタイム復旧は Cloud 竹以上で提供します。
  • データは日本国内リージョン(東京)に保管し、国外へ移転しません。
  • 契約終了後は所定の猶予期間(原則30日)を経てデータを削除します。削除前に CSV 出力でデータを取り出せます。

脆弱性への対応

  • ソースコードは AGPL-3.0 で公開しており、第三者による検証が可能です。
  • 脆弱性を発見された場合は info@sc-consulting.co.jp までご連絡ください。公開前に修正の機会をいただけると助かります。
  • 依存パッケージの脆弱性は定期的に確認し、クラウド版は自動更新で反映します。

関連文書