このチュートリアルでは Azure Dedicated HSM ↗ を使います。Gemalto SafeNet Luna a790 を基盤とした、FIPS 140-2 Level 3 認定の実装です。
次を完了してください。
- 既存の仮想ネットワークへ PowerShell で HSM をデプロイする Microsoft の チュートリアル ↗ を実施済みであること
- SafeNet クライアントソフトウェア ↗ をインストール済みであること
最初の手順は HSM パーティションの作成です。パーティションは、Azure Dedicated HSM デバイス内の独立した論理 HSM と考えられます。
vm$ ssh tenantadmin@hsm
[local_host] lunash:>hsm login
Please enter the HSM Administrators' password:
> ********
'hsm login' successful.
Command Result : 0 (Success)
[local_host] lunash:>partition create -partition KeylessSSL
Type 'proceed' to create the partition, or
'quit' to quit now.
> proceed
'partition create' successful.
Command Result : 0 (Success)次に、パーティションをクライアント(この場合はキーサーバー)へ割り当てます。
[local_host] lunash:>client assignpartition -client azure-keyless -partition KeylessSSL
'client assignPartition' successful.
Command Result : 0 (Success)パーティションの割り当て後、仮想サーバーで lunacm を実行し、パーティションを初期化します。
vm$ lunacm
lunacm (64-bit) v7.2.0-220. Copyright (c) 2018 SafeNet. All rights reserved.
Available HSMs:
Slot Id -> 0
Label ->
Serial Number -> XXXXXXXXXXXXX
Model -> LunaSA 7.2.0
Firmware Version -> 7.0.3
Configuration -> Luna User Partition With SO (PW) Signing With Cloning Mode
Slot Description -> Net Token Slot
Current Slot Id: 0
lunacm:>partition init -label KeylessSSL -domain cloudflare
Enter password for Partition SO: ********
Re-enter password for Partition SO: ********
You are about to initialize the partition.
All contents of the partition will be destroyed.
Are you sure you wish to continue?
Type 'proceed' to continue, or 'quit' to quit now ->proceed
Command Result : No Error次のコマンドを実行する前に、情報セキュリティ担当または暗号担当に、組織で承認されている鍵作成手順を確認してください。
# cmu generatekeypair -keyType=RSA -modulusBits=2048 -publicExponent=65537 -sign=1 -verify=1 -labelpublic=myrsakey -labelprivate=myrsakey -keygenmech=1
Please enter password for token in slot 0 : ********
# cmu list
Please enter password for token in slot 0 : ********
handle=51 label=myrsakey
handle=48 label=myrsakey前の手順で作成した鍵を使い、公開信頼の認証局(CA)へ署名を依頼できる CSR を生成します。
# cmu requestCertificate -c="US" -o="Example, Inc." -cn="azure-dedicatedhsm.example.com" -s="California" -l="San Francisco" -publichandle=48 -privatehandle=51 -outputfile="rsa.csr" -sha256withrsa
Please enter password for token in slot 0 : ********
Using "CKM_SHA256_RSA_PKCS" Mechanism前の手順で作成した CSR を、組織が使う CA へ提出します。要求どおりにドメインの管理権限を示し、署名済み SSL 証明書をダウンロードします。手順は Keyless SSL 証明書をアップロードする を参照してください。
最後に、キーサーバーが起動時に読み込む設定ファイルを変更します。object=mykey と pin-value=username:password の値は、指定した鍵ラベルと作成した CU ユーザーに合わせて変更してください。
/etc/keyless/gokeyless.yaml を開き、次の直後に追記します。
private_key_stores:
- dir: /etc/keyless/keys次を追加します。
- uri: pkcs11:token=KeylessSSL;object=myrsakey?module-path=/usr/safenet/lunaclient/lib/libCryptoki2_64.so&pin-value=password&max-sessions=1設定ファイルを保存したら、gokeyless を再起動し、正常に起動したことを確認します。
sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l