# シークレットマネージャーコマンド

## 概要 <a href="#overview" id="overview"></a>

Keeperシークレットマネージャーは、DevOpsチームとエンジニアリングチームが特権アカウントへのアクセスを一元的に管理および制御するための、クラウドベースのゼロ知識プラットフォームです。以下は、シークレットマネージャーの一般的な使用例となります。

* ソースコード、設定ファイル、CI/CDシステムからのハードコードされたクレデンシャルの削除
* 特権パスワード、APIキー、およびその他の管理対象シークレットへのアクセス保護
* マシンやアプリケーションへのボルトアクセスの提供
* オンデマンドで、またはスケジュールを組んでサービスアカウントの認証情報をローテーション

Keeperシークレットマネージャーでは、Keeperボルト内の特定のフォルダにアクセスする必要のある各対象環境に対して「アプリケーション」が作成されます。 アプリケーションに対して、ボルト内の1つまたは複数の共有フォルダやレコードへのアクセス権を付与できます。アプリケーションは、1つまたは複数の「クライアント」から利用できます。クライアントはシークレットマネージャーインフラストラクチャによって個別に認証および管理されます。

たとえば、Keeperの「アプリケーション」が運用システムとなり、運用システム内の個々のウェブサーバーがクライアントになる場合もあります。各クライアントは、リクエストの署名に使用するクライアントIDと秘密鍵を使用して、Keeperボルトに対して認証されて通信します。

本ページのコマンドを使用して、Keeperシークレットマネージャーアプリケーションとクライアントデバイスを設定します。

### Keeperシークレットマネージャーのコマンド

対話型シェル、CLI、JSON構成ファイルのいずれを使用する場合でも、以下のコマンドがサポートされており、各コマンドでは追加のパラメータとオプションがご利用になれます。

特定のコマンドに関するヘルプを表示するには、以下のように入力します。

```
bashCopyEdithelp <コマンド名>
```

#### コマンド形式

Keeperシークレットマネージャーのコマンドは、以下の形式に従います。

```
php-templateCopyEditsecrets-manager <コマンド> <サブコマンド>
```

たとえば、すべてのアプリケーションを一覧表示するには、以下のコマンドを実行します。

```
CopyEditsecrets-manager app list
```

以下は、すべての`secrets-manager`コマンドとその詳細の一覧です。

| コマンド                            | 説明                                                     |
| ------------------------------- | ------------------------------------------------------ |
| `secrets-manager app list`      | アプリケーション一覧を表示。App UID、最終アクセス日時、割り当てられたレコード/フォルダ数を確認可能。 |
| `secrets-manager app get`       | アプリケーションの詳細情報 (デバイス情報を含む) を取得。                         |
| `secrets-manager app create`    | 新しいアプリケーションを作成。                                        |
| `secrets-manager app remove`    | アプリケーションを削除。                                           |
| `secrets-manager app share`     | アプリケーションおよび関連ゲートウェイ/構成を他のユーザーと共有。                      |
| `secrets-manager app unshare`   | ユーザーからアプリケーションの共有を解除。                                  |
| `secrets-manager client add`    | アプリケーションに関連付けられたデバイスまたはマシンIDを作成。                       |
| `secrets-manager client remove` | デバイスを削除。                                               |
| `secrets-manager share add`     | フォルダまたはレコードをアプリケーションに関連付け。                             |
| `secrets-manager share remove`  | アプリケーションからフォルダまたはレコードの関連付けを解除。                         |

***

### APIフローの例

以下は、アプリケーションの作成、シークレットの割り当て、マシンデバイスの作成を行う一連のAPI操作例です。

### アプリケーションを作成

`secrets-manager app create <APPLICATION NAME>`

```bash
My Vault> secrets-manager app create MyApplication
```

### 新しいシークレットを作成

ボルトのユーザーインターフェースから実行できますが、ここではシークレットを作成し、共有フォルダを作成してから、そのシークレットを共有フォルダに移動することにします。以下はコマンドの例です。

```bash
My Vault> add --login admin --pass "46$$625" --url "192.168.1.1" -t "Test Secret"
My Vault> mkdir -sf -a "My Shared Folder"
My Vault> mv "Test Secret" "My Shared Folder"
```

### フォルダをシークレットマネージャーアプリケーションで共有

{% code overflow="wrap" %}

