# トラブルシューティング

## アクセスの拒否

コマンダーでシークレットマネージャーコマンドを実行しようとすると、ツールから`access_denied`と表示されます

**解決策**

Keeperシークレットマネージャーを利用するには、以下の2つの権限条件を満たす必要があります。

1. Keeperアカウントのシークレットマネージャーアドオンを有効にすること
2. シークレットマネージャー強制ポリシーが有効化されたロールが割り当てられていること

### シークレットマネージャーアドオンの有効化

シークレットマネージャーは、[Keeper管理コンソール](https://docs.keeper.io/enterprise-guide/getting-started-with-keeper-admin-console)の「安全なアドオン」セクションから追加できます。

### シークレットマネージャー強制適用ポリシーの有効化

[Keeper管理コンソール](https://docs.keeper.io/enterprise-guide/getting-started-with-keeper-admin-console)で、ロールポリシーを使用して、ロールにシークレットマネージャーを追加します。 新しいロールを選択または作成し、強制適用ポリシー設定を開いて、**\[特権アクセス管理]**&#x30BF;ブに移動し、そのロールに対してシークレットマネージャーを許可または禁止します。

シークレットマネージャーが許可されたロールに属するユーザーには、Keeperボルトでシークレットマネージャータブが表示され、シークレットマネージャーアプリケーションとデバイスの作成および管理ができます。

<details>

<summary>Keeper CommanderによるSecrets Managerの有効化</summary>

ロールを作成および編集するには、Keeperアカウントの管理上の許可が必要です。

Secrets Manager強制ポリシーを有効にするには、[Keeper Commander](https://github.com/Keeper-Security/gitbook-jp-secrets-manager/blob/main/secrets-manager/broken-reference/README.md)で次のコマンドを使用します。

```
er --enforcement="allow_secrets_manager:true" "<ROLE NAME>"
```

を強制ポリシーを設定したいロールに置き換えます。

たとえば、Keeper管理者ロールに強制を設定するには、次のようにします。

```
er --enforcement="allow_secrets_manager:true" "Keeper Administrator"
```

ロールの作成と編集、およびユーザーのロールへの追加の詳細は、[エンタープライズ管理コマンドのドキュメント](https://docs.keeper.io/keeperpam/commander-cli/command-reference/enterprise-management-commands)をご参照ください。

</details>

## 「-」で始まるUIDレコード

レコードまたはフォルダUIDを入力として使用するコマンドをKSM CLIで実行する場合、コマンドラインインターフェースは、「-」で始まるUIDとコマンドのオプションを区別できません。 使用しているUIDが「-」 (ダッシュ/ハイフン) で始まる場合は、**UIDの前に「--」を追加**するだけで使用できます。

例:\
\
`ksm secret get -- -id8QpE2ZAkdd4KlCfoWQ`

\*この例のUIDは実際のレコードUIDではありません

## レコードが見つかりません

シークレットマネージャーを使用してシークレットを取得しようとすると、レコードが見つからなかったと表示されます。

**解決策**

このメッセージが表示される理由は、以下の2つが考えられます。

1. 検索対象のレコードがシークレットマネージャーアプリケーションで共有されていません。
2. レコードがタイプ指定されていない従来の (V2) 記録です。

### シークレットマネージャーでレコードを共有

個々のレコードをシークレットマネージャーアプリケーションで共有することも、共有フォルダをシークレットマネージャーアプリケーションで共有することもできます。これにより、そのフォルダ内のすべてのレコードにアクセスできるようになります。

シークレットマネージャーアプリケーションでレコードまたは共有フォルダを共有するには、コマンダーで以下のコマンドを使用します。

```
sm share add -a <APPLICATION NAME> -s <RECORD OR FOLDER UID>
```

### タイプ指定されたレコードを識別

Keeperシークレットマネージャーでは、タイプ指定されたレコード (V3) のみがサポートされています。 タイプ指定されていない従来のレコードを照会すると、シークレットマネージャーはレコードが見つからないと応答します。

コマンダーでレコードが入力されているか否かを確認するには、`get` コマンドを使用します

```
get <UID>
```

レコードにタイプが設定されている場合 (シークレットマネージャーと互換性がある) は、レコードの情報に表示されます。

```
my vault> get pICzm4iw9sW454m2ZR4mmQ

                 UID: pICzm4iw9sW454m2ZR4mmQ
                Type: login
               Title:My Login
             (login): john.doe
          (password):N*3s.kk/Ji20}cJ7
              Shared:False
       Last Modified:2021-10-18 16:08:04
            Revision:887800170
```

レコードがタイプ指定されていない場合 (シークレットマネージャーと互換性がない) は、Typeフィールドが表示されません。

また、`ls -l` コマンドを使用して、現在のフォルダ内のすべてのレコードを表示できます。 結果表示されたテーブルには、タイプ列があります。 タイプ列が空白のレコードはすべて、タイプ指定されていないレコードです。

```
My Vault> ls -l
  #  Folder UID              Name               Flags
---  ----------------------  -----------------  -------
  1  RpdmergF5lpsaID3TcHu8A  Devops Secrets     S
  2  461XtX26R1SggIyQDFGfZg  Secrets            S
  3  ZDw67iL28d6-YqUVwBHAug  Social

  #  Record UID              Type                 Title                    Login                  URL
---  ----------------------  -------------------  -----------------------  ---------------------  -------------------
  1  FyP2it0DzwIDPSbch2WyHw  address              Bank Address 1
  2  pICzm4iw9sWS_4m2ZR4mmQ  login                breached                 john.doe@example.com    keepersecurity.com
  3  qUX4gSlmDRfM1Kq9lrQi-w  databaseCredentials  MySQL Database           SQL_Admin
  4  rlr04tiSxFmLmRNjEC7h7Q                       NonTyped Record          legacy                  test.com
```

上の例では、一番下のレコード (#4) はタイプ指定されていないので、シークレットマネージャーとの互換性がありません。

### タイプ指定されたレコードの作成

タイプ指定されたレコードは、ボルトの **\[新規作成]** をクリックするか、またはコマンダーの[record-addコマンド](https://docs.keeper.io/keeperpam/commander-cli/command-reference/record-commands#record-add-and-record-update-commands)を使用して作成できます。

{% hint style="warning" %}
レコードタイプを選択する際、「一般」タイプを除くすべてのタイプでシークレットマネージャーと互換性があります。

一般タイプのレコードは、従来のタイプ指定されていないレコードと同じ扱いになります。
{% endhint %}

**既存のレコードを置きかえる**

タイプ指定されていない既存のレコードをシークレットマネージャーで使用したい場合は、タイプを「ログイン」にしてレコードを作成し、そのレコードに情報をコピーすることをお勧めします。

ログインタイプのレコードには、従来のタイプ指定されていないKeeperのレコードと同じフィールドがあります。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FNJL34fRdHUZ3Dc6EmzDv%2Fimage.png?alt=media&#x26;token=4ede4b70-6db4-4ff9-bfdf-98febccebd52" alt=""><figcaption><p>従来のKeeperのレコードと同じフィールドがあるログインタイプのレコード</p></figcaption></figure>

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FtBwj9aJ7t4eqOmohQKxt%2Fimage.png?alt=media&#x26;token=efe1493a-85d5-4d02-8a4e-737cd8435ee9" alt=""><figcaption><p>タイプ指定された新しいレコードにフィールドとファイルをコピー</p></figcaption></figure>

タイプ指定された新しいレコードをシークレットマネージャーアプリケーションがアクセスできる共有フォルダに配置するか、UIDを使用してアプリケーションで直接共有します。

### タイプ指定されていないレコードの変換

タイプ指定されていないレコードは、Keeperコマンダーの `convert` コマンドを使用して、シークレットマネージャーが利用できるタイプ指定されたレコードに変換できます。

形式

`convert <UID> --type <TYPE>`

例

```
convert Dtvb84zwkBmZgxrUByUfpg --type login
```

convertコマンドは、パターンを使用してす該当するすべてのレコードを検索し、すべてのサブフォルダに変換を適用でき、すべてのレコードタイプをサポートします。

`convert` コマンドの使用方法の詳細は、[こちらのページ](https://docs.keeper.io/jp/keeperpam/commander-cli/command-reference/record-commands/record-type-commands#convert-command)をご参照ください。

## スロットリング

KeeperシークレットマネージャーAAPIは、デバイスIDに基づいてリクエストを制限します。接続が制限されると、503のレスポンスコードなどのエラーが返されます (実際のメッセージは使用している統合機能やSDKによって異なります）。

### レート制限の詳細

シークレットマネージャーAPIは、10秒の間隔を置かずに200回を超える呼び出しを行うシステムに制限を設けています。

このカウントは、10秒タイマーが切れるとリセットされますが、10秒以内に次のリクエストが送信されるたびにタイマーが更新されます。そのため、10秒間の間隔を置かなければシステムは引き続き制限されます。

スロットリングされる可能性のある場合の例

* 10秒以内に201回呼び出した場合
* 9秒ごとに1回呼び出し、201回目の呼び出しを行った場合

スロットリング制限を解決する方法

* リクエストを送信する各マシンに対して追加のデバイスIDを生成する
* 200回の呼び出しごとにリクエストを10秒間一時停止する

{% hint style="info" %}
スロットリング制限の変更が必要な場合は、Keeperチーム (<commander@keepersecurity.com>) にお問い合わせください。
{% endhint %}
