セキュリティ
このページでは、One Server が現在実際に運用しているセキュリティ対策をありのままに説明します。コードと設定で確認できることだけを記載し、まだないものはないと記載しています。
最終更新 2026-10-05
1. 認証の状況
当社は現在、SOC 2 報告書および ISO/IEC 27001 認証を保有していません。 このページのいかなる内容も、外部の監査人による検証を受けたことを意味しません。
セキュリティに関する質問票への回答や契約の確認が必要な場合は、[email protected] までご連絡ください。
2. インフラとデータの所在
- サービスは Google Cloud のソウルリージョン(asia-northeast3)で運用しており、利用者がアップロードしたデータとそのバックアップは韓国国内に保存されます。例外(決済、AI エージェント)は個人情報処理方針の6項に記載しています。
- 現在は1台のサーバーで運用しています。 サーバーの冗長化と自動フェイルオーバーはまだないため、そのサーバーが停止すると復旧までサービスも停止します。
- 現在の状態は /status で確認できます。
3. プロジェクト間の分離
- プロジェクトごとにデータベースのロールと専用のデータベースログインがあります。API はプロジェクトの接続をそのプロジェクト専用のログインで開くため、あるプロジェクトの SQL が別のプロジェクトのロールに切り替わることはできません。
- 発行されるトークンは1つのプロジェクトでのみ有効です。別のプロジェクトの鍵で正しく署名されたトークンも拒否されます。
- 顧客のロールが届くプラットフォームのテーブルには、すべて行レベルセキュリティ(RLS)がかかっています。
- この分離は、コードが変わるたびに自動テストで改めて確認されます。
4. 暗号化
- 通信経路 — コンソールは HTTPS でのみ提供し、HTTP のリクエストを HTTPS に転送して HSTS を送ります。デプロイされたサイトとプロジェクト API は HTTPS で提供しますが、HTTP のリクエストを自動では転送しません。データベースへの直接接続には TLS が必要です。
- 保存時 — サーバーのディスクとバックアップバケットは、Google Cloud の標準の保存時暗号化で暗号化されます。顧客管理の鍵(CMEK)にはまだ対応していません。
- 秘密の値 — OAuth クライアントシークレット、二要素認証のシークレット、アップロードされた証明書の秘密鍵などは、プロジェクトごとに導出した鍵で AES-256-GCM により封印してから保存します。データベースのダンプだけでは開けません。
- パスワードとトークン — パスワードは scrypt で一方向に暗号化し、API トークンと招待リンクはハッシュのみを保存します。
5. アカウントのセキュリティ
- コンソールでは認証アプリ(TOTP)による二要素認証を有効にでき、組織はすべてのメンバーにそれを求めることができます。リカバリーコードはハッシュのみを保存し、一度使ったコードは再び受け付けません。
- 登録時とパスワード変更時に、漏えいしたパスワードでないかを確認します。パスワードのハッシュの先頭5文字だけを送り、残りはサーバー内で照合します。
- 同じアカウントへのログインが続けて失敗すると、しばらくブロックします。
- 組織内の権限は owner、admin、developer、billing、viewer の5つのロールに分かれています。
6. 記録
- 組織の重要な変更は監査ログに記録されます。データベースのトリガーがこの記録の変更と削除を拒否し、プラットフォーム自身のサービス権限も例外ではありません。3年間保管した後に破棄します。
- コンソールで個人情報(利用者一覧、テーブル、SQL、バックアップのダウンロード)にアクセスするたびにアクセス記録を残します。2年間保管し、組織が自ら閲覧してダウンロードできます。
7. 運用者のアクセスと変更管理
- 運用者のサーバーへの接続は、Google Cloud IAP トンネルと Google アカウント認証(OS Login)を経由するよう構成しています。
- コードは、自動テストに合格したコミットのみを GitHub Actions がデプロイします。Google Cloud には保存された鍵を使わず、このリポジトリにのみ許可されたワークロード ID 連携で認証します。
- サーバーの設定値と秘密は、サーバー内のアクセスが制限されたファイルにのみ置き、コマンドラインやリポジトリには置きません。
- データベースのイメージは特定のバージョンに固定し、セキュリティパッチは決められた手順で適用します。
8. バックアップと復旧
- 毎晩、データベースとファイルを別のバックアップバケット(ソウル)にバックアップします。データベースの変更記録(WAL)は5分ごとにバケットへコピーし、ベースバックアップは毎週、サーバーディスクのスナップショットは毎日取得して7つを保管します。
- バックアップバケットは、削除または上書きされたバックアップも一定期間保管します(バージョン管理、ソフト削除)。
- 毎週、最新のバックアップを隔離された一時サーバーに実際に復元するリハーサルが自動で実行され、失敗すると運用者に通知されます。
- 有料プランのプロジェクトは、直近7日以内の時点に復元できます。
- サーバー全体をバックアップだけから作り直す復旧はまだ時間を計測していないため、目標復旧時間(RTO)はお約束していません。
9. 監視と障害対応
- データベース、バックアップ、復元リハーサル、ディスク、証明書、エラー率などの項目を1分ごとに検査し、問題が確認されると運用者にメールと Webhook で通知します。
- サーバーの外にあるサービスが1分ごとにサーバーからの信号を受け取り、信号が途絶えるとそちらから通知します。サーバーが丸ごと停止しても気づけるようにするためです。
- 個人情報の漏えいを知った場合は、個人情報保護法に従って該当する利用者に通知し、届け出ます。
10. 委託と国外移転
個人情報の処理を委託している事業者と国外移転は、個人情報処理方針の5項と6項にすべて記載しています。
11. 脆弱性の報告
セキュリティ上の脆弱性を見つけた場合は、[email protected] までお知らせください。確認しだい返信します。機械で読める連絡先は /.well-known/security.txt にあります。