PM1 Inc. は、国際的に認められた標準とベストプラクティスに基づき、安全・高品質・拡張性の高い Web/AI システムを設計・開発・運用します。本ページは、クライアントやパートナー、採用候補者にも公開する技術ポリシーです。


1. 基本方針(Principles)

  • クラウドネイティブ12-Factor App を原則とし、スケールと変更容易性を重視
  • セキュア・バイ・デザイン:OWASP ASVS/Top10 に沿った設計・実装・検証
  • 品質の見える化:ISO/IEC 25010 に基づき非機能要件を明確化
  • 継続的改善:ADR(Architecture Decision Record)で設計判断を記録し、継続的にアップデート
  • プライバシーファースト:個人情報保護法等の法令を遵守し、最小権限・最小収集を徹底

参照基準:12-Factor App / OWASP ASVS & Top 10 / ISO/IEC 25010 / DevSecOps プラクティス


2. アーキテクチャ標準

  • アプリ構成:Next.js(SSR/SSG) + Node.js API(REST/GraphQL)
  • データストア:PostgreSQL(RDB) / Redis(キャッシュ・セッション) / オブジェクトストレージ
  • 認証認可:Cookie セッション(HttpOnly, Secure, SameSite=Lax)+ RBAC(Role-Based)
  • 外部連携:認証(SSO/OIDC/MFA 対応可)、決済、メール/SMS、監視基盤等は信頼性の高い SaaS を優先活用
  • 可観測性:構造化ログ + トレース + メトリクス(例:OpenTelemetry 互換)

設計判断は ADR に記録(背景・選定理由・トレードオフ・影響)


3. セキュリティ標準

3.1 認証/セッション

  • Cookie:HttpOnly / Secure / SameSite=Lax を必須
  • CSRF:SameSite + CSRF トークンの二段構え
  • パスワード:bcrypt/argon2 ハッシュ(平文保存禁止、適切な cost)
  • 重要操作:再認証または MFA、デバイス確認を推奨
  • 端末管理:複数端末セッションはサーバー側ストア(DB/Redis)で個別失効可能に

3.2 入力・通信・保管

  • 入力検証:サーバーサイド必須(型/スキーマ検証)
  • XSS:出力エスケープ + CSP(Content-Security-Policy)
  • SQLi:ORM/パラメータ化クエリを徹底
  • TLS:常時 HTTPS、最新推奨設定
  • 機微情報:保管時暗号化、転送時 TLS、画面/ログに出さない

3.3 運用・監査

  • 権限は最小権限(PoLP)、秘密情報は KMS/Secret 管理
  • 監査ログ:ログイン/権限変更/重要操作を記録(改ざん耐性を考慮)
  • 脆弱性対応:依存の定期スキャン、重大 CVE は優先修正
  • 定期レビュー:OWASP Top 10 観点のレビューを四半期ごとに実施

4. 品質・SLO(ISO/IEC 25010 対応の要約)

  • 性能:主要 API p95 応答 ≤ 200ms(通常負荷時)
  • 信頼性/可用性:サービス稼働率 99.9% 以上/月
  • 保守性:自動テストカバレッジ(重要領域)80% 目標、循環的複雑度の上限管理
  • セキュリティ:ASVS の主要コントロールを満たす
  • 移植性:コンテナ化(OCI 準拠)、IaC により再現可能

BCP/DR:RTO(復旧目標時間)≤ 4 時間、RPO(復旧目標時点)≤ 24 時間


5. データ・プライバシー

  • データ最小化:目的に必要なデータのみ収集
  • 保持期間:契約・法令・運用上の必要最短に設定
  • バックアップ:DB 毎日バックアップ、30 日保管、定期リストア訓練
  • 削除/訂正:ユーザーからの請求に対応する手順を整備
  • 個人情報保護法 等の適用法令を遵守(海外移転時は十分な保護水準を確認)

6. 開発プロセス(DevSecOps)

  • ブランチ戦略:GitHub Flow / Trunk-Based
  • CI/CD:PR ごとに Lint / Unit / Integration / SAST / 依存脆弱性スキャンを自動実行
  • レビュー:2 名以上のコードレビュー(セキュリティ/性能観点を含む)
  • テスト:ユニット / 統合 / E2E / 負荷(主要経路) / 回帰の自動化
  • ドキュメント:README / アーキ図 / API(OpenAPI)/ ADR / Runbook を必須成果物化
  • 依存管理:ロックファイル厳守、Renovate 等で定期更新

7. リリース & 運用

  • デプロイ:CI/CD による自動化、手動本番変更は原則禁止
  • 戦略:Blue-Green / Canary(段階リリース + ロールバック手順)
  • 監視:死活・レイテンシ・エラー率・リソース・ビジネスメトリクス
  • アラート:SLO/SLA に紐づく閾値で通知(有人オンコール)
  • インシデント:重大度定義 / エスカレーション / 初動 30 分以内 / 事後レビュー(ポストモーテム)

8. フロントエンド標準(Next.js 例)

  • レンダリング戦略:SSR/SSG/ISR を要件に応じ選択
  • 状態管理:Zustand/Context 等を用途別に最小限採用
  • セキュリティ:dangerouslySetInnerHTML 原則禁止、CSP/Trusted Types を検討
  • パフォーマンス:LCP/FID/CLS の Core Web Vitals を継続監視
  • アクセシビリティ:WCAG 準拠(主要画面で自動/手動チェック)

9. バックエンド/API 標準

  • 設計:リソース指向(REST)またはスキーマ駆動(GraphQL)
  • 仕様:OpenAPI/GraphQL SDL をソースオブトゥルースに
  • バリデーション:スキーマ(Zod/Yup 等)で入出力を検証
  • 認可:RBAC/スコープでエンドポイント単位に強制
  • 互換性:後方互換の破壊変更はバージョニング + 段階的廃止

10. 例:Cookie セッション(商用向け)実装指針

  • Cookie:HttpOnly / Secure / SameSite=LaxmaxAge 指定
  • セッション:DB/Redis に保存(端末別発行/失効)
  • ミドルウェア:全保護ルートでセッション検証(期限/権限)
  • CSRF:SameSite + CSRF トークン(POST/PUT/DELETE)
  • ログアウト:サーバー側セッション削除 + Cookie 無効化

11. よくあるご質問(FAQ)

Q. ISO/27001 認証はありますか?
A. 現時点では取得前提の設計/運用に準拠する方針です。必要に応じてお客様の監査に協力します。

Q. SSO や MFA は対応可能ですか?
A. はい。OIDC/SAML を用いた SSO、SMS/Authenticator ベースの MFA に対応可能です。

Q. データ所在地やバックアップは?
A. 国内/指定リージョンを基本とし、DB は 1 日 1 回バックアップ・30 日保持・復旧訓練を実施します。


12. 変更管理(公開方針)

  • 本ページは 公開版の標準 です。詳細な技術リファレンスは GitHub のドキュメントで管理し、Issue/PR により改善します。
  • 重要変更は変更履歴(Changelog)に記載します。

付録:チェックリスト(導入時に確認)

  • [ ] 12-Factor に沿った構成と設定分離
  • [ ] 認証:Cookie セッション + RBAC、CSRF 対策
  • [ ] パスワード:bcrypt/argon2、強力なポリシー
  • [ ] 機微情報:保管/転送暗号化、ログ出力抑止
  • [ ] OpenAPI/ADR/Runbook が整備済み
  • [ ] CI/CD:Lint/Tests/SAST/脆弱性スキャン
  • [ ] 監視・アラート・ロールバック手順
  • [ ] バックアップ(RTO≤4h / RPO≤24h)