# コンプライアンスコマンド

## 概要

{% hint style="info" %}
[コンプライアンスレポート作成](https://app.gitbook.com/s/eJwa6ByNJ2qindnPknCW/compliance-reports)のアドオンが必要です
{% endhint %}

コンプライアンスレポートを使用すると、アカウント管理者は、組織全体のレコードおよび認証情報に対するアクセス権限をオンデマンドで可視化でき、各種規制への対応を支援できます。

コマンダーを使用すると、コンプライアンスレポートのスケジュール設定および自動実行が可能で、結果をCSVまたはJSON形式でエクスポートできます。

コンプライアンスレポートの詳細については、[コンプライアンスレポートのドキュメント](https://app.gitbook.com/s/eJwa6ByNJ2qindnPknCW/compliance-reports)をご参照ください。

## compliance-reportコマンド <a href="#compliance-report-command" id="compliance-report-command"></a>

`compliance-report` コマンドを使用すると、Keeper管理コンソールで行うのと同じようにレポートを実行できます。ノード、ユーザー、タイトル別のレコード権限の表示、所有するレコードまたは共有レコードによるフィルタ、結果のファイルへの出力ができます。

### キャッシュ <a href="#cache" id="cache"></a>

`compliance-report` コマンドは、複数のレポートクエリのパフォーマンスを向上させるためにキャッシュを利用しています。

**このため、`compliance-report` の最初の呼び出しでは、システムが必要なデータを取得するまでに数分かかる場合があります。**

この間、コマンダーには実行中の手順を説明するメッセージが表示されます。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FDF59nHGLI5uVPsNiazj5%2Fimage.png?alt=media&#x26;token=018d3d9e-62ae-408d-b6d9-ec3c393c3ee9" alt=""><figcaption></figcaption></figure>

また、`-r` フラグを使用すると、キャッシュを手動で再構築できます。コンプライアンスデータの最新の変更を反映させる場合に実行します。

`compliance-report -r`

{% hint style="info" %}
既定では、生成されるレポートにできる限り最新かつ正確なデータを反映させるため、1日を超えて保持されているローカルキャッシュは、前述のプロセスに従って自動的に更新されます。

そのため、同じ `compliance-report` コマンドを前回実行してから1日以上経過している場合は、初回実行時と同様にデータ取得処理が再度実行され、完了までに時間がかかることがあります。

この既定の動作を手動で変更する方法については、次のセクションをご参照ください。
{% endhint %}

一方で、前述の自動キャッシュ更新を行わず、既存のキャッシュデータのみを使用してレポートを生成することもできます。この場合、結果は最新ではない可能性がありますが、キャッシュ再構築に伴う時間のかかる読み込み処理を回避できます。その場合は、`-nr` または `--no-rebuild` フラグを使用します。前回のコマンド実行やキャッシュ更新以降、関連データに大きな変更がないと判断できる場合に、コンプライアンスデータへ迅速にクエリを実行する目的で使用します。

`compliance-report -nr`

**キャッシュを削除**

`--no-cache` フラグを使用すると、コンプライアンスレポートのキャッシュを手動で削除できます。実行すると、マシンに保存されているコンプライアンスレポートのキャッシュ情報がすべて削除されます。

`compliance-report --no-cache`

または、コマンダーを実行した場所のローカルディスク上にあるキャッシュファイルを削除することもできます。暗号化されたコンプライアンスデータが保存されている `sox_<ID>.db` というファイルを削除してください。

### フィルタ指定時のクエリ性能

`--username` または `--team` フィルタを使用した場合、コマンダーは組織全体ではなく、対象となるユーザーのみのキャッシュデータを更新します。この動作は、`compliance-report` および `compliance record-access-report` の両方に適用されます。

### フィルタ

コンプライアンスレポートは、ノード、ユーザー、役職に加え、レコードの状態(共有済み、削除済み、有効)でフィルタリングできます。

<details>

<summary>ノードでフィルタ</summary>

**形式**

`--node [NODE NAME or ID]` または `-n [NODE NAME or ID]`

**例**

`compliance-report --node "Chicago Office"`

**概要**

指定したノード内のKeeperボルトに存在するレコードのみに結果を絞り込みます。既定では、エンタープライズのルートノードが対象となり、すべてのボルトが検索されます。

</details>

<details>

<summary>ユーザー名でフィルタ</summary>

**形式**

`--username [USER EMAIL]` または `-u [USER EMAIL]`

**例**

`compliance-report --username "Craig@keepersecurity.com"`

**概要**

指定したユーザー名のKeeperボルトに存在するレコードのみに結果を絞り込みます。

</details>

<details>

<summary>レコードでフィルタ</summary>

**形式**

`--record [UID or TITLE]` または `-r [UID or TITLE]`

**例**

`compliance-report --record "Twitter Login"`

**概要**

指定したUIDまたはタイトルを持つレコードのみに結果を絞り込みます。

</details>

<details>

<summary>URLでフィルタ</summary>

**形式**

`--url [URL]`

**例**

`compliance-report --url "https://www.twitter.com"`

**概要**

指定したURL値を持つレコードのみに結果を絞り込みます。

</details>

<details>

<summary>役職でフィルタ</summary>

**形式**

`--job-title [TITLE]` または `-jt [TITLE]`

**例**

`compliance-report --job-title "Engineers"`

**概要**

指定した役職を持つユーザーが所有するKeeperボルト内のレコードのみに結果を絞り込みます。

</details>

<details>

<summary>共有レコードでフィルタ</summary>

**形式**

`--shared`

**例**

`compliance-report --shared`

**概要**

共有されているレコードのみを表示します。

</details>

<details>

<summary>削除済みレコードでフィルタ</summary>

**形式**

`--deleted-items`

**例**

`compliance-report --deleted-items`

**概要**

削除済みのレコードのみを表示します (`--active-items` フラグとは併用できません)。

</details>

<details>

<summary>アクティブなレコードでフィルタ</summary>

**形式**

`--active-items`

**例**

`compliance-report --active-items`

**概要**

有効なレコードのみを表示します (`--deleted-items` フラグと併用はできません)。

</details>

<details>

<summary>チームでフィルタ</summary>

コマンダーバージョン16.7.5以降が必要です。

**形式**

`--team <TEAM NAME>`

**例**

`compliance-report --team "Engineering"`

**概要**

指定したチームに所属するユーザーのみを表示します。

</details>

<details>

<summary>パスワードの経過日数データを含める</summary>

**形式**

`--aging`

**使用例**

`compliance-report --aging`\
`compliance-report --aging --username "user@company.com"`\
`compliance-report --aging --team "Engineering" --format csv --output "./aging_report.csv"`

**概要**

レポートに「作成日」「最終更新日」「最終パスワード変更日」「最終ローテーション日」の各列を追加します。作成以降一度もパスワードが変更されていないレコードでは、「最終パスワード変更日」に --- が表示されます。

このフラグは、既存の各種フィルタ(`--username`、`--team`、`--node`、`--job-title` など) と組み合わせて使用でき、対象を絞り込んだ経過日数レポートを生成できます。

{% hint style="info" %}
`--aging` を初めて実行する場合、コマンダーがパスワード変更のイベント履歴を取得してキャッシュするため、追加の時間がかかることがあります。

2回目以降の実行ではキャッシュされたデータが使用されます。ただし、キャッシュが古い場合や `-r` によって手動で再構築した場合は、再度データ取得が行われます。
{% endhint %}

</details>

<details>

<summary>複数のフィルタをまとめて使用</summary>

フィルタフラグを一緒に使用すると、高度なレポートを作成できます。

**例**

`compliance-report --node "Chicago" --job-title "Managers" --shared`

この例では、ChicagoノードのManagersが所有するボルトから共有されたレコードのレポートを表示します。

**同じフィルタを何度も使用することもできます**

`compliance-report -u "user1@example.com" -u "user2@example.com"`

この例では、「<user1@example.com>」と「<user2@example.com>」の両方のユーザーに属するレコードを取得します。

**`--username` と `--team` を同時に使用する場合**

`--username` と `--team` を同時に指定した場合、**OR条件**として処理されます。つまり、指定したユーザー、指定したチームのいずれかに該当するレコードがレポートに含まれます。

`compliance-report --username "user@company.com" --team "Engineering"`

この例では、`user@company.com` が所有するレコード**および**、`Engineering` チームのメンバーが所有するレコードが返されます。

**概要**

指定したノード内のKeeperボルトに存在するレコードのみに結果を絞り込みます。

</details>

### ファイルに出力

コマンダーの他の多くのレポートと同様に、コンプライアンスレポートの結果はファイルに保存できます。保存するには、`--output` および `--format` オプションを使用します。

**出力**

`--output [ファイルパス]`

指定した保存先に結果を書き出すようコマンダーに指示します。ファイルが存在しない場合は新規に作成されます。

**形式**

`--format [csv, json, table]`

レポート結果の出力形式を指定します。既定ではテーブル形式で出力され、整形された一覧が表示されます。その他の出力形式として、CSVおよびJSONを指定できます。

{% hint style="info" %}
`--format` フラグのみを指定し、`--output` フラグを指定しない場合は、指定した形式でコマンダー上に結果が表示されます。
{% endhint %}

<details>

<summary>結果をCSV (Excel) に保存</summary>

コンプライアンスレポートの結果をExcelで表示可能なCSVファイルとして保存するには、以下のフラグを使用します。

`--format csv` and `--output /path/to/file.csv`

**例**

`compliance-report --username "Craig@keepersecurity.com" --format csv --output "./craig_compliance.csv"`

結果は、指定した場所にcsv形式のファイルとして保存されます。

</details>

<details>

<summary>結果をJSONに保存</summary>

コンプライアンスレポートの結果をコードやスクリプトで使用するJSONファイルとして保存するには、以下のフラグを使用します。

`--format json` および `--output /path/to/file.json`

**例**

`compliance-report --username "Craig@keepersecurity.com" --format csv --output "./craig_compliance.json"`

結果は、指定した場所にjson形式のファイルとして保存されます。

</details>

## complianceコマンド <a href="#compliance-command" id="compliance-command"></a>

コマンダーでは、カスタムレポートの生成に加えて、`compliance` コマンドを使用すると特定のレポートも生成できます。特定のレポートは、`compliance` コマンドがサポートするサブコマンドを呼び出すことによって生成できます。

`compliance` コマンドでは、以下のサブコマンドがサポートされています。

* [`team-report`](#compliance-team-report)
* [`record-access-report`](#compliance-record-access-report)
* [`summary-reports`](#compliance-summary-report) または [`stats`](#compliance-summary-report)
* [`shared-folder-report`](#compliance-shared-folder-report)

詳細についてはサブコマンドのセクションをご参照ください。

{% hint style="info" %}
すべてのcomplianceサブコマンドは、前述のcompliance-reportセクションで説明した `--username` (`-u`)、`--team`、`--node`、`--rebuild` (`-r`)、`--no-rebuild` (`-nr`)、`--no-cache` (`-nc`) フラグに対応しています。これらの共通フラグは、すべてのサブコマンドで同様に動作します。
{% endhint %}

### Compliance Team-Report

共有フォルダは個人にもチームにも共有できますが、コンプライアンスレポートには各チームがこれらの共有フォルダに対して持つアクセス権に関するレポートを表示できます。

コンプライアンスチームレポートを実行するには、コマンダーで以下のコマンドを使用します。

`compliance team-report`

このレポートでは、前述の[コンプライアンスレポートのキャッシュ](#cache)が使用されます。

このレポートには、共有フォルダにアクセスできる各チームと、アクセス権の種類が表示されます。

```
My Vault> compliance team-report
Team Name    Team UID                Shared Folder Name  Shared Folder UID       Permissions            Records
-----------  ----------------------  ------------------  ----------------------  -------------------  ---------
Engineering  qLoY4YptKEs30VK_D8px1A  Devops Secrets      YZaagndh8CQToqlhuvv95Q  Read Only                    1
Marketing    XWLBkyN_HnwJKA4BYWrByw  Website Logins      -IcFcSgrFPEW9aP1-noiWw  Can Share, Can Edit          2
```

{% hint style="info" %}
レポートにチームの所属情報 (各チームにどのユーザーが所属しているか) を含める場合は、`--show-team-users` または `-tu` フラグを指定します。例は次のとおりです。

`compliance team-report -tu`

上記のコマンドでは追加フラグを指定しているため、生成されるレポートに「Team Users」という列が追加されます。この列には、該当する各チームのメンバーのユーザー名が表示されます。
{% endhint %}

### Compliance Record-Access Report

レコードアクセスのコンプライアンスレポートには、任意のユーザーがアクセスした組織内のすべてのレコードのリストと、その他の関連情報 (使用したアプリ、IPアドレス、イベントのタイムスタンプなど) が表示されます。

レコードアクセスのコンプライアンスレポートを実行するには、コマンダーで以下のコマンドを実行します。

`compliance record-access-report user1@company.com`

ここでは、`user1@company.com` はレコードアクセスを監査したいユーザーとなります。結果の出力は以下のようになります。

```
My Vault> compliance record-access-report user1@company.com
Vault Owner       Record UID              Record Title  Record URL     Has Attachments    In Trash    Record Owner       IP Address     Device             Last Access
----------------- ----------------------  ------------  -------------  -----------------  ----------  -----------------  -------------  -----------------  -------------------
user1@company.com LDUw6M6jNcUmEkuArp4LXQ  User1-Login   domain.com     False              False       user1@company.com  172.158.8.18   Web App 16.10.2    2023-05-30 17:04:23
                  5U4DK0MmJ5ZVui-o6JcDQw  User2-Login   google.com     True               False       user2@company.com  172.158.8.18   Web App 16.10.2    2023-01-24 17:04:18
                  MMhu6YQ5gKtYbgPiVD41UQ  User3-Login   hotmail.com    False              False       user3@company.com  172.158.8.18   Web App 16.10.2    2022-11-31 14:35:23
```

同じユーザーが現在アクセス可能なすべてのレコード（つまり、そのユーザーのボルト内に現在存在するすべてのレコード）を表示するには、次のコマンドを実行します。

`compliance record-access-report --report-type=vault --email=user1@company.com`

上記コマンドの出力は前の例とほぼ同様ですが、現在そのユーザーのボルトに存在しないレコードは除外されます。一方で、そのユーザーがこれまで一度もアクセスしていないレコードが含まれる場合があります。

このレポートを複数ユーザーに対して実行する場合は、次のいずれかの方法を使用できます。

1. 各ユーザー名またはIDを個別に指定する
2. 「@all」を指定して、すべてのユーザーを対象とする
3. ユーザーを指定せずに実行する (すべてのユーザーを対象とする簡易的な方法)

対応する例は次のとおりです。

`compliance record-access-report -e user1@company.com -e user2@company.com`\
`compliance record-access-report --email @all`\
`compliance record-access-report`

`--aging` フラグを追加すると、「作成日」「最終更新日」「最終パスワード変更日」「最終ローテーション日」の各列を含めることができます。

`compliance record-access-report --email user1@company.com --aging`\
`compliance record-access-report --email @all --aging --format csv --output "./rar_aging.csv"`

### Compliance Summary-Report

コンプライアンス概要レポートには、組織内のレコードに関する情報が集約されて表示されます (現在はデフォルトでレコードの所有者で分類されていますが、今後他のエンティティによる分類が追加される可能性があります)。

コンプライアンス概要レポートを実行するには、コマンダーで以下のコマンドを実行します。

`compliance summary-report`

または

`compliance stats`

結果の出力は以下のようになります。

```
My Vault> compliance summary-report

Email                             Total Items    Total Owned    Active Owned    Deleted Owned
------------------------------- -------------  -------------  --------------  ---------------
bob.loblaw@keeperdemo.io                   22             14              12                2
jose.rizal@keeperdemo.io                   49             42              33                9
tyrion.lannister@keeperdemo.io              3              3               3                0
doogie.howzer@keeperdemo.io                15              5               5                0
alan.turing@keeperdemo.io                  17             13               4                9
richard.feynmann@keeperdemo.io              4              1               1                0
TOTAL                                                     78              58               20
```

### Compliance Shared-Folder-Report

このコマンドで、`compliance team-report` と同様にすべてのエンティティ (チームおよび個々のユーザー) が組織内のすべての共有フォルダに対して持つアクセス権を詳細に示すレポートを出力します。

コンプライアンス共有フォルダレポートを実行するには、コマンダーで以下のコマンドを実行します。

`compliance shared-folder-report`

または

`compliance sfr`

出力は以下のとおりです。

```
My Vault> compliance sfr
Loading record information....
Loading compliance data....:
Shared Folder UID       Team UID                Team Name    Record UID              Email
----------------------  ----------------------  ------------ ----------------------  ------------------------------
y01GmuTipqHGLdd0NkM4qw                                       PG7MELDIOaNMQkDiw--JoQ  bob.loblaw@keeperdemo.io
                                                             1JDuc5ZcJDpt8SbhYnD0HA  nate.hawthorne@keeperdemo.io
YZaagndh8CQToqlhuvv95Q  qLoY4YptKEs30VK_D8px1A  Engineering  IOYb8jAmDsaIGtTwZB5Biw  samuel.clemens@keeperdemo.io
                                                                                     w.b.yeats@keeperdemo.io
-IcFcSgrFPEW9aP1-noiWw  XWLBkyN_HnwJKA4BYWrByw  Marketing    O69TWFDnPCG_dpg9wpABqg  e.hemmingway@keeperdemo.io
                        qLoY4YptKEs30VK_D8px1A  Engineering  f46BWlqg5SoWraVlEFFSDA
0qpDTAWuznWrInnednG3Xw  XWLBkyN_HnwJKA4BYWrByw  Marketing    EnqP808xakJA9hOpjhYb9A  e.hemmingway@keeperdemo.io
```

{% hint style="info" %}
前述の`compliance team-report` コマンドと同様に、必要に応じて `-show-team-users`/`-tu` フラグを指定してレポートにチームメンバーシップデータを含められます。以下はその例です。

`compliance sfr -tu`

`compliance team-report -tu` の出力とは対照的に、上記のコマンドによって生成されたレポートには、既存の「Email」という列に適切なチームメンバーシップデータが追加され、チームに関連付けられた各ユーザー名の前には、それを示すために「(TU)」が付くことにご注意ください。
{% endhint %}

`--resolve-teams` フラグを使用すると、`--team` によるフィルタに加えて、チームメンバーが個別に含まれている共有フォルダも対象に含めることができます。

`compliance sfr --team "Engineering" --resolve-teams`

コマンダーで使用可能なその他のレポートについては、[レポート作成のドキュメント](https://docs.keeper.io/jp/keeperpam/commander-cli/command-reference/reporting-commands)をご参照ください。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/jp/keeperpam/commander-cli/command-reference/enterprise-management-commands/compliance-commands.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
