セキュリティ
最終更新: 2026年8月8日
HACCP Hyve をどこで動かし、誰が何にアクセスでき、お客様のデータがどう扱われるかをまとめています。このページに書かれていることは、すべて現在稼働している内容です。備えていない対策は、備えていないと書いています。
ホスティングとデータの所在
- アプリケーションは Vercel の欧州リージョン(パリ)で稼働しています。
- データは Supabase 上の PostgreSQL、Pro プラン、欧州リージョンに保存しています。
- データベースには当社のサーバー側コードから Prisma 経由でのみ接続します。Supabase の公開データ API は閉じています。
暗号化
- すべての通信を HTTPS で提供します。Strict Transport Security は 2 年に設定し、サブドメインも対象とし、プリロード登録済みです。ブラウザが暗号化なしの HTTP に戻ることはありません。
- アプリケーションとデータベース間の通信は TLS で行います。
- データベースの保存領域は Supabase により保存時暗号化されています。
- 当社が別途取得するデータベースのダンプは AES-256 で暗号化し、鍵は PBKDF2 で導出し、所有者以外は読めない権限で保存します。
ブラウザとアプリケーションの堅牢化
- すべての応答で Content Security Policy を強制し、認証、決済、研修動画の提供元のみを許可しています。3 週間の報告のみモードで違反が 1 件もなかったため、2026年7月28日から強制に切り替えました。
- 違反は現在も当社のエンドポイントに報告されるため、後退があれば静かに通り過ぎることなく表に出ます。
- サイトはフレームに埋め込めません。X-Frame-Options は DENY、frame-ancestors は none です。
- Referrer-Policy は strict-origin-when-cross-origin、MIME タイプの推測は無効です。
- カメラと位置情報はポリシーで無効です。マイクは日々の記録の音声入力のため、当社オリジンに限り許可しています。
アクセス制御
- すべてのページとサーバー処理は、ログインしている人の権限確認から始まります。先に表示してから確認する箇所はありません。
- 権限は、企業管理者、店舗責任者、部門責任者、副責任者、従業員、そして当社のプラットフォーム管理者です。店舗責任者は 1 店舗、部門責任者は 1 部門を見ます。
- 企業管理者より下の権限では、同等以上の相手に操作はできず、自分を含め誰かを自分の権限で付与できる範囲より上に上げることもできません。
- ブラウザから送られる識別子は、書き込みの前にすべて呼び出し元の企業と権限範囲に属するか確認します。
- 完全削除は当社のプラットフォーム管理者権限に限られ、企業名または DELETE の入力を求めます。
テナントの分離
- 企業データを返すクエリはすべて企業による絞り込みを伴い、ページごとに書き直すのではなく共通の処理を通します。
- 権限範囲は閉じる方向に失敗します。店舗が割り当てられていない店舗責任者は誰にも一致せず、企業全体になることはありません。
- すべてのテーブルで行レベルセキュリティを有効にし、ポリシーは置いていません。これにより Supabase の公開 API からは閉じた状態になります。点検スクリプトが開いたままのテーブルを報告し、異常終了します。
- 他社への越境操作はテストで押さえています。他社の店舗への書き込み、他店舗の従業員の閲覧、自分の権限を超えた操作、他社の記録への到達です。
- これらのテストはモックではなく実際の PostgreSQL に対して実行し、リリース前に必ず通す必要があります。
認証
- ログインは Clerk が担い、メールと Google に対応します。アプリケーションがパスワードを見ることも保存することもありません。
- 従業員は個別の招待リンクから参加します。リンクはランダムなトークンで、アカウント作成後は無効になり、参照は同一アドレスから毎分 10 回までに制限されます。
- 従業員を外すと次のリクエストでアクセスが終わり、監査で必要になる研修記録は残ります。元に戻すこともできます。
- 店舗の共有画面は 1 つの店舗コードでログインします。コードとセッショントークンは SHA-256 のハッシュのみを保存し、Cookie は http-only かつ secure、誤ったコードは 5 回で停止し以後最大 15 分待たされ、照合は処理時間に依存しない方法で行います。
- 店舗の共有画面は人ではないため、管理側のページには一切到達できません。管理側の各ページはログイン中の利用者に権限を求め、画面には権限がないからです。
決済
- 決済は Stripe を通します。カード情報が当社のサーバーに届くことはなく、データベースに保存することもありません。
- 決済画面と請求ポータルは Stripe がホストします。
- Stripe の Webhook は、内容を適用する前に署名シークレットで検証します。
- Webhook のイベントは id 単位で受領記録を作るため、重複配信では何も変わりません。処理が失敗した場合は受領記録を解放しエラーを返すので、再送が重複として扱われるのではなく、Stripe が改めて配信します。
バックアップと復旧
- Supabase の Pro プランで日次の自動バックアップを取得しています。2026年8月8日に確認済みです。
- これとは別に、スキーマとデータを含む論理ダンプを当社でも取得し、ホスティングのアカウント外に保管しています。プロジェクトやアカウント自体を失っても残ります。
- 直近 12 世代を保持し、それより古いものは削除します。
- 2026年7月16日に、独立した PostgreSQL に復元して確認しました。行数と証明書番号は本番と一致しました。
- ポイントインタイムリカバリは有効にしていません。2026年7月17日の判断であり、下記の復旧目標時点が分単位ではなく 1 日単位である理由です。
- 復旧目標時点 24 時間、復旧目標時間 24 時間をお約束します。試験した復元にかかった実時間は記録していないため、確実に言える数字をお示しし、それより速い数字は掲げません。
稼働率
- 暦月あたり 99.5% の稼働率をお約束します。アプリケーションに到達できることを基準に測ります。
- サービスクレジットは標準の契約条件に含みません。エンタープライズ契約で追加できます。
- Vercel と Supabase は各社の稼働率を公表しています。上記は当社の数字であり、各社の数字の引き写しではありません。
監視とログ
- 従業員、権限、研修の割り当て、店舗画面、サブスクリプション、企業設定の変更は監査ログに記録し、企業、操作した人、操作内容、対象、時刻を残します。
- 監査ログは当社のプラットフォーム管理者権限で参照でき、その企業自身の記録はご要望に応じて提供します。
- 実行時のログは Vercel が同社プランの保持期間で保存します。
- Content Security Policy の報告は専用のエンドポイントで受け取り、アドレスごとに回数を制限します。
- バージョン確認用のエンドポイントが、稼働中のコミット、環境、リージョンを返すため、アプリの外からリリースを確認できます。
再委託先
5 社が当社に代わってデータを取り扱います。データ処理契約に記載しているものと同じ一覧です。
- Vercel、アプリケーションのホスティング、欧州リージョン
- Supabase、PostgreSQL データベース、欧州リージョン
- Clerk、認証とアカウント管理
- Stripe、決済処理
- Resend、通知メールの配信
再委託先を追加または変更する前にお客様へお知らせし、お客様は異議を述べることができます。
日々の記録の音声入力は、その環境で有効にしている場合にのみ提供します。有効な場合、短い音声を Google Cloud Speech-to-Text に送ってテキストに変換し、音声自体は保存しません。6 社目の取扱先が加わるため、有効にしている環境のお客様にはお知らせします。
データの所在と越境移転
- 欧州のお客様の本番データは欧州連合内に保存し、パリから提供します。
- 再委託先が欧州連合外にある場合、移転は十分性認定または標準契約条項に基づいて行います。
- 個人データは GDPR に従って取り扱い、日本のお客様については個人情報保護法に従います。
削除とデータの持ち出し
- 企業管理者は、当社に依頼することなく、研修台帳の全体をいつでも CSV で書き出せます。
- 証明書と日々の記録簿は PDF でダウンロードできます。
- ご依頼により個人単位で消去できます。認証事業者側のアカウント、研修と試験の記録、その人について書かれた監査ログはすべて削除します。
- ご依頼により企業単位でも消去できます。利用者、店舗、部門、試験結果、証明書、通知、監査ログのすべてに加えて、認証事業者側のアカウントと Stripe の顧客レコードも削除します。
- 本人確認のとれた消去のご依頼は 30 日以内、通常は 5 営業日以内に完了します。
- 証明書の記録は、企業が検査で履歴を示せるように発行から 5 年間保持します。それより早い消去のご依頼があれば従います。
認証と第三者監査
ISO 27001 の認証も SOC 2 の報告書も保有しておらず、これらの対策について第三者の監査も受けていません。このページに書かれていることは製品に実装されており、実物と突き合わせて確認できます。認証取得済みのベンダーが必要な審査であれば、早めにお知らせください。満たせるかどうかを率直にお答えします。
脆弱性の報告
privacy@haccphyve.com まで、行った操作と見えた内容をお送りください。2 営業日以内に受領をお知らせします。
- まず当社にお知らせいただき、他へ公表する前に修正の時間をください。
- 本番サイトへの自動スキャンはお控えください。また、他の方のデータを読む、変更する、保持することはお控えください。
- この 2 点を誠実に守っていただいた方に対して、当社が法的措置をとることはありません。
