コンテンツにスキップ

Azure Dedicated HSM

このチュートリアルでは、Azure Dedicated HSMを使用します。これは、Gemalto SafeNet Luna a790に基づいたFIPS 140-2レベル3認証の実装です。


開始する前に

以下のことを確認してください:


1. 新しいパーティションを作成、割り当て、初期化する

最初のステップは、HSMパーティションを作成することです。これは、Azure Dedicated HSMデバイス内の独立した論理HSMと考えることができます。

vm$ ssh tenantadmin@hsm
[local_host] lunash:>hsm login
HSM管理者のパスワードを入力してください:
> ********
'hsm login' 成功しました。
コマンド結果 : 0 (成功)
[local_host] lunash:>partition create -partition KeylessSSL
パーティションを作成するには 'proceed' と入力してください、または
今すぐ終了するには 'quit' と入力してください。
> proceed
'partition create' 成功しました。
コマンド結果 : 0 (成功)

次に、パーティションをクライアント、つまりあなたのキーサーバーに割り当てる必要があります。

Terminal window
[local_host] lunash:>client assignpartition -client azure-keyless -partition KeylessSSL
'client assignPartition' 成功しました。
コマンド結果 : 0 (成功)

パーティションが割り当てられた後、仮想サーバーから lunacm を実行してパーティションを初期化します。

vm$ lunacm
lunacm (64-bit) v7.2.0-220. Copyright (c) 2018 SafeNet. All rights reserved.
利用可能なHSM:
スロットID -> 0
ラベル ->
シリアル番号 -> XXXXXXXXXXXXX
モデル -> LunaSA 7.2.0
ファームウェアバージョン -> 7.0.3
構成 -> Lunaユーザーパーティション(SO(PW)署名付き)クローンモード
スロットの説明 -> ネットトークンスロット
現在のスロットID: 0
lunacm:>partition init -label KeylessSSL -domain cloudflare
パーティションSOのパスワードを入力してください: ********
パーティションSOのパスワードを再入力してください: ********
パーティションを初期化しようとしています。
パーティションのすべての内容が破壊されます。
続行してもよろしいですか?
続行するには 'proceed' と入力してください、または今すぐ終了するには 'quit' と入力してください ->proceed
コマンド結果 : エラーなし

2. RSAキーのペアと証明書署名要求(CSR)を生成する

以下のコマンドを実行する前に、情報セキュリティおよび/または暗号化チームに確認して、組織の承認されたキー作成手順を確認してください。

# cmu generatekeypair -keyType=RSA -modulusBits=2048 -publicExponent=65537 -sign=1 -verify=1 -labelpublic=myrsakey -labelprivate=myrsakey -keygenmech=1
スロット0のトークンのパスワードを入力してください : ********
# cmu list
スロット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
スロット0のトークンのパスワードを入力してください : ********
"CKM_SHA256_RSA_PKCS"メカニズムを使用しています

3. 証明書機関(CA)から署名された証明書を取得してアップロードする

前のステップで作成したCSRを、組織の選択したCAに提供し、要求された通りにドメインの管理を示し、署名されたSSL証明書をダウンロードします。「Keyless」SSL証明書のアップロードに記載された手順に従ってください。


4. gokeyless設定ファイルを修正し、サービスを再起動する

最後に、キーサーバーが起動時に読み込む設定ファイルを修正する必要があります。object=mykeypin-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を再起動し、正常に起動したことを確認します。

Terminal window
sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l