```bash
My Vault> secrets-manager share add --app MyApplication --secret n4QtaKjRjhWMz5aS7bT77Q
```

{% endcode %}

{% hint style="info" %}
共有フォルダまたはレコードUIDを検索するには、「ls -l」コマンドまたは「info」ダイアログのボルトのユーザーインターフェースを使用します。
{% endhint %}

### クライアントにアプリケーションへのアクセスを許可

```bash
My Vault> secrets-manager client add MyApplication
```

{% hint style="info" %}
このコマンドの出力から、クライアントで使用するワンタイムアクセストークンが得られます。
{% endhint %}

### すべてのアプリケーションの一覧を取得

`secrets-manager app list`

```bash
My Vault> secrets-manager app list

List of all Applications

Title      Uid
---------  ----------------------
PythonApp  oXMfwo-hzZNRqMXGvJlccQ
TestApp    KtU4eAzor5IpqRW3x4A8FA
```

### 個々のアプリケーションの詳細を表示

`secrets-manager app get <APPLICATION NAME|APP UID>`

```bash
My Vault> secrets-manager app get MyApplication

Secrets Manager Application
App Name:MyApplication
App UID: ji__h4gaY3xvQdatVY_ffA

Client Device 1
=============================
  Name:Device1
  Short ID: nWThUIbR
  Created On:2021-10-11 16:26:21
  First Access:2021-10-11 16:27:05
  Last Access:2021-10-11 16:49:47
  IP Lock:Disabled
  IP Address: --

Application Access
Share Type    UID                     Title                   Permissions
------------  ----------------------  ----------------------  -------------
FOLDER        J6xMIXKiwMqIyYJL7kd3xw  Secrets                 Editable
RECORD        mux0ZaWKd-h8maggFzy1rw  Database Login          Read-Only

```

## コマンド

### secrets-manager app createコマンド <a href="#ksm-app-create-command" id="ksm-app-create-command"></a>

**コマンド:** `secrets-manager app create`

**詳細:** クライアントをシークレットに関連付けるために使用する新しいアプリケーションを作成します

**パラメータ:**

アプリケーションの名前

**例:**

```bash
My Vault> secrets-manager app create PythonApp
Application was added successfully
```

### secrets-manager app getコマンド <a href="#ksm-app-get-command" id="ksm-app-get-command"></a>

**コマンド:** `secrets-manager app get`

**詳細:** 指定したアプリケーションに関する情報を表示します

**パラメータ:**

アプリケーションの名前またはUID

**例:**

```bash
My Vault> secrets-manager app get PythonApp

Secrets Manager Application
App Name:PythonApp
App UID: ji__hxgaY3xvQdefVY_ffA

Client Device 1
=============================
  Name:Device1
  Short ID: nWThUIbR
  Created On:2021-10-11 16:26:21
  First Access:2021-10-11 16:27:05
  Last Access:2021-10-11 16:49:47
  IP Lock:Disabled
  IP Address: --

Application Access
Share Type    UID                     Title                   Permissions
------------  ----------------------  ----------------------  -------------
FOLDER        J62WIXgJwMqIyYJL7kd3xw  Secrets                 Editable
RECORD        mux0ZaWKd-vpmaggFzLkrw  Database Login          Read-Only
```

### secrets-manager app removeコマンド <a href="#ksm-app-remove-command" id="ksm-app-remove-command"></a>

**コマンド:** `secrets-manager app remove`

**詳細:** アプリケーションを削除します

**パラメータ:**

アプリケーションの名前またはUID

**例:**

```bash
My Vault> secrets-manager app remove PythonApp

This Application (uid:2lj-PaoQp281mTV7GWK5Bw) has 5 client(s), 1 shared folder(s), and 10 record(s).
	Are you sure you want to delete this application [y/n]: >? y
>? y
Removed Application uid:2lj-PaoQp281mTV7GWK5Bw

My Vault> secrets-manager app remove KtU4eAzor5IpqRW3x4A8FA
This Application (uid:KtU4eAzor5IpqRW3x4A8FA) has 12 client(s), 1 shared folder(s), and 4 record(s).
	Are you sure you want to delete this application [y/n]: >? y
>? y
Removed Application uid:KtU4eAzor5IpqRW3x4A8FA
```

