Home
Get Started
実践ガイド
外部仕様設計
バッチ処理仕様設計
UAC 仕様設計
データ仕様設計
インフラ設計
移行計画
テスト方針・計画
開発プロセス・規約
構成管理・セキュリティ・データ保全の運用設計
システムの安全性と安定性を維持するため、構成管理・セキュリティ運用・データ保全の実践的な手順と体制を設計します。パスワード管理から権限監査、脆弱性診断、ログ監査まで、運用に必要な全ての要素を網羅的に定義します。
🎯 概要
- 目的: システムの構成管理、セキュリティ、データ保全の運用体制と手順を明確にし、安全かつ安定的なシステム運用を実現する
- スコープ: 構成管理・デプロイ、セキュリティ運用(パスワード管理、権限監査、脆弱性診断、ログ監査)、メンテナンス運用、データ保全、運用ツールをカバーする。開発プロセスや個別のシステム設定は対象外
- 推奨する実施タイミング: 基本設計の後半、システム方式設計やセキュリティ設計が完了した後に実施する
- 関連するステークホルダー: システム管理者、運用チーム、セキュリティチーム、DBA、インフラチーム
📥 重要な前提知識・インプット
- 前提知識: セキュリティ運用の基礎知識、ISMS・情報セキュリティポリシー、データベース管理、バックアップ・リカバリ手法、インシデント対応プロセスの理解
- インプット: システム方式設計書(セキュリティ仕様・方式)、データ仕様書、非機能要件一覧、開発プロセス・規約、法令・規制要件
📄 成果物の定義
- ドキュメントテンプレート: 📄
[テンプレ]構成管理・セキュリティ・データ保全の運用設計書
- 必須要素: セキュリティ運用手順書(パスワード管理・権限監査・脆弱性診断・ログ監査)、メンテナンス計画・手順書、データ保全手順書(異常検知・修正・個人情報取扱)、運用ツール一覧
✅ 品質基準・レビュー観点
✅ 品質チェックリスト:
| チェック項目 | チェック内容 |
|---|---|
| 運用手順の明確性 | 各運用作業の手順が具体的に定義されているか |
| セキュリティ基準の網羅性 | 必要なセキュリティ運用項目が漏れなく定義されているか |
| 責任者の明確化 | 各運用作業の責任者・実施者が明確に定義されているか |
| 監査証跡の確保 | 運用作業のログ・記録が適切に保管される設計か |
| 運用ツールの整備 | 運用に必要なツールが選定・導入されているか |
👁️🗨️ レビュー観点:
- セキュリティ要件との整合性: セキュリティポリシーや法令要件が運用手順に反映されているか
- 実施可能性: 運用チームのスキルとリソースで実施可能な手順か
- 緊急時対応: インシデント発生時の対応手順が明確に定義されているか
- 運用負荷の妥当性: 定常運用の作業負荷が適切で、持続可能な運用体制か
- 監査対応: 監査要件(ログ保管期間、証跡管理)を満たしているか
🧪成果物のサンプル
# 構成管理・セキュリティ・データ保全の運用設計
## 構成管理・デプロイ
- 「開発プロセス・規約」を参照
---
## セキュリティ運用
**参照先**
- システム方式設計「セキュリティ仕様・方式」を参照
### パスワード/APIキー管理・ローテーション
**管理方針**
| 対象 | 管理ツール | ローテーション周期 | 責任者 |
|------|-----------|------------------|--------|
| ユーザーパスワード | 認証基盤(Auth0 / Cognito) | 90日ごと | ユーザー本人 |
| 管理者パスワード | パスワードマネージャー(1Password) | 90日ごと | システム管理者 |
| APIキー | シークレット管理(AWS Secrets Manager) | 180日ごと | 開発チーム |
| DBパスワード | シークレット管理(AWS Secrets Manager) | 180日ごと | インフラチーム |
| 証明書 | 証明書管理(ACM / Let's Encrypt) | 自動更新 | インフラチーム |
**ローテーション手順**
```mermaid
graph TD
A[ローテーション期限30日前] --> B[アラート通知]
B --> C[新しいキー生成]
C --> D[新キーを並行稼働]
D --> E[全システムで新キー確認]
E --> F{問題なし?}
F -->|Yes| G[旧キー無効化]
F -->|No| H[ロールバック]
G --> I[ローテーション完了記録]
```
**パスワードポリシー**
- 最小文字数: 12文字以上
- 必須要素: 大文字、小文字、数字、記号の組み合わせ
- 過去5世代のパスワード再利用禁止
- 辞書攻撃対策: 一般的な単語の使用禁止
### 権限監査
**監査対象**
- ユーザーアカウントの権限設定
- 管理者権限の付与状況
- APIアクセス権限
- データベースアクセス権限
- クラウドリソースへのアクセス権限
**監査頻度・実施タイミング**
- 定期監査: 四半期ごと(年4回)
- 臨時監査: 組織変更・退職発生時
- 自動監査: 毎日の権限変更ログチェック
**監査チェックリスト**
- [ ] 退職者のアカウントが無効化されているか
- [ ] 過剰な権限が付与されていないか
- [ ] 長期間未使用のアカウントが存在しないか
- [ ] 共有アカウントが使用されていないか
- [ ] 最小権限の原則が守られているか
- [ ] 権限変更の承認記録が残っているか
**権限監査プロセス**
```mermaid
graph TD
A[監査開始] --> B[現行権限情報取得]
B --> C[組織情報との照合]
C --> D[不整合検出]
D --> E{問題あり?}
E -->|Yes| F[是正依頼]
E -->|No| G[監査完了報告]
F --> H[是正確認]
H --> G
```
### 脆弱性診断の周期
**診断種別と実施周期**
| 診断種別 | 対象 | 実施周期 | 実施主体 |
|---------|------|---------|---------|
| 自動脆弱性スキャン | アプリケーション | 日次 | CI/CDパイプライン |
| 依存ライブラリチェック | パッケージ依存関係 | 日次 | CI/CDパイプライン |
| 静的解析(SAST) | ソースコード | コミットごと | CI/CDパイプライン |
| 動的解析(DAST) | 稼働中アプリ | 週次 | セキュリティチーム |
| ペネトレーションテスト | システム全体 | 半期ごと | 外部ベンダー |
| インフラ診断 | クラウド設定 | 四半期ごと | インフラチーム |
**診断ツール**
- SAST: SonarQube / Veracode
- DAST: OWASP ZAP / Burp Suite
- 依存関係: Dependabot / Snyk
- インフラ: AWS Security Hub / Prisma Cloud
**脆弱性対応フロー**
```mermaid
graph TD
A[脆弱性検出] --> B{深刻度判定}
B -->|Critical| C[即時対応 24時間以内]
B -->|High| D[優先対応 7日以内]
B -->|Medium| E[計画対応 30日以内]
B -->|Low| F[次回リリース時対応]
C --> G[修正パッチ適用]
D --> G
E --> G
F --> G
G --> H[検証]
H --> I[本番反映]
```
### セキュリティログ監査
**監査対象ログ**
- 認証ログ(成功・失敗)
- 権限変更ログ
- データアクセスログ(特に個人情報)
- システム設定変更ログ
- API呼び出しログ
- ファイルアクセスログ
**ログ保管期間**
- アプリケーションログ: 90日
- セキュリティログ: 1年
- 監査ログ: 7年(法令対応)
**監視・アラート条件**
| イベント | アラート条件 | 対応 |
|---------|------------|------|
| ログイン失敗 | 同一IPから5回連続失敗 | アカウントロック |
| 権限昇格 | 管理者権限の付与 | 承認フロー確認 |
| 大量データアクセス | 通常の10倍以上のアクセス | アクセス元調査 |
| 深夜アクセス | 営業時間外の管理画面アクセス | 担当者確認 |
| 設定変更 | 本番環境の設定変更 | 変更記録確認 |
**ログ監査フロー**
```mermaid
graph TD
A[ログ収集] --> B[異常検知エンジン]
B --> C{異常あり?}
C -->|Yes| D[アラート発報]
C -->|No| E[ログ保管]
D --> F[セキュリティ担当者へ通知]
F --> G[調査・分析]
G --> H{インシデント?}
H -->|Yes| I[インシデント対応]
H -->|No| J[記録・経過観察]
```
---
## メンテナンス
### メンテナンスウィンドウ
**定期メンテナンス枠**
- 実施日時: 毎月第2水曜日 02:00~04:00(JST)
- 実施時間: 最大2時間
- 実施内容: OSパッチ適用、ミドルウェア更新、DB最適化
**臨時メンテナンス**
- 実施条件: 緊急セキュリティパッチ適用、重大障害対応
- 事前通知: 原則として3営業日前に通知
- 緊急時: 最短6時間前に通知
### メンテナンスモード
**メンテナンスモードの機能**
- サービス全体またはページ単位で停止可能
- 専用のメンテナンス画面を表示
- APIリクエストは503エラーを返却
- 管理者のみアクセス可能
**メンテナンスモード切替手順**
```mermaid
graph LR
A[メンテナンス開始] --> B[ユーザー通知]
B --> C[メンテナンスフラグON]
C --> D[メンテナンス画面表示]
D --> E[作業実施]
E --> F[動作確認]
F --> G[メンテナンスフラグOFF]
G --> H[サービス再開通知]
```
### メンテ時のユーザー通知方法
**通知タイミング・手段**
| タイミング | 通知手段 | 内容 |
|-----------|---------|------|
| 2週間前 | システム内お知らせ | メンテナンス予告 |
| 1週間前 | メール | 詳細な実施内容・影響範囲 |
| 前日 | システム内バナー | リマインダー |
| 開始30分前 | システム内ポップアップ | 最終通知 |
| 開始時 | メンテナンス画面 | 実施中の案内 |
| 終了時 | システム内お知らせ | 完了報告 |
**通知テンプレート(例)**
```
【重要】システムメンテナンスのお知らせ
平素より当サービスをご利用いただき、ありがとうございます。
下記の日程でシステムメンテナンスを実施いたします。
メンテナンス中はサービスをご利用いただけません。
■ 日時
2025年12月15日(水)02:00~04:00(予定)
■ 対象サービス
すべてのサービス
■ 作業内容
システム基盤の更新作業
ご不便をおかけいたしますが、ご理解とご協力をお願いいたします。
```
### メンテ明けの確認作業手順
**動作確認チェックリスト**
- [ ] サービスへのアクセス可否
- [ ] ログイン機能
- [ ] 主要機能の動作確認
- [ ] データ登録
- [ ] データ更新
- [ ] データ削除
- [ ] 検索機能
- [ ] ファイルアップロード
- [ ] 外部連携API
- [ ] バッチ処理の実行状況
- [ ] エラーログの確認
- [ ] パフォーマンス(応答時間)
- [ ] 監視アラートの確認
**確認手順フロー**
```mermaid
graph TD
A[メンテナンス作業完了] --> B[ステージング環境確認]
B --> C{正常?}
C -->|No| D[問題調査・修正]
D --> B
C -->|Yes| E[本番環境リリース]
E --> F[スモークテスト実施]
F --> G{正常?}
G -->|No| H[ロールバック判断]
G -->|Yes| I[全機能確認]
I --> J[監視確認 30分間]
J --> K[サービス再開通知]
```
---
## データ保全
**参照先**
- 外部仕様設計「データ仕様」を参照
### データ異常の検知方法
**監視項目**
| 監視対象 | 検知条件 | アラート |
|---------|---------|---------|
| データ件数 | 前日比で10%以上の増減 | Slack通知 |
| NULL値 | 必須項目にNULL | Slack通知 |
| データ型 | 不正な型のデータ挿入 | エラーログ |
| 外部キー整合性 | 参照先レコード不在 | エラーログ |
| 重複データ | ユニーク制約違反 | エラーログ |
| データ範囲 | 異常値(例:年齢が200歳) | Slack通知 |
**定期チェックバッチ**
- 実施頻度: 日次(深夜バッチ)
- チェック内容:
- データ整合性チェック(外部キー、制約)
- 統計情報の異常値検出
- 孤立レコードの検出
- データ重複チェック
### データ修正手順
**修正フロー**
```mermaid
graph TD
A[データ異常検知] --> B[影響範囲調査]
B --> C[修正方針決定]
C --> D[修正SQLレビュー]
D --> E[ステージング環境でテスト]
E --> F{正常?}
F -->|No| G[SQL修正]
G --> D
F -->|Yes| H[本番環境で実行]
H --> I[実行結果確認]
I --> J[監査ログ記録]
```
**修正作業の承認フロー**
| データ種別 | 承認者 | 実行者 |
|-----------|--------|--------|
| マスタデータ | システム管理者 | DBA |
| トランザクションデータ | 部門長 + システム管理者 | DBA |
| 個人情報 | 情報セキュリティ責任者 | DBA |
**SQL実行ルール**
- 本番環境での直接SQL実行は原則禁止
- やむを得ない場合は、必ずトランザクション管理
- 実行前に必ずバックアップ取得
- 実行後は必ず結果確認とログ記録
### 個人情報の取り扱い
**取り扱いルール**
- 個人情報へのアクセスは必要最小限
- アクセスログは全件記録
- 個人情報の出力は暗号化必須
- 個人情報を含むファイルの送付は禁止(必要時は専用ツール使用)
**個人情報アクセス権限**
```mermaid
graph TD
A[アクセス申請] --> B[上長承認]
B --> C[セキュリティ担当者承認]
C --> D[期限付き権限付与]
D --> E[アクセスログ記録]
E --> F[作業完了]
F --> G[権限自動失効]
```
**データマスキング**
- 開発環境・テスト環境では個人情報をマスキング
- マスキング対象: 氏名、メールアドレス、電話番号、住所
- マスキング方式: 擬似データ生成またはハッシュ化
---
## 運用ツール
### 監視ツール
**採用ツール**
| ツール | 用途 | 監視対象 |
|--------|------|---------|
| AWS CloudWatch | インフラ監視 | EC2, RDS, Lambda |
| Datadog | APM・ログ監視 | アプリケーション性能 |
| Zabbix | サーバー監視 | オンプレサーバー |
**アラート通知先**
- Critical: PagerDuty → 当番担当者へ電話通知
- High: Slack #alert チャンネル
- Medium: Slack #monitoring チャンネル
- Low: ダッシュボード表示のみ
### チケット管理
**採用ツール**
- JIRA: 開発タスク、バグ管理
- ServiceNow: インシデント管理、変更管理
**チケット起票ルール**
- 障害対応: すべてインシデントチケット起票
- 機能追加・改善: JIRAでストーリー作成
- 定常作業: タスクテンプレートから起票
### バックアップツール
**バックアップ方式**
- DB: AWS Backup / RDS自動バックアップ
- ファイル: S3バックアップ + Glacier
- 設定ファイル: Git管理
### 運用端末・運用アカウントの管理方法
**運用端末の管理**
- 運用専用端末を用意(個人PCからの本番アクセス禁止)
- セキュリティ対策: フルディスク暗号化、ウイルス対策
- アクセス制御: VPNまたは踏み台サーバー経由
**運用アカウントの管理**
- 個人アカウントと運用アカウントを分離
- 運用アカウントは多要素認証必須
- 共有アカウント禁止(個人を特定可能なアカウントのみ)
- アカウント棚卸し: 四半期ごと
🔄 設計の進め方・プロセス
🏗️ プロセス1: セキュリティ運用手順の設計
設計対象:
パスワード・APIキー管理、権限監査、脆弱性診断、セキュリティログ監査の運用手順を定義する。
具体例:
- パスワードやAPIキーのローテーション周期、管理ツール、責任者を決定する
- 権限監査の頻度、チェック項目、承認フローを定義する
- 脆弱性診断の種別、実施周期、使用ツール、対応フローを決定する
- セキュリティログの監視対象、保管期間、アラート条件を設定する
設計原則:
- 最小権限の原則: ユーザーやシステムには必要最小限の権限のみを付与し、定期的に見直す
- 多層防御: パスワード管理、権限監査、脆弱性診断、ログ監視など、複数の防御層を組み合わせる
- 自動化の推進: 定型的な監視・診断作業は可能な限り自動化し、人的ミスを減らす
- 監査証跡の確保: すべてのセキュリティ関連の操作はログに記録し、一定期間保管する
- 法令・規制への対応: 個人情報保護法、業界ガイドライン等の要件を運用手順に反映する
文書化の推奨表現:
- 運用手順書の作成: 各セキュリティ運用項目について、実施タイミング、手順、責任者を明記した手順書を作成する
- 運用フロー図: Mermaid等を使って、運用プロセスのフローを視覚化する
- チェックリストの整備: 監査時に確認すべき項目を一覧化したチェックリストを用意する
- ツール・設定情報: 使用する監視ツールや診断ツールの設定情報を文書化する
🏗️ プロセス2: メンテナンス運用の設計
設計対象:
定期メンテナンスの実施計画、メンテナンスモードの仕組み、ユーザー通知方法、メンテナンス後の確認手順を定義する。
具体例:
- メンテナンスウィンドウ(実施日時・頻度)を決定する
- メンテナンスモードの切替方法とユーザーへの表示内容を設計する
- メンテナンス前後のユーザー通知タイミングと手段を決定する
- メンテナンス完了後の動作確認項目とチェックリストを作成する
設計原則:
- ユーザー影響の最小化: メンテナンス時間帯は利用者が少ない時間を選定し、事前に十分な通知を行う
- 作業の可視化: メンテナンス中であることをユーザーに明確に伝え、予定終了時刻を提示する
- 段階的な確認: メンテナンス後は段階的に確認作業を行い、問題があればロールバックできる体制を整える
- 緊急対応の準備: 予定外の障害対応時のメンテナンス手順も事前に定義しておく
文書化の推奨表現:
- メンテナンス計画書: 定期メンテナンスのスケジュール、実施内容、影響範囲を記載した計画書を作成する
- 通知テンプレート: ユーザーへのメンテナンス通知メールやシステム内お知らせのテンプレートを用意する
- 確認チェックリスト: メンテナンス後に確認すべき項目を一覧化したチェックリストを作成する
- 作業フロー図: メンテナンス開始から完了までの作業フローを視覚化する
🏗️ プロセス3: データ保全手順の設計
設計対象:
データ異常の検知方法、データ修正手順、個人情報の取り扱いルールを定義する。
具体例:
- データ異常を検知する監視項目、検知条件、アラート方法を設計する
- データ修正時の承認フロー、SQL実行ルール、バックアップ取得手順を定義する
- 個人情報へのアクセス権限、アクセスログ記録、データマスキング方式を決定する
設計原則:
- データ整合性の保証: データ異常を早期に検知し、速やかに修正できる仕組みを整備する
- 変更の追跡可能性: データ修正作業はすべてログに記録し、誰がいつ何を変更したかを追跡可能にする
- 個人情報保護: 個人情報へのアクセスは必要最小限とし、アクセスログを記録し、開発環境ではマスキングする
- 承認プロセスの徹底: 重要なデータの修正は必ず承認プロセスを経て実施する
文書化の推奨表現:
- データ保全手順書: データ異常検知、修正、個人情報取扱の各手順を詳細に記載した手順書を作成する
- 監視設定: データ異常を検知する監視項目と閾値を一覧表で整理する
- 承認フロー図: データ修正時の承認プロセスをフロー図で視覚化する
- アクセス管理マトリクス: 個人情報へのアクセス権限を役割ごとに整理したマトリクスを作成する
🏗️ プロセス4: 運用ツールの選定
設計対象:
監視ツール、チケット管理ツール、バックアップツール、運用端末・アカウントの管理方法を決定する。
具体例:
- システム監視ツール(CloudWatch、Datadog等)を選定し、アラート通知先を設定する
- インシデント管理・タスク管理ツール(JIRA、ServiceNow等)を選定し、チケット起票ルールを定義する
- バックアップツールを選定し、バックアップ方式・保管期間を設計する
- 運用専用端末とアカウントの管理方法を決定する
設計原則:
- 統合管理: 可能な限り運用ツールを統合し、運用担当者の負荷を軽減する
- 自動化: アラート通知、チケット起票、バックアップなど、定型作業は自動化する
- アクセス制御: 運用端末・アカウントには厳格なアクセス制御を適用し、多要素認証を必須とする
- 監査対応: 運用ツールのログも適切に保管し、監査時に提示できるようにする
文書化の推奨表現:
- 運用ツール一覧: 採用する運用ツールの一覧と各ツールの用途、アクセス方法を記載する
- アラート設定書: 監視ツールのアラート条件と通知先を一覧表で整理する
- アカウント管理規定: 運用アカウントの発行・棚卸し・削除のルールを文書化する
- バックアップ設計書: バックアップ対象、方式、保管期間、リストア手順を記載する
🚨 よくある失敗と予防策
🚧 実例収集後、追記予定
📚 参考資料・関連リンク
- 参考文献: 『サイバーセキュリティ経営ガイドライン』(経済産業省)、『情報セキュリティ管理基準』(IPA)、『個人情報保護法ガイドライン』
- 関連する他のガイド: セキュリティ仕様・方式設計ガイド、データ仕様設計ガイド、開発プロセス・規約
- ツール・テンプレート: AWS Security Hub、Datadog、JIRA、ServiceNow、運用手順書テンプレート
テンプレートサイト: 📄テンプレート集