サービスアカウント:セキュリティプロトコル
マシンクレデンシャルはスコープ付きのシークレットまたはキーとして発行され、スケジュールに従ってローテーションされ、境界付き伝播強制で取り消され、人間ユーザーセッションとは別に監査されます。
パッケージステータス: AI支援リファレンスパッケージ。静的パッケージ検証は合格済み;実装シナリオは未実行であり、安定採用前に人間によるドメインレビューが必要です。
決定事項
サービスアカウントをハッシュ化されたAPIキーまたは同等のマシンクレデンシャルを持つ非人間プリンシパルとしてモデル化し、ローテーション中は最大2つの重複する有効なクレデンシャルを許可し、APIゲートウェイおよびバックグラウンドワーカー全体で境界付き伝播ウィンドウ内に取り消しを強制し、マシンクレデンシャルをブラウザセッションと同等に扱わないこと。
範囲
- サービスアカウントクレデンシャルの作成、表示、ローテーション、有効期限切れ、取り消し。
- スコープバインディング、任意のネットワーク制約、人間のOAuthやセッションクッキーからの分離。
- バリデータでのキャッシュ動作とワーカーへの非同期伝播。
- 人間の所有者に帰属するライフサイクルイベントの監査証跡。
このブロックの外
- 明示的にクレデンシャルタイプとしてマッピングされていない限り、クラウドIAMロールとのワークロードアイデンティティフェデレーション。
- 詳細な認可ポリシーエンジン(認可ブロックを参照)。
- 人間の多要素認証(MFA)やパスキーのフロー。
契約
- フルクレデンシャルシークレットは作成またはローテーション発行時のみ表示され、永続化された記録には一方向ハッシュと表示用プレフィックスのみを保存。
- 各サービスアカウントにはローテーション責任者である人間の所有者が存在し、所有者のいない孤立アカウントはフラグ付けされ新規クレデンシャル発行をブロック。
- 最大でプロファイル制限の有効クレデンシャルが存在可能;ローテーションは重複猶予期間の後に前任者を無効化する前に後継を作成。
- 取り消しはエッジバリデータ、内部サービス、ジョブランナー全体のプロファイル伝播境界内で新しい認証試行に対して有効。
- 有効期限切れまたは取り消されたクレデンシャルは読み取り専用にダウングレードせず、閉じた失敗となる。
- 認可チェックはユーザーセッションに依存せずクレデンシャルスコープを使用;読み取り専用キー所持者は書き込みAPIを呼び出せない。
- ライフサイクルイベント(作成、ローテーション、取り消し、自動期限切れ)は不変の監査エントリを追加し、アクター、対象アカウント、クレデンシャルプレフィックスを含む。
- ログやサポートツールに完全なシークレットや可逆的エンコードは含まれない。
実装ガイダンス
- 保存されたハッシュに対して定数時間比較を使用;ハッシュ検索前に不正なキーを拒否しタイミングリークを低減。
- 取り消しリストやバージョンカウンターをプロファイルキャッシュTTLを超えないTTLで共有キャッシュにプッシュ。
credential-states.yamlでライフサイクル状態をローテーション、重複、未完了ローテーション処理にマッピング。- 夜間ジョブでアイドル期限切れと期限14日・7日前のローテーションリマインダーを実行。
- アプリケーションデータベース外に保存された緊急ブレークグラスクレデンシャルのためにシークレット管理と統合。
障害処理と安全策
- 伝播遅延が境界を超えた場合はアラートを出し、一致するまで影響を受けたアカウントのすべてのキーを拒否する失敗モードをオプションで拡大。
- ローテーションが途中で失敗した場合は前のクレデンシャルを有効のままにし、ゼロ有効キーの状態を避け未完了としてマーク。
- 所有者が離脱した場合は管理者ワークフローで所有権を移譲;通知なしに自動ローテーションしない。
- 侵害対応はすべてのクレデンシャルを即時取り消し、チケット承認後に明示的な再発行を要求。
検証と運用
- クレデンシャルプレフィックスごとに年齢分布、ローテーション遵守、取り消し遅延、認証失敗を追跡。
- ローテーション訓練中にAPIを叩く複数ワーカーで重複と取り消しをテスト。
- 四半期ごとのアクセスレビューで各有効クレデンシャルを稼働中サービスと所有者オンコールローテーションに紐付け。
採用前提
example.yamlの名前や数値は採用プロファイルであり、普遍的なデフォルトではない。- チームはスコープをAPIサーフェスにマッピングし、組織標準に沿ったハッシュアルゴリズムを選択。