Cloud Hardware Security Module (Cloud HSM) クラスターをゼロからセットアップします。ハードウェアセキュリティモジュール (HSM) をマスターとして有効化し、クラスターを作成してアクティブ化し、HSM クライアントを接続し、最初の暗号化キーを生成します。
本番環境でテストキーを使用しないでください。テストキーは検証のみを目的としており、本番環境で必要とされるセキュリティ保証を提供するものではありません。
ハードウェアキー管理タイプの Key Management Service (KMS) インスタンスで HSM クラスターを使用する場合は、代わりに「ハードウェアキー管理タイプの KMS インスタンス向け HSM クラスターの構成」をご参照ください。このガイドのステップ 4 と 5 は、そのシナリオには適用されません。
前提条件
開始する前に、以下を確認してください。
HSM を購入し、有効化していること。詳細については、「HSM の購入と有効化」をご参照ください。
HSM と同じ Virtual Private Cloud (VPC) 内で CentOS 8 または Alibaba Cloud Linux を実行している ECS インスタンスがあること。ECS インスタンスは、ビジネスサーバーとしてではなく、HSM 管理ツールをインストールするために使用されます。詳細については、「Linux インスタンスのクイックスタート」をご参照ください。
ステップ 1: HSM をマスター HSM として有効化
HSM クラスターは、1 つのマスター HSM と複数の非マスター HSM で構成されます。クラスターを作成する前に、1 つの HSM をマスターとして指定します。
Cloud Hardware Security Module コンソールの VSMs ページに移動します。上部のナビゲーションバーでリージョンを選択します。
[VSMs] ページで、HSM を見つけ、[アクション] 列の [有効化] をクリックします。
[HSM インスタンスの構成] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。構成が成功すると、HSM の ステータスが 有効に変わります。
パラメーター 説明 VPC ID HSM にバインドする VPC。 VPC subnet VPC 内で HSM に割り当てるサブネット。 Private IP address HSM に割り当てるプライベート IP アドレス。割り当てられたサブネットに属している必要があります。システムは、最後のオクテットが 253、254、または 255 の IP アドレスを予約しています。これらは使用しないでください。 Configure HSM whitelist HSM へのアクセスを許可する IP アドレスまたは CIDR ブロック。最大 10 エントリ (1 行につき 1 つ) をサポートします。空白のままにすると、すべての IP アドレスが HSM にアクセスできます。クラスターホワイトリストが構成されている場合、それは HSM ホワイトリストよりも優先されます。 0.0.0.0/0エントリはサポートされていません。すべての IP アドレスを許可するには、ホワイトリストを空白のままにします。
ステップ 2: HSM クラスターの作成とアクティブ化
このステップでは、証明書ベースの信頼チェーンを通じて、クラスターに対する所有権と制御を確立します。このプロセスには以下が含まれます。
クラスターの作成とネットワーク構成の指定
自己署名 CA (認証局) の生成と、それを使用したクラスターの証明書署名要求 (CSR) への署名
HSM 管理ツールを使用したマスター HSM の初期化
同じゾーン内の HSM は同じ VPC サブネットを使用します。
クラスターの作成
「VSMs」ページで、マスター HSM を見つけ、「Actions」列の「Create cluster」をクリックします。
「クラスターの作成と有効化」パネルで、クラスターの作成ステップを完了し、[次へ]をクリックします。
パラメーター 説明 Cluster name クラスターの一意の名前。最大 24 文字。 Configure whitelist クラスターへのアクセスを許可する IP アドレスまたは CIDR ブロック。最大 10 エントリ (1 行につき 1 つ) をサポートします。クラスターホワイトリストは、HSM レベルのホワイトリストよりも優先されます。 0.0.0.0/0エントリはサポートされていません。すべての IP アドレスを許可するには、ホワイトリストを空白のままにします。Specify vSwitches クラスターの vSwitch。少なくとも 2 つの vSwitch が必要です。
クラスターのアクティブ化
クラスター証明書のインポート
クラスターのアクティベーションプロセスでは、ローカルで生成したCA 証明書を使用してクラスターのCSRに署名します。これにより、HSM の所有者であることが証明され、今後のすべてのHSM 接続の信頼基盤が確立されます。
クラスター証明書のアップロード セクションで、クラスター CSR 証明書 をクリックして CSR ファイル (
cluster.csr) をダウンロードします。このファイルを ECS インスタンスにアップロードします。秘密鍵を生成し、パスワードを設定します。これにより、
issuerCA.keyが作成されます。openssl genrsa -aes256 -out issuerCA.key 2048自己署名の CA 証明書を作成します。これにより、
issuerCA.crtが作成され、後の手順で使用します。openssl req -new -x509 -days 3652 -key issuerCA.key -out issuerCA.crtCA 証明書とキーを使用してクラスター CSR に署名します。これにより、
cluster.crtが作成され、次のステップでコンソールにアップロードします。このコマンドでは、
cluster.csr、issuerCA.crt、およびissuerCA.keyを使用します。openssl x509 -req -in cluster.csr -days 3652 -CA issuerCA.crt -CAkey issuerCA.key -set_serial 01 -out cluster.crtコンソールの クラスターの有効化 ステップに戻り、証明書をインポートして [送信] をクリックします。
PEM 形式で発行者証明書を入力 セクションに、
issuerCA.crtの内容を貼り付けます。PEM 形式で発行済みクラスター証明書を入力 セクションに、
cluster.crtの内容を貼り付けます。
マスター HSM の初期化
マスター HSM は、Linux オペレーティングシステム上の HSM 管理ツールを使用してのみ初期化できます。
ステップ 1: HSM 管理ツールのダウンロード
ツールバージョンは、HSM が配置されているリージョンによって異なります。
インドネシア (ジャカルタ) リージョン
CentOS
方法 1: hsm-client-v2.09.07.02-1.202411041707.x86_64.rpm にアクセスして HSM 管理ツールをダウンロードします。
手順 3: VSMs ページで、HSM インスタンスを見つけ、[仕様列] の
アイコンをクリックします。方法 3: Activate Cluster ページで、[HSM 管理ツールをダウンロード] をクリックします。
Debian
hsm-client-v2.09.07.02-1.202411041707.x86_64.deb にアクセスして HSM 管理ツールをダウンロードします。
インドネシア (ジャカルタ) を除くすべてのリージョン
ツールバージョンはリージョンによって異なります。
インドネシア (ジャカルタ) リージョン
CentOS: hsm-client-v2.09.07.02-1.202411041707.x86_64.rpm のダウンロード、または [HSM 管理ツールのダウンロード] を [有効化済みクラスター] ページでクリックします。
Debian: hsm-client-v2.09.07.02-1.202411041707.x86_64.deb をダウンロード
その他のすべてのリージョン
CentOS: 次のいずれかの方法を選択します。
次のコマンドを実行します (ECS インスタンスからのインターネットアクセスが必要です): ``
bash wget -O hsm-client-v2.03.15.10-1.x86_64.rpm 'https://yundun-hsm4.oss-ap-southeast-1.aliyuncs.com/hsm-client-v2.03.15.10-1.x86_64.rpm'``[クラスターのアクティブ化] ページで、[HSM 管理ツールのダウンロード] をクリックします。
Debian: [ダウンロード hsm-client-2.03.15.10-20240710_1.x86_64.deb]
ステップ 2: HSM 管理ツールのインストール
ツールは /opt/hsm にインストールされます。
CentOS —
<TOOL_NAME>を実際のファイル名 (例:hsm-client-v2.09.07.02-1.202411041707.x86_64.rpm) に置き換えます。sudo yum install -y <TOOL_NAME>Debian —
<TOOL_NAME>を実際のファイル名 (例:hsm-client-2.03.15.10-20240710_1.x86_64.deb) に置き換えます。sudo dpkg -i <TOOL_NAME>
ステップ 3: クライアント構成ファイルの更新
/opt/hsm/etc/hsm_mgmt_tool.cfg の servers セクションを編集します。
nameとhostnameをマスター HSM のプライベート IP アドレスに設定します(このアドレスは [インスタンス] ページで確認できます)。owner_cert_pathをissuerCA.crtの完全なパスに設定します。
構成例:
{
"servers": [
{
"name" : "172.16.XX.XX",
"hostname" : "172.16.XX.XX",
"port" : 2225,
"certificate": "/opt/hsm/etc/client.crt",
"pkey": "/opt/hsm/etc/client.key",
"CAfile": "",
"CApath": "/opt/hsm/etc/certs",
"ssl_ciphers": "",
"server_ssl" : "yes",
"enable" : "yes",
"owner_cert_path":"<issuerCA.crt_FILE_PATH>"
}],
"scard": {
"enable": "no",
"port": 2225,
"ssl": "no",
"ssl_ciphers": "",
"certificate": "cert-sc",
"pkey": "pkey-sc"
}
}ステップ 4: マスター HSM へのログインとユーザーの検証
マスター HSM にログインします。
/opt/hsm/bin/hsm_mgmt_tool /opt/hsm/etc/hsm_mgmt_tool.cfglistUsersを実行して、デフォルトユーザーを確認します。cloudmgmt>listUsers Users on server 0(172.16.XX.XX): Number of users found:2 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO admin NO 0 NO 2 AU app_user NO 0 NOデフォルトユーザーは
admin(プリクリプトオフィサー、PRECO) とapp_user(アプリユーザー、AU) です。
ステップ 5: PRECO をクリプトオフィサー (CO) に昇格させる
PRECO としてログインします。
server0>loginHSM PRECO admin password loginHSM successPRECO パスワードを変更します。これにより、
adminが PRECO から CO に昇格されます。cloudmgmt>changePswd PRECO admin <NewPassword>listUsersでロール変更を確認します。cloudmgmt>listUsers Users on server 0(172.16.XX.XX): Number of users found:2 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 CO admin NO 0 NO 2 AU app_user NO 0 NOadminが CO として表示されます。
ステップ 6: クリプトユーザー (CU) の作成
非マスター HSM をクラスターに追加する前に CU を作成してください。CU 情報は、非マスター HSM が追加されたときにのみ同期されます。CU が作成される前に追加された HSM には CU がありません。
createUserを実行して CU を作成します。ユーザー名: 最大 20 ASCII 文字。パスワード: 8~32 ASCII 文字。KMS ハードウェアキー管理インスタンス向けにクラスターを構成している場合は、ユーザー名として
kmsuserを使用してください。createUser CU crypto_user <enter password>listUsersを実行して CU が作成されたことを確認します。cloudmgmt>listUsers Users on server 0(172.16.XX.XX): Number of users found:3 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 CO admin NO 0 NO 2 AU app_user NO 0 NO 3 CU crypto_user NO 0 NO
ステップ 7: マスター HSM ステータスの確認と続行
コンソールの[クラスターのアクティブ化]ステップで、
アイコンをクリックしてマスター HSM のステータスをリフレッシュし、[次へ]をクリックします。
非マスター HSM の追加
「Add HSM」ステップで、プロンプトに従ってマスター以外の HSM をクラスターに追加し、[完了] をクリックします。
必要に応じて、後で追加の HSM を購入してクラスターに追加できます。
ステップ 3: hsm_proxy HSM クライアントの起動
hsm_proxy は、ご利用の ECS インスタンスで実行され、暗号化リクエストを HSM クラスターにルーティングする HSM クライアントです。
/opt/hsm/etc/hsm_proxy.cfgを編集します。構成例:server.hostnameを、現在のインスタンスが属する VPC の IP アドレスに設定します。client.e2e_owner_crt_pathを、issuerCA.crt(ステップ 2 で作成した自己署名 CA 証明書) の完全なパスに設定します。
{ "ssl": { "certificate": "/opt/hsm/etc/client.crt", "pkey": "/opt/hsm/etc/client.key", "CApath": "/opt/hsm/etc/certs", "server_ssl": "yes", "server_ch_ssl_ciphers": "default" }, "client": { "socket_type" : "UNIXSOCKET", "tcp_port" : 1111, "zoneid" : 0, "workers" : 1, "daemon_id" : 1, "reconnect_attempts": -1, "reconnect_interval": 1, "log_level": "INFO", "sslreneg": 0, "CriticalAlertScript": "", "e2e_owner_crt_path" : "<issuerCA.crt file path>", "create_object_minimum_nodes" : 1, "logfiles_location" : "" }, "loadbalance" : { "enable" : "yes", "prefer_same_zone": "no", "success_rate_weight" : 1, "relative_idleness_weight" : 1 }, "dualfactor": { "enable" : "no", "port" : 2225, "certificate" : "certificate.crt", "pkey" : "pkey.pem", "dualfactor_ssl": "yes", "dualfactor_ch_ssl_ciphers": "default" }, "server": { "hostname": "<instance ip>", "port": 2224 } }hsm_proxyを起動します。/opt/hsm/bin/hsm_proxy /opt/hsm/etc/hsm_proxy.cfg出力にはログファイルのパスが表示されます。
logfiles_location is not specified, logs will be available in current directory Logs will be available in liquidSecurity.1.WKCrty.log fileログファイルを確認して、接続を確認します。
tail liquidSecurity.1.WKCrty.log接続が成功すると、次の行が含まれます。
2023-10-28T13:33:05Z liquidSecurity INF: e2e_handle_client_request: HSM FIPS STATE 2完全な出力は、次のようになります:
2023-10-28T13:33:05Z liquidSecurity 情報: check_preferred_srv_status_noclock: 新しい優先サーバーノード ID: 0 2023-10-28T13:33:05Z liquidSecurity 情報: do_e2e_encryption_handshake: 新しいサーバー接続が確立されたため、サーバーへのログインを試行しています 2023-10-28T13:33:05Z liquidSecurity 情報: e2e_handle_client_request: セッションの承認応答を受信しました 2023-10-28T13:33:05Z liquidSecurity 情報: get_partition_info: e2e mgmtch を使用して pHSM 情報を取得します 2023-10-28T13:33:05Z liquidSecurity 情報: e2e_handle_client_request: セッションの承認に成功しました 2023-10-28T13:33:05Z liquidSecurity 情報: e2e_handle_client_request: パーティション情報を受信しました 2023-10-28T13:33:05Z liquidSecurity 情報: e2e_handle_client_request: GetPartitionInfo 成功 0 : HSM 返答: SUCCESS 2023-10-28T13:33:05Z liquidSecurity 情報: e2e_handle_client_request: HSM FIPS 状態 2 2023-10-28T13:33:06Z liquidSecurity 情報: libevmulti_init: イベントを初期化しています 2023-10-28T13:33:06Z liquidSecurity 情報: libevmulti_init: 準備完了 !
手順 4:キーの作成
KMS ハードウェアキー管理インスタンス用のクラスターを構成している場合は、このステップをスキップしてください。 詳細については、「KMS ハードウェアキー管理インスタンスの HSM クラスターを構成する」をご参照ください。
key_mgmt_toolを起動します。/opt/hsm/bin/key_mgmt_tool暗号化ユーザー (CU) としてログインします。
Command: loginHSM -u CU -s crypto_user -p <enter password> Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS対称キーを生成します。
Command: genSymKey -l testkey -t 31 -s 32 Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 6 Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESSキーハンドル (この例では
6) をメモしておきます。このキーハンドルは、後続の操作でキーを参照するために使用します。findKeyを使用してキーが存在することを確認します。Command: findKey Total number of keys present: 1 Number of matching keys from start index 0::0 Handles of matching keys: 6 Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESSkey_mgmt_toolを終了します。Command: exit
ステップ 5:データの暗号化と復号
この手順は、KMS ハードウェアキー管理インスタンス用にクラスターを設定する場合、スキップしてください。詳細については、「KMS のハードウェアキー管理タイプのインスタンス向けに HSM クラスターを設定する」をご参照ください。
HSM クラスターを暗号操作に使用するには、次のいずれかのインターフェイスを選択します:
次のステップ
クラスターの管理 — HSM の追加または削除、クラスター名の変更、アクセスホワイトリストの更新 — については、「NIST FIPS 検証済み HSM クラスターの作成および有効化」をご参照ください。