02事例

とある基幹システムの、守りと運用。

グループ各社の職員の個人データを扱う、とある基幹システムです。情報システム部門の方に向けた説明資料から、お客様とシステムの名前、守りの手がかりになる細部を除いて載せています。

3つの約束

  1. 01

    止まったままにしない

    壊れた版は利用者に届く前に止めます。止まっても、できるだけ人の手を待たずに戻ります。

    カナリア配備・自動置き換え・復元の訓練

  2. 02

    個人データを外に出さない

    入口からデータの置き場まで、層を重ねて守ります。持ち出しの疑いはすぐに知らせます。

    WAF・内部 IP・データの境界・即時の検知

  3. 03

    失敗を放置しない

    想定した止まり方を台帳に載せ、通知が届くか、直ったかまでを確かめます。

    失敗の台帳・無音の検知・修復まで閉じない

数字で見る作り込み

マージした変更
636
2026年5月の開発開始から
自動テスト
約3,000
実際のデータベースを使う統合テストを含む
台帳に載せた止まり方
43
39件は検知と通知先を設定。残りも台帳で毎日数える
監視のアラート定義
35
障害とセキュリティ。コードで管理
設計判断の記録
14
なぜそう決めたかを文書で残す
障害対応の手順書の行数
約3,100
通知から手順の節へ直接たどれる

2026年11月1日時点のリポジトリから集計

5つの層で守る

1つ破られても、次の層で止めます。

  1. 1入口WAF とレート制限で、攻撃の形と大量の要求を止める。
  2. 2認証会社のアカウントのシングルサインオンで本人を確かめ、在籍と許可を確認する。退職日でログインが止まり、1人単位の利用停止もできる。
  3. 3認可ロールと担当の関係を API で判定し、項目ごとの閲覧範囲を表で定義する。
  4. 4データデータベースは内部の IP だけで、人の接続も本人の ID で行う。データの境界で、外への持ち出しを止める。
  5. 5実行物CI が署名していないコンテナイメージは、本番で動かない。

使っている Google Cloud のサービス(守りに関わるもの)

  • Cloud Run
  • Cloud SQL(内部 IP だけ)
  • Cloud Armor
  • Identity-Aware Proxy
  • VPC Service Controls
  • Binary Authorization
  • Cloud KMS
  • Secret Manager
  • Backup and DR
  • Artifact Analysis
  • Security Command Center
  • Workload Identity Federation
  • Organization Policy
  • Cloud Logging・Monitoring・Trace

組織の決まりで禁じる

設定を誤っても、権限を乗っ取られても、この決まりを外さない限り実行できません。決まりを変える操作は、それ自体がすぐに通知されます。

  • 禁止サービスアカウントの鍵の作成
  • 禁止データベースの公開 IP
  • 禁止既定のアカウントへの権限の自動付与
  • 禁止ストレージのバケットの公開
  • 禁止組織と指定のドメイン以外への権限の付与
  • 禁止VM の外部 IP
  • 禁止Cloud Run の公開の受け口
  • 禁止OS Login を使わない VM へのログイン
  • 禁止署名の検査を外した Cloud Run
  • 禁止既定のネットワークの自動作成

持ち出しの疑いは、その場で届く

次の操作は、Chat とメールで運用担当に即時に届きます。運用者のアカウントの乗っ取りも想定するので、運用者自身の操作も除外しません。通知には最初に打つコマンドと手順書の節が書いてあり、受け入れ環境で試験発火して鳴ることを確かめています。

  • データベースへの直接の操作(書き出し・複製など)
  • シークレットの想定外の読み取り
  • ファイルの、API を通さない読み取り
  • 権限・監査・監視の設定の変更
  • 組織の決まりの変更
  • 閲覧の記録の書き込みの失敗

触れた記録を5年残す

  • アプリの閲覧

    個人データの閲覧と CSV の出力を記録します。写しをロックしたログに残し、毎朝 1 行ずつ突き合わせるので、記録が消されれば分かります。

  • データベースの中の操作

    人が流した SQL を記録します。値は伏せて残し、記録の量でデータベースが止まらないよう対象を人に絞っています。

  • クラウドの操作

    Google Cloud の監査ログを、保持期間をロックした保管先に残します。保持期間の 5 年の間は、管理者でも消せません。

ログに生の個人情報は出しません。識別子はハッシュにし、データベースのエラーからも値を伏せます。

戻せることまで確かめる

7日
この間の任意の時刻へ戻せる(時点復元)
30日
毎日のバックアップを別プロジェクトの保管庫に保持。管理者でも消せない
約16分
時点復元の訓練での本体の停止時間(全体は約68分)

いきなり上書きせず、別のインスタンスへ復元して中身を確かめてから、戻すかを決めます。受け入れ環境で3回、件数や接続まで確かめる訓練をしました。

変更は7つの段を通る

  1. 1

    PR

    本番の枝への直接の変更は禁止。

  2. 2

    自動の検証

    型検査・テスト・実データベースの統合テスト・秘密情報の走査。

  3. 3

    AIのレビュー

    指摘が未解決のままでは取り込めない。

  4. 4

    受け入れ環境へ

    署名・マイグレーション・カナリアの順に自動で。

  5. 5

    受け入れの確認

    本番と同じ構成の環境で動作を確かめる。

  6. 6

    リリースの依頼

    人の依頼がなければ本番には出ない。

  7. 7

    同じ物を本番へ

    確かめた版と照合し、カナリアの確認の後に切り替える。問題があれば数十秒で前の版へ。

点検を続ける

  • 0件

    High 以上の指摘(自社診断)

    2026年10月28日に実施。OWASP ASVS レベル1 と IPA の基準で、全167ルートを役割ごとに試験。コードで直せる指摘は同日に本番へ反映。

  • 40 / 42

    第三者アセスメントの提言に対応

    2026年10月に第三者がコードと設定を調査した 42 件の提言のうち、11月1日までに 40 件に対応。残る 2 件は判断のうえで保留。

このシステムの外からも、3つの点検(セキュリティチェック・オペレーションチェック・GCP アドバイザー)が毎日見回っています。

AIが調べて直せる設計

ログは機械が読める形で出し、繰り返しは1行に集約します。障害のたびに、足りなかったログとノイズだったログを直します。

  1. 01

    検知

    エラーを種類ごとに集約し、新規・継続・急増を毎日出す

  2. 02

    診断

    1本のコマンドで版・デプロイ・エラーを一覧する

  3. 03

    修正

    AIが原因を調べ、修正と再発防止を変更にまとめる

  4. 04

    確認

    CI・レビュー・受け入れ環境の同じ関門を通す

  5. 05

    反映

    人のリリースの依頼で本番へ出す