# AWS CloudHSMとの統合

## AWS Cavium CloudHsmV2との統合

<figure><img src="/files/RBo8r5z8yDOW67B6fqms" alt=""><figcaption></figcaption></figure>

## Keeper SSOコネクトHSMの概要

SSOコネクトの`data`フォルダ内には、ファイルがいくつかあります。このうちの2つのファイルには、サーバーで生成された、保護する必要のある秘密鍵が含まれ、エンドユーザーの自動生成されたマスターパスワードの暗号化と復号化に利用されます。また、暗号化されたデータのローカルキャッシュを含む`.sql`ファイルもあります。重要なのは、このデータフォルダへのアクセスを制限することです。

Windows以外のマシンの場合、`data`フォルダはSSOコネクトのインストールフォルダ (通常は、`$HOME/sso_connect/data`) の下にあります。

Windowsマシンの場合、バージョン14.1以降、`data`フォルダは、`C:\ProgramData\Keeper SSO Connect\data\`にあります。バージョン14.1より前は、`C:\Program Files\Keeper Security\SSO Connect\data\`にありました。

以下に説明するように、HSM (ハードウェアセキュリティモジュール) を利用することで、セキュリティをもう1層追加できます。HSMが使用可能な場合、SSOコネクトのインスタンスごとに暗号鍵が生成され、HSMに安全に保存されます。暗号鍵は、`data/`フォルダ内の重要なプロパティファイルの暗号化に使用されます。

## AWS Cavium CloudHsmV2の手順

### HSMの要件

1. Amazonは現在、HSMの新規導入には、CloudHsmV2のみを許可しており、Keeperはこのバージョンをサポートしています。従来のCloud HSM v1ハードウェアには対応していません。
2. Amazon HSMソフトウェアは現在、LinuxまたはWindowsでのインストールをサポートしています。

### ネットワーク要件

* TCP/443ポートの開放、Keeper SSOコネクトからwww\.keepersecurity.comへのステートフルな発信
* TCP/2223ポートの開放、SSOコネクトマシンからHSMハードウェアへの双方向通信
* TCP/2225ポートの開放、SSOコネクトマシンからHSMハードウェアへの双方向通信
* TCP/8080ポートの開放、管理者GUIにアクセスするためのKeeper管理者ワークステーションからKeeper SSOコネクトへの着信 (オプション)

### ネットワークアクセスをテスト

```
$ telnet www.keepersecurity.com 443
Trying 52.204.60.27
Connected to www.keepersecurity.com.
Escape character is '^]'.
```

### CloudHsmV2ソフトウェアのインストール

以下で説明されているように、Amazon HSMクラスターをプロビジョニングして、SSOコネクトマシンにHSMソフトウェアをインストールします。

<https://docs.aws.amazon.com/cloudhsm/latest/userguide/install-and-configure-client-linux.html>

または

<https://docs.aws.amazon.com/cloudhsm/latest/userguide/install-and-configure-client-win.html>

`Java`ライブラリが必要になります。Linuxの場合は、`/opt/cloudhsm`にインストールします。

`cloudhsm_client`サービスがバックグラウンドで動作していることを確認します。

```
$ ps aux | grep cloud
   If cloudhsm_client is not running:
       $ sudo service cloudhsm-client start
       $ ps aux | grep cloud
         ... /opt/cloudhsm/bin/cloudhsm_client ...
```

### ソフトウェアのインストールをテスト

```
$ sudo /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
aws-cloudhsm>listUsers
aws-cloudhsm>loginHSM CU <hsmユーザー名（hsm_user）> <hsmパスワード（hsm_password）>
aws-cloudhsm>listUsers
aws-cloudhsm>getHSMInfo
aws-cloudhsm>quit
```

通常どおりSSOコネクトをインストールします。

Amazon HSM Javaソフトウェアは、Javaクラスパスで`HsmCredentials.properties`という名前のファイルを認識するはずです。\
ただし、これは何らかの理由でうまくいかない場合があります。代わりに、`HSM_USER`、`HSM_PASSWORD`、`HSM_PARTITION`環境変数の設定が必要になる場合があります。テストのために、シェル変数の設定も必要になるでしょう。

HSM接続をテストします。

```
$  java -Djava.library.path=/opt/cloudhsm/lib/ -classpath ~/sso_connect/SSOConnect.jar com.keepersecurity.util.AmazonKeyStoreExampleRunner
```

HSMの鍵が出力されるはずです。

SSOコネクトの設定は、通常通り、コマンドラインまたは`http://localhost:8080/config`の管理者インターフェースを使用して行います。

a.「アドバタイズされたホスト名」を設定します、a.SSL証明書を追加します、a.SAML XMLメタデータファイルを追加します。

管理者インターフェースでは、HSM設定セクションは、設定 (Configuration) ページの下部にあります。

<figure><img src="/files/vQpQeyfULv6n254p3K1C" alt=""><figcaption></figcaption></figure>

a.タイプとして「Amazon CloudHsmV2」を選択します、a.下のボックスにプロパティがいくつか表示されます。変更の必要は無いでしょう。i.ただし、HSMとの通信に使用する証明書が、SSOコネクトのSSLに使用する証明書と同じでない場合は除きます。i.証明書ファイルのパスワード（通常、SSL証明書ファイルに使用されるものと同じパスワード）の入力が必要になる場合があります。a.有効/無効のボックスをクリックします、a.\_保存 (Save) をクリックします。

