Entrust HSMでの暗号化

Entrust HSMでシークレットマネージャーの接続情報をローカルで保護

Keeper Secrets ManagerはEntrust HSMと連携して、Keeper Secrets Managerの設定ファイルを保護します。 この連携により、マシン上の接続に関する詳細情報を保護しながら、すべてのシークレットのクレデンシャルに対して、Keeperのゼロ知識暗号化を利用できます。

機能

  • Entrust HSMを使用して、KSM設定ファイルを暗号化および復号化します

  • Secrets Manager接続に対する不正アクセスから保護します

  • 必要なのはコードにわずかな変更を加えるだけで、即座に保護できます。 KSM Python SDKのすべての機能を使用できます

要件

  • Python 3.9.2以降が必要

  • Pythonモジュールは、SDK ISOイメージの nfpython モジュールを使用してnShieldネイティブアプリケーションとしてビルドする必要があります (Entrust nShield Security World 12.80以降)

  • virtualenvの使用を推奨

設定

1.Virtualenvを作成して設定

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

virtualenv作業環境を作成します

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

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

. venv/bin/activate

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

Secrets Manager HSMモジュールは、Keeper Secrets Managerストレージモジュールに格納されており、pipを使用してインストールできます

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

Linuxの場合:

Windowsの場合:

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

SecretsManagerコンストラクタで、HsmNfastKeyValueStorageをSecrets Managerストレージとして使用します。

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

comment-question

v1.0.xからのアップグレードについて

v1.1.0では、以下の動作が変わります。

  • decrypt_config() のデフォルトは autosave=False になりました。従来の動作を維持するには decrypt_config(autosave=True) を呼び出してください。

  • 破損した、または空の復号結果は、JSONDecodeError をそのまま返すのではなく、"is not a valid encrypted config file" の例外が発生します。

  • 有効な暗号化ブロブではない非UTF8バイトも、同じ例外が発生します。

  • 暗号化および復号に失敗した場合、エラーを出さずにストレージ状態を破損させるのではなく、例外が発生します。

  • 構成の書き込みはアトミック (書き込み後にリネーム) になり、書き込み失敗時に既存の構成が0バイトに切り詰められることはありません。

  • delete_all() は空の暗号化ブロブを書き込むのではなく、暗号化された構成ファイルをディスクから削除します。

  • HsmNfastKeyValueStorage は、同時読み書きに対してスレッドセーフになりました。

Secrets ManagerとEntrust HSMの連携

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

その他の例と機能については、KSM SDKのドキュメントをご参照ください。

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

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

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

Linuxの場合:

Windowsの場合:

最終更新