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=Lax
、maxAge
指定 - セッション: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)