# シークレットマネージャーCLI

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FXh32maRnFbEyaW1lu22q%2Fimage.png?alt=media&#x26;token=778a0165-6027-41ea-a48e-1d2e004f5860" alt=""><figcaption></figcaption></figure>

## 概要

**KeeperシークレットマネージャーCLI (KSM CLI)** を使用すると、ターミナル、シェルスクリプト、シェルから起動できる任意のソフトウェアから、シークレットマネージャーボルトの基本的な操作をご利用になれます。

### 基本機能

* Keeperボルトからシークレットを取得
* Keeperボルトのシークレットを更新
* サードパーティのCI/CDやその他の開発ツールとの統合
* Keeperと外部のシークレットプロバイダ間でシークレットを同期
* スクリプトおよびコンテナ内の環境変数をKeeperシークレットへの置換

{% hint style="info" %}
Keeperでは2つの異なるCLI ツールがご利用になれます。シークレットマネージャーCLI はマシンベースのシークレット管理を対象とする一方、[コマンダーCLI](https://docs.keeper.io/jp/keeperpam/commander-cli/overview)では管理機能に重点を置いています。
{% endhint %}

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FHVBfegZFd4J7YU9f9CQh%2Fimage.png?alt=media&#x26;token=f8f86077-ae15-47e7-83cd-3c81f22b34ee" alt=""><figcaption></figcaption></figure>

## アプリケーションとクライアントデバイスの設定

シークレットマネージャーCLIまたはKeeperボルトに保存されたシークレットにアクセスするための環境変数置換を使用するには、まずアプリケーションとクライアントデバイスを設定する必要があります。 [クイックスタートガイド](https://docs.keeper.io/jp/keeperpam/secrets-manager/quick-start-guide)をご参照の上設定してください。

## シークレットマネージャーCLIのインストール

KSM CLIは、Windows/Mac/Linux用のバイナリアプリケーションとして、またはPython環境用のpip3インストールとしてご利用になれます。

#### バイナリのインストール方法

最新のバイナリリリースは、[GitHubリポジトリ](https://github.com/Keeper-Security/secrets-manager/releases?q=cli\&expanded=true)で入手できます。ご利用のオペレーティングシステムに合わせてインストーラーをダウンロードしてください。

:arrow\_down:[**Secrets Manager CLIバイナリのダウンロード**](https://github.com/Keeper-Security/secrets-manager/releases?q=cli\&expanded=true)

WindowsまたはMacOSでCLIを起動すると、CLIはシェルモードで実行されます。`ksm`コマンドは、コマンドラインから引き続きご利用になれます。

Linuxバイナリは単なる実行可能ファイルなので、**PATH**のディレクトリに移動する必要があります。

### Dockerのインストール方法

KeeperのDockerイメージからのインストールとセットアップについては、[Dockerコンテナ](https://docs.keeper.io/jp/keeperpam/secrets-manager/secrets-manager-command-line-interface/docker-container)のページをご参照ください。

### Pip3とPython3のインストール方法

Python 3.xがインストールされていることをご確認ください。 インストールされていない場合は、OS固有のパッケージマネージャを使用してインストールします。

```
sudo yum install python3
```

pip3が最新であることを確認します。

```
sudo pip3 install --upgrade pip
```

これで、シークレットマネージャーCLIをインストールできます。

```
sudo pip3 install keeper-secrets-manager-cli
```

以下は最新バージョンにアップグレードするコマンドとなります。

```
sudo pip3 install -U keeper-secrets-manager-cli keeper-secrets-manager-core
```

この方法でCLIをシステムのPythonにインストールします。rootまたは管理者権限がない場合は、**virtualenv**を設定してCLIをインストールできます。**virtualenv**を使用しない場合は、LinuxまたはMac OSでは、モジュールとバイナリ&#x306F;**$HOME/.local**ディレクトリにインストールされます。**bin**ディレクトリへの**PATH**を含める必要がある場合があります。

詳しくはこちらの[Pythonパッケージウェブサイト](https://pypi.org/project/keeper-secrets-manager-cli/)をご参照ください。

#### virtualenvを使用したKSMのインストール

virtualenvを使用することで、クリーンに分離された環境にKSMをインストールできます。

```
sudo pip3 install virtualenv
```

```
virtualenv -p python3 my_env
```

```
source my_env/bin/activate
```

続いて、仮想環境にksmをインストールします

```
pip3 install keeper-secrets-manager-cli
```

### ソースコード

[GitHubリポジトリ](https://github.com/Keeper-Security/secrets-manager/tree/master/integration/keeper_secrets_manager_cli)でKeeperシークレットマネージャーCLIのソースコードを検索します。

### 使用方法

`ksm` CLIツールは、以下の目的に使用できます。

* Github Actionsなどの統合機能で使用するための設定ファイルの初期化 (init)
* クライアントデバイスとしてコマンドを実行するためのローカルプロファイルの作成 (profile)
* Keeperボルトの照会とシークレットの取得 (secret)
* 環境変数を置換するためのコマンドラインアプリケーションのラップ (exec)

```bash
ksm
```

```markup
Usage: ksm [OPTIONS] COMMAND [ARGS]...

  Keeper Secrets Manager CLI  Version:X.X.X

Options:
  --ini-file TEXT                INI config file.
  -p、--profile-name TEXT        Config profile
  -o、--output TEXT              Output [stdout|stderr|filename]
  -c、--color / -nc、--no-color  Use color in table views, where applicable.
  --cache / --no-cache           Enable/disable record caching.
  --help                         Show this message and exit.

Commands:
  config   Configure the command line tool
  exec     Wrap an application and replace env variables
  init     Initialize a configuration file for integrations
  profile  Manage local client device profiles
  quit     Quit shell mode
  secret   Query the Keeper vault and retrieve secrets
  shell    Run KSM in a shell
  version  Get module versions and information.

```

### ローカルクライアントデバイスの作成 <a href="#create-a-local-client-device" id="create-a-local-client-device"></a>

CLIは、`ksm profile init`コマンドでワンタイムアクセストークンを渡すことによって、クライアントデバイスとして初期化されます。初期化後、CLIを使用してシークレットを取得できます。 以下の例では、「XX:XXXX」をクライアントデバイスのワンタイムアクセストークンに置き換えます。

```
ksm profile init XX:XXXX
```

```
ksm secret list
```

自動起動を使用してコンテナ内でCLIを利用できるようにしている場合、またはprofile initを実行したくない場合は、以下のように**KSM\_TOKEN**を設定するとプロファイルを自動作成できます。

```
KSM_TOKEN="XX:XXXX" ksm secret list
```

環境変数を設定して、コマンドラインのフラグを減らすことができます。

| 環境変数名                 | 説明                                                                                        |
| --------------------- | ----------------------------------------------------------------------------------------- |
| **KSM\_TOKEN**        | クライアントデバイスの初期化に使用されるワンタイムアクセストークン                                                         |
| **KSM\_HOSTNAME**     | Keeper環境のホスト。US、EU、AU、JP、CA、US\_GOV、または完全なURLのいずれか。トークンにはホスト名が含まれるため、この変数はほとんどの場合使用されません。 |
| **KSM\_INI\_DIR**     | CLIのINI設定ファイルが格納されているディレクトリ。                                                              |
| **KSM\_INI\_FILE**    | CLIのINI設定ファイルの名前。                                                                         |
| **KSM\_CLI\_PROFILE** | CLIの有効なプロファイル。                                                                            |
| **KSM\_CONFIG**       | Base64設定文字列。CLIはこれをデフォルトプロファイルに使用します。                                                     |

## コマンドの実行

Keeperシークレットマネージャーのコマンドは、コマンドラインか&#x3089;**`ksm`**&#x30D7;ログラムを使用して実行されます。

**`ksm <コマンド> <サブコマンド> <オプション>`**

特定のコマンドのヘルプを表示するには、以下のコマンドを実行します。

`ksm <コマンド> --help`

サブコマンドのヘルプを表示するには、以下のコマンドを実行します。

`ksm <コマンド> <サブコマンド> --help`

| コマンド      | 説明                   |
| --------- | -------------------- |
| `secret`  | ボルトからシークレットを取得します    |
| `folder`  | フォルダを管理します           |
| `profile` | ローカル設定プロファイルを管理します   |
| `init`    | ワンタイムアクセストークンを初期化します |
| `exec`    | 環境変数を置換してスクリプトを実行します |
| `config`  | CLI設定を管理します          |
| `version` | CLIのバージョン情報を表示します    |
| `shell`   | CLIを対話型シェルモードで起動します  |
| `quit`    | シェルモードを終了します         |

**オプション**

`--ini-file </path/to/keeper.ini>`

keeper.ini設定ファイルを設定します。設定されていない場合、CLIは\_keeper.ini\_ファイルがないか以下のディレクトリを調べます。

* 環境変&#x6570;**`KSM_INI_DIR`**&#x3067;定義されたパス
* カレントディレクトリ
* ユーザーのホームディレクトリ
  * `${HOME}`
  * `${HOME}/.config/ksm`
  * `$env:USERPROFILE`
* 様々なシステムディレクトリ
  * `/etc`
  * `/etc/ksm`
  * `/etc/keeper`
  * `$env:APPDATA/Keeper`
  * `$env:ProgamData/Keeper`
  * `$env:ProgramFiles/Keeper`

`-p、--profile-name <名前>` 指定した設定プロファイルを使用します

`-o、--output <{stdout, stderr, filename}>` 出力先を設定します

* `stdout` - 標準出力に出力します (デフォルト)
* `stderr` - 標準エラーに出力します
* `<filename>` - 指定したテキストファイルに出力を送信します

`--color/--no-color、-c/-nc` 出力インスタンスの色を有効化または無効化します

`--cache/--no-cache` このコマンドインスタンスの記録のキャッシュの使用を有効化または無効化します。
