オペレーションと→管理監査構成
監査構成
1)目的と価値
監査構成は、証明可能な説明責任と変更の再現性を保証します。何が正当化されています。テストされたように;どのようにロールバックする。これは、インシデントのリスクを軽減します、秘密の漏洩、コンプライアンスの矛盾とprod内の「隠された」編集。
主な結果:- configsのための単一のsource of truth (SoT)。
- 完全な変更トレース(エンドツーエンド)。
- 予測可能なリリースとクイックロールバック。
- コンプライアンスとセキュリティポリシー。
2)スコープ
インフラ:Terraform/Helm/Ansible/K8sマニフェスト、ネットワークACL/WAF/CDN。
アプリケーション設定:'yaml/json/properties'ファイル、フィーチャーフラグ、limits/quotas。
秘密と鍵:vault/kms、証明書、トークン、パスワード。
データパイプライン:スキーマ、変換、ETL/ストリームスケジュール。
統合:PSP/KYC/プロバイダ、 webhook、再試行/タイムアウトポリシー。
オブザビリティ:アラートルール、ダッシュボード、SLO/SLA。
3)原則
データとしての設定:宣言、バージョン、テスト可能なアーティファクト。
Immutabilityとidempotency:コードからメディアの再現性。
スキームとコントラクト:厳密な検証(JSON-Schema/Protobuf)、バック/フォワード互換性。
手動編集の最小化:MR/PRによる変更のみ。
職務の分離(SoD)と4-eyes: author!=deploer;必須レビュー。
アトリビューションと署名:コミット/リリースの署名、アーティファクトの証明。
4)監査アーキテクチャ
1.SoTとしてのSCM (Git):リポジトリ内のすべての構成、'main'ブランチは保護されます。
2.レジスタ:- Config Registry(構成、所有物、SLA、環境のディレクトリ)、
- スキーマレジストリ(設定/イベントスキーマバージョン)、
- ポリシーエンジン(OPA/Conftest)-チェックのセット。
- 3.CI/CD-gates: format/scheme→static check→policy checks→secret scan→dry-run→change plan。
- 4.配信:GitOps(例:ArgoCD/Flux)ドリフト検出器とアプリケーション監査ログ付き。
- 5.証拠ストア:監査アーティファクト(計画、ログ、署名、ビルド、SBOM)のリポジトリ。
- 6.アクションログ:「CREATE/APPROVE/APPLY/ROLLBACK/ACCESS」イベントの不変ログ(append-only)。
5)監査データモデル(最小)
Сущности: 'ConfigItem (id、 env、 service、 owner、 schema_version、 sensitivity)'
Сónotosa: 'change_id、俳優、アクション、ts、 diff_hash、 reason、承認[]'
Артефакты: 'plan_url、 test_report_url、 policy_report、署名、release_tag'
接続:RFC/チケット ↔ PR ↔ depla (sha) ↔リリース録画↔ SLO監視。
6)変更プロセス(エンドツーエンド)
1.RFC/チケット→ターゲット、リスク、バックアウト。
2.PR/MR→リンク、回路図の検証、ポリシーチェック、シークレットスキャン。
3.Plan/Preview→dry-run/plan、 resource diff、 cost/impact estimate。
4.承認(4-eyes/SoD、高リスクでCABラベル)。
5.展開(ウィンドウ/カレンダー別)→GitOpsが適用されます。ドリフトアラートを有効にしました。
6.確認→煙/SLO-gardrails、結果の確認。
7.証拠のアーカイブ→証拠ストア;config辞書を更新します。
7)方針・ルール(例)
SoD: PRの著者はprodに保持しません。
制限時間:「凍結」以外の生産はありません。
スコープ:機密鍵を変更するには、セキュリティ/コンプライアンスから2つの更新が必要です。
秘密:レポで保持することは禁止されています。vaultパス+アクセスロール参照のみ。
ネット:'0の入力。0.0.0/0'は一時的な例外とTTLなしでは許可されません。
警報:CABなしでP1の重大性を減らすことは禁止されています。
8)秘密の制御
Vault/KMSストレージ、短いTTL、自動回転。
CIでの秘密スキャン(キーパターン、高エントロピー)。
環境/役割による秘密の分離;最小限の必要な権限。
暗号化「ワイヤ上」と「残りの部分」;秘密へのアクセスの閉鎖された監査ログ。
9)ツール(可変)
Lint/Schema: 'yamllint'、 'jsonschema'、 'ajv'、 'cue'。
ポリシー:OPA/Conftest、 Checkov/tfsec/kube-policies。
GitOps: ArgoCD/Flux(ドリフト検出、監査、RBAC)。
秘密:HashiCorp Vault、 クラウドKMS、 certマネージャー。
スキャナー:trufflehog、 gitleaks(秘密);OPA/Regula(ルール)。
レポート:ログをDWH/BIにエクスポートし、インシデントと変更システムにリンクします。
10)ルールやアーティファクトの例
制限設定のためのJSONスキーマ
json
{
"$schema": "http://json-schema. org/draft-07/schema#",
"title": "limits",
"type": "object",
"required": ["service", "region", "rate_limit_qps"],
"properties": {
"service": {"type":"string", "pattern":"^[a-z0-9-]+$"},
"region": {"type":"string", "enum":["eu","us","latam","apac"]},
"rate_limit_qps": {"type":"integer","minimum":1,"maximum":5000},
"timeouts_ms": {"type":"integer","minimum":50,"maximum":10000}
},
"additionalProperties": false
}
Conftest/OPA (rego)-deny '0。0.0.0/0'進入
rego package policy. network
deny[msg] {
input. kind == "IngressRule"
input. cidr == "0. 0. 0. 0/0"
msg:= "Ingress 0. 0. 0. 0/0 is not allowed. Specify specific CIDRs or throw an exception with TTL"
}
Conftest/OPA-SoD
rego package policy. sod
deny[msg] {
input. env == "prod"
input. pr. author == input. pr. merger msg: = "SoD: PR author cannot hold in prod."
}
SQL (DWH)-1ヶ月でアラートの重大性を軽減
sql
SELECT actor, COUNT() AS cnt
FROM audit_events
WHERE action = 'ALERT_SEVERITY_CHANGED'
AND old_value = 'P1' AND new_value IN ('P2','P3')
AND ts >= date_trunc('month', now())
GROUP BY 1
ORDER BY cnt DESC;
Gitコミットメッセージの例(必須フィールド)
feat(config/payments): raise PSP_B timeout to 800ms in EU
RFC: OPS-3421
Risk: Medium (PSP_B only, EU region)
Backout: revert PR + restore timeout=500ms
Tests: schema ok, conftest ok, e2e ok
11)監視および警告
Drift-detection: Git→P1/P2シグナル+自動修復(調整)≠クラスタ内の設定。
リスクの高い変更:ネットワーク/シークレット/ポリシーの変更-#security-opsでの通知。
エビデンスの欠落:計画/署名/レポートなしで展開-ブロックまたはアラート。
期限切れのアセット:証明書/キーの有効期間→プロアクティブなアラート。
12)指標とKPI
Audit Coverage%-スキーマ/ポリシー/スキャナの構成の共有。
ドリフトMTTRは平均ドリフトクリア時間です。
ポリシーのコンプライアンス%-ポリシーをPRに渡します。
秘密リークMTTR-リークからリコール/回転まで。
バックアウトレート-設定変更のロールバックの割合。
「平均変更サイズ」(Mean Change Size)-ライン/リソースの平均差分(より少ない方が良い)。
13)報告とコンプライアンス
監査トレース:ストレージ≥ 1〜3年(要件に応じて)、変更できないストレージ。
規制:ISO 27001/27701、 SOX-like SoD、 GDPR (PII)、業界要件(iGaming: GGR/NGRの計算、制限、ボーナスルールの変更を考慮)。
毎月のレポート:トップの変更、ポリシー違反、ドリフト、期限切れの証明書、回転ステータス。
14)プレイブック
A。 prodで検出されるドリフト
1.影響を受けるサービスの自動入金をブロックします。
2.現在の状態のスナップショットを削除します。
3.Gitと比較し「、調整」またはロールバックを開始します。
4.インシデントP 2を作成し、ドリフトソース(手動kubectl/console)を指定します。
5.保護を有効にする:直接変更(PSP/ABAC)はなく、所有者に通知します。
B。 PSP証明書の期限切れ
1.バックアップパス/PSPに切り替え、タイムアウト/リトレースを下げます。
2.PKIプロセスで新しい証明書を発行し、Gitを通じて設定を更新します。
3.煙のテスト、リターントラフィックは、事件、死後を閉じます。
C。 シークレットヒットPR
1.キー/トークンを取り消し、回転を使用します。
2.キャッシュから履歴を書き換えたり、アーティファクトを削除したりすると、RCAが発行されます。
3.シークレットスキャナにルールを追加し、コマンドを訓練します。
15)アンチパターン
マニュアルは、トレースとロールバックなしで「販売中」に編集します。
スキームなしで、検証なしで構成されます。
KMS/VaultなしのGit/CI変数のシークレット。
「グローバル超右」に相当するモノレポ。
ドリフトアラートやアプリケーションログのない「耳が聞こえない」GitOps。
巨大なPR「一気に」-明確な帰属と高リスク。
16)チェックリスト
マージする前に
- 渡されたダイアグラムとリンタ
- OPA/Conftestポリシーは緑色です
- シークレットスキャン-「クリーン」
- プラン/差分添付、リスク評価、バックアウト対応
- 2 4月 (prod)とSoDが出会った
デプロイ前
- リリースウィンドウとカレンダーをチェック
- ドリフトモニタリングがアクティブ
- SLO gardrails構成、煙テスト準備完了
毎月
- 予定通りのキー/証明書の回転
- 所有者と権利の在庫
- OPA/除外規則レビュー(TTL)
- ファイヤードリルテスト
17)デザインのヒント
変更を小さな拡散に分割します。1つのPRは1つの目標です。
RFC/risk/rollbackで必須のPR/コミットテンプレート。
動的構成の場合は、監査とロールバックを持つ「config center」を使用します。
回路のバージョン化;移住なしで壊すことを禁止して下さい。
「config map」: what、 where、 whoを視覚化します。
18)変更およびインシデント管理との統合
PR ↔ RFC ↔リリースカレンダー↔インシデント/死後。
SLO/businessのメトリクスを設定リリースに自動結び付けます。
古いフラグ/例外(TTL)を削除するタスクを自動作成します。
19)ボトムライン
監査構成は「紙レポート」ではなく、運用の信頼性のメカニズムです。構成はデータであり、変更は制御され検証可能であり、秘密はロックと鍵の下にあり、ストーリー全体は透明で検証可能です。これは、安定した、迎合的で予測可能なプラットフォームを構築する方法です。