Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Azure Dedicated HSM

最終更新 Markdown で表示Agent セットアップ

このチュートリアルでは Azure Dedicated HSM を使います。Gemalto SafeNet Luna a790 を基盤とした、FIPS 140-2 Level 3 認定の実装です。


始める前に

次を完了してください。


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

最初の手順は 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

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

次のコマンドを実行する前に、情報セキュリティ担当または暗号担当に、組織で承認されている鍵作成手順を確認してください。

# 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

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 を再起動し、正常に起動したことを確認します。

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

役に立ちましたか?