### secrets-manager app shareコマンド <a href="#secrets-manager-app-share-command" id="secrets-manager-app-share-command"></a>

{% hint style="warning" %}
アプリケーションを他のユーザーと共有することで、そのユーザーは関連するゲートウェイ、デバイス、フォルダへのアクセスが可能になります。
{% endhint %}

* **コマンド**\
  `secrets-manager app share`
* **概要**\
  アプリケーションと、それに関連するゲートウェイおよび構成を別のユーザーと共有します。
* **パラメータ**
  * アプリケーションの名前またはUID
  * 共有相手のメールアドレス
* **使用例**

  ```bash
  secrets-manager app share KtU4eAzor5IpqRW3x4A8FA --email user@company.com
  ```

### secrets-manager app unshareコマンド

* **コマンド**\
  `secrets-manager app unshare`
* **概要**\
  指定したユーザーに対するアプリケーションの共有を解除します。
* **パラメータ**
  * アプリケーションの名前またはUID
  * 共有を解除する対象ユーザーのメールアドレス
* **使用例**

  ```bash
  secrets-manager app unshare KtU4eAzor5IpqRW3x4A8FA --email user@company.com
  ```

### secrets-manager app listコマンド <a href="#ksm-app-list-command" id="ksm-app-list-command"></a>

**コマンド:** `secrets-manager app list`

**詳細:** すべての作成済みアプリケーションを一覧表示します

**例:**

```bash
My Vault> secrets-manager app list

List of all Applications

Title      Uid
---------  ----------------------
PythonApp  oXMfwo-hzZNRqMXGvJlccQ
TestApp    KtU4eAzor5IpqRW3x4A8FA

```

### secrets-manager share addコマンド <a href="#ksm-share-add-command" id="ksm-share-add-command"></a>

**コマンド:** `secrets-manager share add`

**詳細:** シークレット (レコードまたは共有フォルダ) をアプリケーションに追加します

**スイッチ:**

\--secret、-s <シークレットのUID> 共有するシークレット。フォルダまたはレコードUIDを指定できます

\--app、-a 共有先のアプリケーション

\--editable、-e レコードの編集を許可します

**例:**

```bash
My Vault> secrets-manager share add --app PythonApp --secret="-XMfwo-hzZNRqMXGvJlccQ"
Successfully added new record uid=E7YS6Yqmhsip52DzwdC9gw to app uid=oXMfwo-hzZNRqMXGvJlccQ
```

### secrets-manager share removeコマンド <a href="#ksm-share-remove-command" id="ksm-share-remove-command"></a>

**コマンド:** `secrets-manager share remove`

**詳細:** シークレット (レコードまたは共有フォルダ) をアプリケーションから削除します

**スイッチ:**

\--secret、-s <シークレットのUID> 共有するシークレット。フォルダまたはレコードUIDを指定できます

\--app、-a 共有先のアプリケーション

**例:**

```bash
My Vault> secrets-manager share remove --app PythonApp --secret="-XMfwo-hzZNRqMXGvJlccQ"
Secret share was successfully removed from the application
```

### secrets-manager client addコマンド <a href="#ksm-client-add-command" id="ksm-client-add-command"></a>

**コマンド:** `secrets-manager client add`

**詳細:** アプリケーションへの接続に使用するクライアントをアプリケーションに追加します。このコマンドの出力は、シークレットマネージャーSDKを使用してクライアントデバイスを初期化するために使用するワンタイムトークンです。

**スイッチ:**

\--name <クライアント名> クライアント名 (デフォルトはランダムな10文字)

\--first-access-expires-in-min <分> 初回アクセスの有効期間 (デフォルトは60

、最大は1440)

\--access-expire-in-min <分> クライアントアクセスの有効期間 (デフォルトは無期限)

\--unlock-ip 最初に要求するデバイスに対してIPアドレスをロックしません

\--count <数> 生成するトークンの数 (デフォルトは1)

\--config-init <{json、b64、k8s}> ワンタイムトークンから設定文字列を初期化します

\--name <名前> クライアントの名前

**例 1.** 「Test 1」という名前の新しいデバイスを作成し、ワンタイムアクセストークンを生成します。