これでSSOコネクトが再起動し、HSMに接続するはずです。ステータスページにHSMが有効であると表示されれば成功です。めったにありませんが、起動が非常に遅い場合は、ステータスコマンドを再度クリックして、ステータスの更新が必要になる場合があります。

うまくいかなかった場合は、SSOコネクトのエラーログをご確認ください。最も一般的なエラーは、HSMのクレデンシャルが見つからないことです。クレデンシャルを環境変数として設定し、アクセスできるようにしてください。

うまくいかなかった場合は、エラーログをご確認ください。最も一般的なエラーは、HSMのクレデンシャルが見つからないことです。クレデンシャルを環境変数として設定し、アクセスできるようにしてください。

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

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

1. SSOconnectがマシンにインストールされていることを確認します。
   * 通常、`sso_connect`、`KeeperSSO`、またはそれに類似した名前のフォルダがあります。フォルダには多数のjarファイルが含まれます。
2. HSMデバイスがアクセス可能であることを確認します。
   * SSOconnectには、Amazonのテストライブラリからコピーされたテストプログラムが組み込まれています。

     ```
     $  java -Djava.library.path=/opt/cloudhsm/lib/ -classpath ~/sso_connect/SSOConnect.jar com.keepersecurity.util.AmazonKeyStoreExampleRunner
     ```

     HSMに保存されている鍵が出力されるはずです。

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

1. ログファイルにエラーがないか確認します。SSOconnectのセキュアキーストレージサブシステムは、問題が発生すると、ログにERROR行を出力します。

   ```
   $ more logs/ssoconnect.log
   ```
2. エラーは、「セキュアキーストレージが使用できません (Unable to use Secure Key Storage）」といったパターンになります。これは、以下のいずれかの問題を示しています。

   ```
     a.Network problem accessing the HSM
        -ポート2223と2225が解放されていることを確認します。

     b.data/sks.properties is missing
        -data/sks.propertiesがない場合は、SSOConnectを再設定する必要があります。

     c.The encrypted property files are missing
        -data/instance.encpとdata/shared.encpの有無を確認します。

     d.The encryption key is missing from the HSM
        -HSMパーティションが消去された可能性があります。 SSOConnectを再設定する必要があります。

     e.The server may be out of disk space
        -ディスク領域を一部消去します。

     f.The encryption algorithm used is not supported on the HSM
        -アルゴリズムは、AES/GCM/NoPaddingです。 デバイスの販売業者にお問い合わせください。

     g.The file data/sso-keystore.jks is missing
        -このプログラムは、sso_keystore.jksファイルからの証明書チェーンがないと、HSMに鍵を保管できません。
          ファイルを検索し、データフォルダにあることをご確認ください。
   ```

## バックアップ

`data`フォルダにはSSOコネクト設定ファイルが含まれています。少なくとも、最初の設定の後、および設定を変更するたびにバックアップする必要があります。設定ファイル以外にも、`data`にはデータファイルがありますが、こちらは、Keeperサーバーとの同期が外れると自動的に更新されます。そのため、通常の定期バックアップを利用してもよいですが、必須ではありません。すべてのコンフィグレーション設定がインスタンス間で共有されているわけではないため、各SSOコネクトインスタンスの`data`フォルダを個別にバックアップする必要があります。

Windows以外のマシンの場合、`data`フォルダはSSOコネクトのインストールフォルダ (通常は、`$HOME/sso_connect/data`) の下にあります。

Windowsマシンの場合、バージョン14.1以降、`data`フォルダは、`C:\ProgramData\Keeper SSO Connect\data\`にあります。バージョン14.1より前は、`C:\Program Files\Keeper Security\SSO Connect\data\`にありました。

## 回復

### サーバーの障害

SSOコネクトサーバーが停止した場合は、上記の標準的なインストール手順に従って、代替マシンにAmazon HSMとSSOコネクトを再インストールする必要があります。

上記のとおり、`data`フォルダをバックアップした場合は、データフォルダを復元してから、SSOコネクトを起動してください。(SSOコネクトを起動したため) `data`フォルダがすでに存在する場合は、SSOコネクトを停止し、データフォルダ内のファイルをすべて削除し、バックアップしたデータフォルダからファイルをコピーして、SSOコネクトを再起動します。SSOコネクトが正常に起動するはずです。

`data`フォルダをバックアップしていなかった場合、またはバックアップが古い場合は、代替インスタンスを新規でインストールするように設定する必要があります。SSOコネクトのインストールガイドに従ってください。

### HSMの障害

HSMを使用する場合、HSMは設定ファイルの復号化に使用した暗号鍵を`data`フォルダに保存します。HSMへのアクセスは、SSOコネクトの起動時に1度、設定が変更されるときにも随時行われます。設定ファイルが暗号化されており、HSMに保存した暗号鍵が失われたか、またはアクセスできない場合は、暗号化されていない設定ファイルを新規作成するために、SSOコネクトインスタンスを再度設定する必要があります。`data`フォルダの内容を削除し、SSOコネクトをもう一度最初から設定します。

HSM/SKSの使用を無効にするには、「SKSを有効にしますか?  (Enable SKS?）」という設定の質問に「いいえ (no）」を入力するか、または`-disableSKS`コマンドラインオプションを使用します。


---

# 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/sso-connect-on-prem/integration-with-amazon-cloudhsmv2.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.
