コンテンツにスキップ

安全機構

  • --regions を省略した場合、暗黙に全リージョンをスキャンすることはありません。TTYでは対話式に選択させ、非TTY(CI/パイプ)ではエラー終了します。全リージョンを対象にするには --regions allを明示する必要があり、その場合も対象件数を表示してTTYでは確認を取ります(誤って無関係なリージョンをスキャンする事故を防ぐため)。
  • clean --execute / retention set --execute を渡さない限り、delete-log-group /put-retention-policy は一切呼び出されません(dry-run既定)。scan と audit はこれらのAPIに到達する経路を持たず、retention set は delete-log-group に到達する経路を持ちません。
  • 対話式マルチセレクトの初期状態は常に全チェックOFFです。
  • 削除・retention変更を伴う操作は、対象アカウントID・リージョン・ロググループ名・実行時刻・成功/失敗を監査ログ(既定: カレントディレクトリ直下 cwsweep-audit.jsonl。--audit-log-path で出力先を上書き可能)にJSON Linesで必ず記録します(無効化オプションなし)。監査ログの書き込みに失敗した場合、当該操作は中断されます。監査ログファイルは clean 開始時にオープンされます(scan は作成しません)。
  • 管理アカウント自身へはAssumeRoleせず現在の認証情報をそのまま使用し、メンバーアカウントに対してのみAssumeRoleします。
  • いずれかのAWSアカウントへのAPI呼び出しの直前(スキャン時、および削除・retention変更の実行直前の二重目)に sts:get-caller-identity でアカウントID一致を検証し、不一致の場合は当該アカウントの処理を即座に失敗させます。

終了コード方針(CI/自動化向け)

Section titled “終了コード方針(CI/自動化向け)”

scan / clean で対象アカウント×リージョンの組み合わせが1件以上あり、かつその全件でスキャンが失敗した場合、cwsweep は非ゼロ終了コードで終了します(標準エラーへの警告ログに加え、この場合は正常な「0件」メッセージを表示しません)。

1件でも成功した組み合わせがあれば、他が失敗していても終了コードは0(正常終了)とし、失敗したアカウント/リージョンは個別に警告ログへ出力するのみとします。これにより「スキャンが全滅した」場合と「本当に対象ロググループが0件だった」場合を、呼び出し元が終了コードだけで区別できます。