keenauth audit verify による監査エクスポートの検証

keenauth audit verify は、お使いのマシン上で管理用の監査エクスポートを検証します。KeenAuth に接続せず、API キーも keenauth login のセッションも必要ありません。そのため、エクスポートを信頼するためにプラットフォームを信頼する必要はありません。

検証できる内容

コマンドには、ダウンロードしたエクスポートバンドル(records.ndjson.gz、manifest.json、manifest.jws を含む tar ファイル)と、リージョンの audit-jwks.json を指定します。コマンドは次を行います。

  1. manifest.jws の署名を、監査チェックポイント鍵で検証し、manifest.json がそのペイロードであることを確認します。
  2. records.ndjson.gz のサイズと SHA-256 をマニフェストと照合します。
  3. 各レコードのハッシュを再計算し、シーケンス番号が連番であること、およびすべてのレコードが直前のレコードのハッシュを指していることを確認します。
  4. 1時間ごとのリーフを再構築し、その包含証明(RFC 9162)を、署名済みの1時間ごとのチェックポイントのルートまでたどります。

したがって、バンドル内のレコードが変更、削除、並べ替えされていないことは証明されます。ただし、フィルタが正しく適用されたことは証明されません。リーフには環境 ID が含まれるため、別の環境向けの証明はお使いのレコードには当てはまりません。

使い方

keenauth audit verify --bundle audit-export.tar --jwks audit-jwks.json --environment-id 0192b6f0-7c1e-7a55-8f3d-2a6f0e9d4b11
フラグ 説明
--bundle ダウンロードしたエクスポートバンドルのパス(必須)。
--jwks リージョンの audit-jwks.json のパス(必須)。
--environment-id バンドルが属している必要がある環境 ID(UUID)。推奨です。指定しない場合、コマンドは警告を表示し、環境は確認しません。
--output, -o table、json、または yaml。フラグを指定しない場合、CLI はターミナルでは表形式、それ以外では JSON を出力します。

成功すると、コマンドは概要(verified、export_id、environment_id、cell、stream、from、to、record_count、line_count、windows、key_id、include_ip)を出力し、終了コード 0 で終了します。record_count はフィルタに一致するレコードの数を数えます。line_count はフィルタ外のレコードのプレースホルダー行も数えます。

いずれかのチェックに失敗した場合、コマンドは標準出力には何も出力せず、audit verification failed (<kind>) を標準エラー出力に書き込み、終了コード 1 で終了します。エラーの種類は signature、manifest、chain、proof、format のいずれかです。読み取れないファイルやフラグの欠落は、終了コード 2 で終了します。

エクスポートの作成とダウンロードの方法は、監査エクスポート API を参照してください。