# Entrust HSM

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Foz68VCCNfafMJ37epiHL%2Fimage.png?alt=media&#x26;token=78c1b8d1-729d-4bf0-b954-a2c43d46993d" alt=""><figcaption></figcaption></figure>

Keeperシークレットマネージャーは、Entrust HSMと統合することで、Keeperシークレットマネージャーの構成ファイルを暗号化できます。この統合により、マシン上の接続情報を保護しながら、すべてのシークレット認証情報に対してKeeperのゼロ知識暗号化を活用できます。

## 機能

* Entrust HSMを使用して、KSM構成ファイルを暗号化および復号化します。
* シークレットマネージャーの接続への不正アクセスから保護します。
* コードにわずかな変更を加えるだけで保護できます。 KSM Python SDKのすべての機能を使用できます。

## 要件

* [Python Secrets Manager SDK](/keeperpam/jp/secrets-manager/developer-sdk-library/python-sdk.md)に対応
* Pythonモジュールは、nShieldネイティブアプリケーションとしてビルドする必要があります。
  * Entrust nShieldソフトウェア (Security World 12.80以降) のSDK ISOイメージのPython (v3.8.5) モジュールとnfpythonモジュールを使用
* Virtualenvを推奨

## セットアップ

### 1. Virtualenvを作成して構成

この手順はオプションですが、開発環境では推奨されます。

{% tabs %}
{% tab title="Linux" %}
virtualenv作業環境を作成します

`/opt/nfast/python3/bin/python3 -m venv --copies venv`

開発を始める前にvirtualenv環境を有効化します

`. venv/bin/activate`
{% endtab %}

{% tab title="Windows" %}
virtualenv作業環境を作成します

`c:\Program Files\nCipher\nfast\python3\python --copies -m venv venv`

開発を始める前にvirtualenv環境を有効化します

`venv\Scripts\activate.ps1`
{% endtab %}
{% endtabs %}

### 2. KSMストレージとnfpythonモジュールのインストール

シークレットマネージャーHSMモジュールは、Keeperシークレットマネージャーストレージモジュールに格納されており、pipを使用してインストールできます。

```
pip3 install keeper-secrets-manager-storage
```

Entrust HSMを利用するには、nfpythonパッケージもインストールする必要があります。 このパッケージは、EntrustインストールでnShieldパッケージの一部としてインストールされます。

Linuxの場合

```
pip install /opt/nfast/python3/additional-packages/nfpython*.whl 
```

Windowsの場合

```
pip install c:\Program Files\nCipher\nfast\python3\additional-packages\nfpython*.whl
```

### 3. Entrust HSMストレージをコードに追加

`SecretsManager`コンストラクタで、`HsmNfastKeyValueStorage`をシークレットマネージャーストレージとして使用します。

`HsmNfastKeyValueStorage`には、メソッドとID (この例ではそれぞれ「simple」と「ksmkey」) が必要です。

{% code title="entrust\_hsm\_example.py" %}

```python
from keeper_secrets_manager_core import SecretsManager
from keeper_secrets_manager_hsm.storage_hsm_nfast import HsmNfastKeyValueStorage

config=HsmNfastKeyValueStorage('simple', 'ksmkey', 'client-config.json')

secrets_manager = SecretsManager(config=config, verify_ssl_certs=True)

all_records = secrets_manager.get_secrets()

```

{% endcode %}

{% hint style="success" %}
これで、シークレットマネージャーとEntrust NShield HSMを連携する準備が整いました。
{% endhint %}

## シークレットマネージャーとEntrust HSMの連携

設定が完了すると、シークレットマネージャーとEntrustの連携により、シークレットマネージャーSDKのすべての機能が利用できるようになります。 実行時に設定ファイルの復号化を管理するには、コードがnShield HSMにアクセスできる必要があります。

{% hint style="info" %}
その他の例と機能については、[KSM SDKのドキュメント](/keeperpam/jp/secrets-manager/developer-sdk-library.md)をご参照ください。
{% endhint %}

### テスト用の暗号化キーの作成

Entrust nShield HSMによる暗号化をテストするには、以下のコマンドを使用します。

これらの例の「ksmkey」は、HSM内のIDに置き換えてください。

Linuxの場合

```bash
opt/nfast/bin/generatekey -b simple protect=module type=AES size=256 ident=ksmkey
```

Windowsの場合

{% code overflow="wrap" %}

```bash
c:\Program Files\nShield\nfast\bin\generatekey -b simple protect=module type=AES size=256 ident=ksmkey
```

{% endcode %}


---

# 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/keeperpam/jp/secrets-manager/integrations/entrust-hsm.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.
