監査ロギング
監査ロギングでは、監査ロギングの管理および監査ログの表示を行うコマンド行インターフェースが提供されます。監査ログには、システム内のオブジェクトに対する変更の履歴が示されます。これらはフルテキスト索引に保管されます。
監査ロギングを使用した場合、トラッキング対象のオブジェクトについて、メッセージング機能に代わってロギング機能が適用されます。ロギング機能が適用されない場合は、
でメッセージが表示されます。監査ポリシーの管理
監査ポリシーは、監査がどの程度行われるかを制御します。これは、監査ポリシーのシステム構成の設定によって決まります。- なし
- 監査情報は記録されません。
- セキュリティー
- セキュリティーに関する情報のみが記録されます。例えば、アクセス・グループの作成やユーザー・セッションのアクティビティーに関する情報などです。
- 基本
- これはデフォルト設定です。監査ポリシーの値が無効な場合にも使用されます。ユーザー、オブジェクト・タイプ、UUID、アクションなどの最小限の情報のみが記録されます。
- 詳細
- 古い値と新しい値を含む、プロパティーの変更に関する詳細情報が記録されます。すべてのオブジェクトがこの情報を提供できるわけではありません。この情報を提供できないオブジェクトでは、BRIEF ポリシーと DETAILED ポリシーの間に違いはありません。「監査の最大ストリング長 (Audit Max String Length)」システム構成設定を使用して、保管されるデータの量を制限できます。
「監査の最大ストリング長 (Audit Max String Length)」システム構成設定では、ストリング・データ・フィールドの長さをキャッピングすることで、詳細な (DETAILED) 変更情報として記録できる情報量を制御します。監査項目がこの文字数を超えた場合は、ストリング値の代わりに SHA メッセージ・ダイジェストが保管されます。パスワードなどの機密情報を含むフィールドでは、ストリング長に関係なく、メッセージ・ダイジェストが使用されます。
監査情報の表示
コマンド行インターフェースを使用して、表示する情報およびその情報のフォーマット方法を指定することができます。
「すべての監査ログの表示」権限が必要です。 デフォルトでは、セキュリティー・アクセス・グループとビルド・エンジニア・アクセス・グループに対して、この権限が割り当てられます。
使用法: bfauditlog [connection-options][command-options][query]
リテラルの実行可能ファイルは以下のとおりです。
- Windows システムの場合: bfauditlog.bat
- UNIX システムおよび Linux システムの場合: bfauditlog.sh
接続オプション
- -H hostname | --hostname=hostname
- 接続に使用するリモート・ホスト名。デフォルトは localhost です。
- -P port | --port=port
- 接続に使用する通信ポート。デフォルトは 3966 です。
- -d domain | --domain=domain
- 認証に使用するドメインまたは領域。デフォルト: なし。
- -u login | --user=login
- ユーザー認証に使用するユーザー名。デフォルトは root です。
- -p password | --password=password
- 認証ユーザー用のパスワード。デフォルトは root です。
- -E encoding | --encoding=encoding
- 使用する出力文字セット・エンコード。指定されたエンコードが無効な場合は、使用可能なすべてのエンコードがリストされて、プログラムが終了します。要求されたエンコードでテキストを表示できるかどうかは、クライアントで使用されている端末ソフトウェアの機能に依存します。デフォルト設定は、ご使用のオペレーティング・システムと JVM のサポートによって異なります。
コマンド・オプション
- -h
- ヘルプを表示します。
- -b | --bare
- 最低限の情報を出力します (bare)。正確な出力結果は出力フォーマットによって異なります (『-t』を参照)。例えば、XML 出力の場合、開始タグ、終了タグ、および行数は省略されます。CSV の場合は、行数と列名が省略されます。
- -c auditClass[,auditClass ...] | --audit.class=class-list
- 照会で使用する監査クラスのリストを指定します。複数のクラス名がある場合は、コンマで区切ります。複数回指定すると、指定されたすべての監査クラスの和集合が使用されます。オプションが指定されなかった場合は、ユーザーが指定できるすべての監査クラスが使用されます。使用可能な監査クラスをリストするには、-L オプションを使用します。デフォルトは、ユーザーが表示する権限があるすべての監査クラスです。
- -f field[,field ...] | --field=field-list
- 出力に含めるフィールドを指定します。複数のフィールド名がある場合は、コンマで区切ります。使用可能なフィールドをリストするには、-L オプションを使用します。
- -s field[+|-][,field[+|-] ...] | --field=field-list
- 出力のソートに使用するフィールドをリストします。デフォルトでは、audit.stamp の降順で出力がソートされます。+ マーカーを指定すると昇順になります。- マーカーを指定すると降順になります。 複数のフィールド名がある場合は、コンマで区切ります。デフォルトは -audit.stamp です。
- -l [offset,]count | --limit=[offset,]count
- 結果のページ編集に使用します。オフセットとカウントは項目数で示されます。例えば、「-l 100,50」は 100 番目の項目の後に 50 個の項目が表示されることを意味します。bare 以外の出力フォーマットでは、一致する項目の総数が出力に含まれます。
- -a user[,user ...] | --audit.user=user-list
- 出力を、指定されたユーザーに関連付けられた項目に制限します。複数のユーザー名がある場合は、コンマで区切ります。-a オプションを複数回使用した場合は、そのオプションで指定されたすべてのユーザーの和集合が使用されます。ユーザーは、ログイン ID または UUID によって指定できます。 --audit-user を指定するときに user 引数を使用しなかった場合は、認証に使用するユーザーが使用されます。
- -t format | --format=format
- 出力に使用するフォーマット (CSV、XML、JSON、または TEXT)。 デフォルトは TEXT です。
- -L | --list
- ユーザーが使用可能な監査クラスをリストします。アスタリスク (*) のマークが付いているものが、ユーザーがアクセスできる監査クラスです。-c (監査クラスのリスト) と一緒に使用した場合は、各クラスの使用可能なフィールドのリストが代わりに表示されます。このオプションを指定するときに、その他のコマンド・オプションを使用しても効果はありません。ViewAllAudits の権限を持つユーザーは、任意のクラスの監査ログを表示できます。その他のユーザーは、-a オプションを使用することで、自身の監査ログのみを表示できます。
照会
照会は、Web 検索エンジンで一般的に使用されるフォーマット (仕様をスペースで区切ってリストする) を使用するストリングです。仕様は「field:value」という形式になっており、指定したフィールド の値 が検索されます。照会は指定されていないが、少なくとも 1 つのオプションが指定されている場合は、一致するすべての監査ログが表示されます。監査ユーザーと監査クラスを照会で指定することはできません。それらを指定するには、コマンド・オプションを使用します。
例
- 次の例では、Project 監査クラスと Step 監査クラスの既知の照会フィールドがすべてリストされます。
- Windows
$ bfauditlog.bat -c Project,Step -L
- UNIX および Linux
$ bfauditlog.sh -c Project,Step -L
- Windows
- 次の例では、プロジェクト作成についての最新の監査ログ (コンマ区切り変数の出力フォーマットを使用し、列見出しと合計行数を含まないもの) が 10 個表示されます。レコードごとに、プロジェクトの固有 ID と名前のみが表示されます。
- Windows
$ bfauditlog.bat -c Project -t CSV -f audit.target, sxProjectName --bare -l 10 "audit.type:Create"
- UNIX および Linux
$ bfauditlog.sh -c Project -t CSV -f audit.target, sxProjectName --bare -l 10 'audit.type:Create'
- Windows
- 次の例では、指定されたドメイン、ユーザー名、およびパスワードを使用してログインした後の、'buildforge.example.com' マシン上のインストール済み環境から最新の監査ログが 100 個取得されます。
- Windows
$ bfauditlog.bat -H buildforge.example.com -d ExampleLDAP -u apiuser -p "My$ecret" -l 100
- UNIX および Linux
$ bfauditlog.sh -H buildforge.example.com -d ExampleLDAP -u apiuser -p 'My$ecret' -l 100
- Windows
- 次の例では、接続を認証したユーザーのタイムゾーン設定に従って、2011 年 5 月 23 日から 2011 年 5 月 27 日までに記録された監査ログが取得されます。
- Windows
$ bfauditlog.bat "audit.stamp:[2011/05/23 TO 2011/05/27]"
- UNIX および Linux
$ bfauditlog.sh 'audit.stamp:[2011/05/23 TO 2011/05/27]'
- Windows
- 次の例では、アクセス・グループ・レベルが古い値の 4、5、または 6 から新しい値の 3 に変更されたプロジェクトの監査ログが取得されます。大括弧を使用して包括的な範囲を示しているので、'[4 TO 6]' は値 4 と 6 を突き合わせに含めるという意味であることに注意してください。また、古いレベル値と新しいレベル値を検索に使用できるのは、監査ポリシーが 'DETAILED' に設定されている場合のみであることにも注意してください。
- Windows
$ bfauditlog.bat -c Project "ioLevel:[4 TO 6] AND inLevel:3"
- UNIX および Linux
$ bfauditlog.sh -c Project 'ioLevel:[4 TO 6] AND inLevel:3'
- Windows
- 次の例では、アクセス・グループ・レベルが古い値の 4 または 5 から新しい値の 2 または 3 に変更されたプロジェクトの監査ログが取得されます。中括弧を使用して排他的な範囲を示しているので、'{3 TO 6}' は値 3 と 6 を突き合わせに含めないという意味であることに注意してください。また、古いレベル値と新しいレベル値を検索に使用できるのは、監査ポリシーが 'DETAILED' に設定されている場合のみであることにも注意してください。
- Windows
$ bfauditlog.bat -c Project "ioLevel:{3 TO 6} AND inLevel:(2 OR 3)"
- UNIX および Linux
$ bfauditlog.sh -c Project 'ioLevel:{3 TO 6} AND inLevel:(2 OR 3)'
- Windows
- 以下の例では、照会は、監査ユーザーの root と sv の結果に制限され、出力は CSV ファイルに生成されます。以下のように、プロジェクト・クラスとステップ・クラスのデータが返され、クラス、タイプ、ターゲット、ユーザー、およびタイム・スタンプの情報が含まれます。
- Windows
$ bfauditlog.bat -c Project,Step -f audit.class, audit.type,audit.target,audit.user,audit.stamp -a root,sv -l 10,5 -t CSV
- UNIX および Linux
$ bfauditlog.sh -c Project,Step -f audit.class, audit.type,audit.target,audit.user,audit.stamp -a root,sv -l 10,5 -t CSV
- Windows
クラス
クラスは、監査ログ・エントリーのラベルです。ユーザーが使用可能なクラスをリストするには、-L オプションを使用します。フィールド
フィールドには、各監査ログ・レコードに割り当てられた情報が示されます。
- audit.class: プロジェクト (ストリング)
- audit.stamp: タイム・スタンプ (整数)
- audit.stamp.localized: audit.stamp 整数値を表すローカライズされたストリング
- audit.type: 更新 (ストリング)
- audit.target: プロジェクトの UUID (ストリング)
- audit.user: 更新を実行したユーザーの UUID
監査ログ・レコードの一部のフィールドには、その状態 (o: 古い、n: 新しい、x: 拡張) とデータ型 (s: ストリング、i: 整数) が反映されます。例:
soDescription: 古いプロジェクトの説明 (ストリング)
snDescription: 新しいプロジェクトの説明 (ストリング)
soSelectorUuid: 古いセレクターの UUID (ストリング)
snSelectorUuid: 新しいセレクターの UUID (ストリング)
ioRunLimit: 古い実行上限数 (整数)
inRunLimit: 新しい実行上限数 (整数)