Security

セキュリティ設計

PII分離・暗号化・RBAC・監査ログ

データ3層分離

機密度に応じた保管場所

高機密PII(個人情報)
Firestore
  • 氏名
  • 住所
  • 電話番号
  • メールアドレス
中機密画像データ
R2(暗号化)
  • 顧客アップロード写真
  • 処理済み画像
  • サムネイル
低機密業務データ
D1
  • 注文ステータス
  • 商品マスタ
  • ログ

認証・認可フロー


  ユーザー
     │
     ▼
  Firebase Auth ─────── 本人確認(認証情報を自社で持たない)
     │
     ▼
  Firestore ─────────── PII(住所・連絡先等)
     │
     ▼
  Cloudflare Workers ── 毎回認可チェック(条件付きアクセス)
     │
     ├─▶ D1 ─────────── 業務データ(非PII:注文・原本メタ等)
     │
     └─▶ R2 ─────────── 完全非公開(直接URL不可)
                

暗号化レイヤー

レイヤー方式管理
通信TLS 1.3(Cloudflare自動)Cloudflare
データベース(Firestore)AES-256 + エンベロープ暗号化Google Cloud
ストレージ(R2)Cloudflare管理暗号化 + アプリ暗号化Cloudflare + App
画像(アプリ層)AES-256-GCM(Cloud KMS鍵管理、90日ローテ)Application

Firestore Security Rules

セキュリティルール例
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    // 自分の組織のデータのみアクセス可能
    match /projects/{projectId} {
      allow read: if request.auth != null &&
        get(/databases/$(database)/documents/users/$(request.auth.uid))
          .data.orgId == resource.data.orgId;

      // 削除は管理者のみ
      allow delete: if request.auth != null &&
        get(/databases/$(database)/documents/users/$(request.auth.uid))
          .data.role == 'admin';
    }
  }
}

アプリバグでもDBが拒否

アプリにバグがあってもFirestore側で不正アクセスをブロック

宣言的で監査可能

ルールはコードとして記述、監査人に論理的に説明可能

権限変更は即時反映

ロール変更・退職処理が即座に反映

バイパス不可

Admin SDK以外ではルールを迂回できない

RBAC(ロールベースアクセス制御)

ロール注文作成注文閲覧PII閲覧画像DL管理機能
customer自分のみ自分のみ自分のみ
studio_staff事務所内事務所内事務所内
factory_operator全注文全注文
admin全注文全注文全注文

認証方式

一般顧客
Firebase Auth (Passwordless)
  • メールリンク認証(パスワード不要)
  • Google OAuth連携
  • SMS認証(オプション)
事務所・工場スタッフ
Firebase Auth + Custom Claims
  • 組織IDによるテナント分離
  • ロールベースの権限管理
  • 管理画面からの招待制

追加セキュリティ対策

WAF

Cloudflare WAF(OWASP Top10対応)

Rate Limiting

IPベース・ユーザーベースの制限

DDoS Protection

Cloudflare Unmetered DDoS保護

バックアップ

Firestore(7日)+ D1(30日)

監査ログ

全API操作のログ記録(7年保持)

脆弱性スキャン

Dependabotによる依存関係監視

コンプライアンス

項目対応状況
個人情報保護法対応済み(PII分離設計)
GDPR対応可能(データ削除API実装予定)
PCI DSSStripe/Paidy委託(Level 1準拠)
SOC 2 Type IICloudflare/Firebase/GCPが取得済み
ISO 27001インフラプロバイダが取得済み