```bash
My Vault> sm client add --app Ansible --name "Test 1"

Successfully generated Client Device
====================================
One-Time Access Token:US:_wYNCeeLmBSdDgkcE77NyMcO-6DqLutNO1NylWVyco
Name:Test 1
IP Lock:Enabled
Token Expires On:2021-09-30 22:52:46
App Access Expires on:Never

```

**例 2.** 「Test 2」という名前の新しいデバイスを作成し、IPロックなしの完全に初期化されたJSON設定ファイルを生成します。この設定ファイルは、デバイスに直接読み込めます。

```bash
My Vault> sm client add --app Ansible --name "Test 2" --unlock-ip --config-init=json                                                                                    

Successfully generated Client Device
====================================

Initialized Config: {"hostname": "keepersecurity.com","clientId":"XXX","privateKey":"XXX","serverPublicKeyId":"10","appKey":"XXX"}
Name:Test 2
IP Lock:Disabled
Token Expires On:2021-09-30 22:54:11
App Access Expires on:Never
```

**例 3.** 「Test 3」という名前の新しいデバイスを作成し、IPロックなしの完全に初期化されたbase64設定文字列を生成します。この設定ファイルは、JSON設定ファイルを使用する代わりに、単一の文字列としてデバイスに読み込めます。

```bash
My Vault> sm client add --app Ansible --name "Test 3" --unlock-ip --config-init=b64                                                                                    

Initialized Config: eyJob3N0bmFtJjbGllbnRJZCI6I3lHbXZodUZFITEhBbDhBRmVHK1owSDcrN2czOVMvNGkvTU1lcVhhVi92cTc4S3FqM2VuZkdtQkQzNmhsQT09IiweXFHU000OUFnRUdDQ3FHU000OUF3RUhCRzB3YXdJQkFRUWdqN2diVXM2bXVl0bXA0WjlnR0ttaFJBTkNBQVNrdTZCN3dPclpXSGdhR1lzNE1uRGNyZE5xdXYyRkYmNQWTF3S090ZHppME03c05PTnA4cXppU0VLejhUUGVTIiwic2VydmVyUHVibGljS2V5SWQiOiAiMTAiLCJhcHBLZXkiOiAiUFlqdlcrVTqdUljdUh6UzJHcz0ifQ==
Name:Test 3
IP Lock:Disabled
Token Expires On:2021-09-30 22:59:09
App Access Expires on:Never
```

**例 4.** 「Test 4」という名前の新しいデバイスを作成し、IPロックなしの完全に初期化されたKubernetes設定を生成します。YAML出力は、ファイルにカットアンドペーストして適用し、Kubernetesシークレットとして作成できます。

```bash
My Vault> sm client add --app Nginx --name "Test 4" --unlock-ip --config-init=k8s                                                                                

apiVersion: v1
data:
  config: eyJob3N0bmFtJjbGllbnRJZCI6I3lHbXZodUZFITEhBbDhBRmVHK1owSDcrN2czOVMvNGkvTU1lcVhhVi92cTc4S3FqM2VuZkdtQkQzNmhsQT09IiweXFHU000OUFnRUdDQ3FHU000OUF3RUhCRzB3YXdJQkFRUWdqN2diVXM2bXVl0bXA0WjlnR0ttaFJBTkNBQVNrdTZCN3dPclpXSGdhR1lzNE1uRGNyZE5xdXYyRkYmNQWTF3S090ZHppME03c05PTnA4cXppU0VLejhUUGVTIiwic2VydmVyUHVibGljS2V5SWQiOiAiMTAiLCJhcHBLZXkiOiAiUFlqdlcrVTqdUljdUh6UzJHcz0ifQ==
kind:Secret
metadata:
  name: ksm-config
  namespace: default
type:Opaque

Name:Test 4
IP Lock:Disabled
Token Expires On:2021-09-30 22:59:09
App Access Expires on:Never
```

### secrets-manager client removeコマンド <a href="#ksm-client-remove-command" id="ksm-client-remove-command"></a>

**コマンド:** `secrets-manager client remove`

**詳細:** アプリケーションからクライアントを削除します

**スイッチ:**

\--client アプリケーションから削除するクライアント

\--app、-a アプリケーション

\--force 承認を求めません

**例:**

```bash
My Vault> secrets-manager client remove --app PythonApp --client MyClient
Are you sure you want to delete 3 matching clients from this application? [y/n]:
>? y
Client removal was successful
```


---

# 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/secrets-manager-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.
