HSM で保護されたキーを Managed HSM にインポートする (BYOK)

Azure Key Vault Managed HSM は、オンプレミスのハードウェア セキュリティ モジュール (HSM) で生成されたキーのインポートをサポートしています。このキーが HSM による保護の境界の外に出ることは決してありません。 多くの場合、このシナリオは Bring Your Own Key (BYOK) と呼ばれます。 Managed HSM によるキーの保護は、Marvell LiquidSecurity HSM アダプター (FIPS 140-2 レベル 3 で検証済み) を使用して行われます。

この記事の情報は、Managed HSM と共に使用する独自の HSM で保護されたキーを計画、生成、転送する場合に役立ちます。

Note

この機能は、21Vianet によって運営される Microsoft Azure では使用できません。 このインポート方法は、サポートされている HSM でのみ使用できます。

詳細および Managed HSM の使用を開始するためのチュートリアルについては、「Managed HSM とは」を参照してください。

概要

次にプロセスの概要を示します。 具体的な手順については、この記事の後半で説明します。

  • Managed HSM で、キー (キー交換キー (KEK) と呼ばれる) を生成します。 KEK は、キー操作が import のみの RSA-HSM キーである必要があります。
  • KEK 公開キーを .pem ファイルとしてダウンロードします。
  • オンプレミスの HSM に接続されているオフライン コンピューターに KEK 公開キーを転送します。
  • オフライン コンピューターで、HSM ベンダーから提供されている BYOK ツールを使用して BYOK ファイルを作成します。
  • ターゲット キーは KEK で暗号化され、Managed HSM に転送されるまで暗号化が維持されます。 暗号化されたキーだけが、オンプレミスの HSM から外に出て行きます。
  • Managed HSM 内で生成された KEK のエクスポートはできません。 HSM によって、Managed HSM の外部に平文の KEK は存在しないというルールが適用されます。
  • KEK は、ターゲット キーがインポートされるのと同じマネージド HSM 内に存在する必要があります。
  • BYOK ファイルが Managed HSM にアップロードされると、Managed HSM により、KEK 秘密キーを使用してターゲット キー マテリアルが解読され、HSM キーとしてインポートされます。 この操作は、完全に HSM 内で行われます。 ターゲット キーは常に、HSM 保護境界内に留まります。

前提条件

この記事にある Azure CLI コマンドを使用するには、以下を用意する必要があります。

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Button to launch Azure Cloud Shell.
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

CLI を使用して Azure にサインインするには、次を入力します。

az login

CLI を使用したログイン オプションの詳細については、「Azure CLI を使用してサインインする」を参照してください

サポートされている HSM

ベンダー名 ベンダーの種類 サポートされている HSM モデル 詳細情報
Cryptomathic ISV (エンタープライズ キー管理システム) 以下を含む複数の HSM ブランドおよびモデル
  • nCipher
  • Thales
  • Utimaco
詳細については、Cryptomathic のサイトを参照してください
Entrust 製造元、
サービスとしての HSM
  • HSM の nShield ファミリ
  • サービスとしての nShield
nCipher の新しい BYOK ツールとドキュメント
Fortanix 製造元、
サービスとしての HSM
  • Self-Defending Key Management Service (SDKMS)
  • Equinix SmartKey
SDKMS キーを BYOK 用クラウド プロバイダーにエクスポートする - Azure Key Vault
IBM 製造元 IBM 476x、CryptoExpress IBM Enterprise Key Management Foundation
Marvell Manufacturer 以下を含む LiquidSecurity のすべての HSM
  • ファームウェア バージョン 2.0.4 以降
  • ファームウェア バージョン 3.2 以降
Marvell の BYOK ツールとドキュメント
Securosys SA 製造元、サービスとしての HSM Primus HSM ファミリ、Securosys Clouds HSM Primus の BYOK ツールとドキュメント
StorMagic ISV (エンタープライズ キー管理システム) 以下を含む複数の HSM ブランドおよびモデル
  • Utimaco
  • Thales
  • nCipher
詳細については、StorMagic のサイトを参照してください
SvKMS と Azure Key Vault の BYOK
Thales Manufacturer
  • ファームウェア バージョンが 7.3 以降の Luna HSM 7 ファミリ
Luna の BYOK ツールとドキュメント
Utimaco 製造元、
サービスとしての HSM
u.trust Anchor、CryptoServer Utimaco BYOK ツールと統合ガイド

サポートされているキーの種類

キー名 キーの種類 キー サイズまたは曲線 出発地 説明
キー交換キー (KEK) RSA-HSM 2,048 ビット
3,072 ビット
4,096 ビット
Managed HSM Managed HSM で生成される、HSM で保護された RSA キー ペア
ターゲット キー
RSA-HSM 2,048 ビット
3,072 ビット
4,096 ビット
ベンダー HSM Managed HSM に転送されるキー
EC-HSM P-256
P-384
P-521
ベンダー HSM Managed HSM に転送されるキー
対称キー (oct-hsm) 128 ビット
192 ビット
256 ビット
ベンダー HSM Managed HSM に転送されるキー

キーを生成して Managed HSM に転送する

キーを生成して Managed HSM に転送するには、次の操作を行います。

手順 1:KEK を生成する

KEK は、Managed HSM で生成される RSA キーです。 KEK は、インポートするキー (ターゲット キー) を暗号化するために使用されます。

KEK には次の条件があります。

  • RSA-HSM キー (2,048 ビット、3,072 ビット、4,096 ビット) であること
  • ターゲット キーをインポートするのと同じマネージド HSM で生成されていること
  • import に設定されている、許可されたキー操作で作成されていること

Note

KEK には、許可されている唯一のキー操作として「インポート」が必要です。 「インポート」は、他のすべてのキー操作と同時には使用できません。

キー操作が import に設定されている KEK を作成するには、az keyvault key create コマンドを使用します。 次のコマンドから返されるキー識別子 (kid) を記録しておきます。 (この kid 値は手順 3 で使用します。)

az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --hsm-name ContosoKeyVaultHSM

手順 2:KEK 公開キーをダウンロードする

KEK 公開キーを .pem ファイルにダウンロードするには、az keyvault key download を使用します。 インポートするターゲット キーを暗号化するには、KEK 公開キーを使用します。

az keyvault key download --name KEKforBYOK --hsm-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem

KEKforBYOK.publickey.pem ファイルをオフライン コンピューターに転送します。 次の手順でこのファイルが必要になります。

手順 3:キーを生成して転送用に準備をする

BYOK ツールをダウンロードしてインストールする方法については、HSM ベンダーのドキュメントをご覧ください。 HSM ベンダーの指示に従って、ターゲット キーを生成した後、キー転送パッケージ (BYOK ファイル) を作成します。 BYOK ツールでは、手順 1kid と、手順 2 でダウンロードした KEKforBYOK.publickey.pem ファイルを使用して、暗号化されたターゲット キーを BYOK ファイルに生成します。

接続されているコンピューターに BYOK ファイルを転送します。

Note

1,024 ビットの RSA キーのインポートはサポートされていません。 EC-HSM P256K キーのインポートがサポートされています。

既知の問題:Luna HSM からの RSA 4K ターゲット キーのインポートは、ファームウェア 7.4.0 以降でのみサポートされています。

手順 4:キーを Managed HSM に転送する

キーのインポートを完了するには、切断されたコンピューターからインターネットに接続されているコンピューターにキー転送パッケージ (BYOK ファイル) を転送します。 az keyvault key import コマンドを使用して、BYOK ファイルを Managed HSM にアップロードします。

az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok

アップロードが正常に行われると、インポートされたキーのプロパティが Azure CLI に表示されます。

次のステップ

これでこの HSM 保護キーを Managed HSM で使用できます。 詳細については、この価格と機能の比較に関するページをご覧ください。