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

Azure Key Vault を使用するときの安心感をさらに高めるために、ハードウェア セキュリティ モジュール (HSM) でキーをインポートしたり、生成したりできます。キーが HSM の境界内から出ることはありません。 多くの場合、このシナリオは Bring Your Own Key (BYOK) と呼ばれます。 Key Vault では、FIPS 140 適合の HSM を使ってキーを保護します。

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

Note

この機能は、21Vianet によって運営される Microsoft Azure では使用できません。

このインポート方法は、サポートされている HSM でのみ使用できます。

Azure Key Vault の詳細と、Key Vault の使用を開始するチュートリアル (HSM で保護されたキーのキー コンテナーの作成方法を含む) については、「Azure Key Vault とは」をご覧ください。

概要

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

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

前提条件

次の表に、Azure Key Vault で BYOK を使用するための前提条件を示します。

要件 詳細情報
Azure サブスクリプション Azure Key Vault でキー コンテナーを作成するには、Azure サブスクリプションが必要です。 無料試用版にサインアップしてください。
HSM で保護されたキーをインポートするための Key Vault Premium またはマネージド HSM Azure Key Vault のサービス レベルと機能の詳細については、「Key Vault 価格」をご覧ください。
サポートされている HSM の一覧に含まれる HSM と、HSM ベンダーから提供されている BYOK ツールおよび説明 HSM のアクセス許可と HSM の使用方法に関する基本的な知識が必要です。 「サポートされている HSM」を参照してください。
Azure CLI バージョン 2.1.0 以降 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 ツールとドキュメント
nCipher 製造元、
サービスとしての HSM
  • HSM の nShield ファミリ
  • サービスとしての nShield
nCipher の新しい 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 2,048 ビット
3,072 ビット
4,096 ビット
Azure Key Vault HSM Azure Key Vault で生成される、HSM で保護された RSA キー ペア
ターゲット キー
RSA 2,048 ビット
3,072 ビット
4,096 ビット
ベンダー HSM Azure Key Vault HSM に転送されるキー
EC P-256
P-384
P-521
ベンダー HSM Azure Key Vault HSM に転送されるキー

キーを生成して Key Vault Premium HSM またはマネージド HSM に転送する

キーを生成して Key Vault Premium またはマネージド HSM に転送するには:

KEK を生成する

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

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

  • RSA-HSM キー (2,048 ビット、3,072 ビット、4,096 ビット) であること
  • ターゲット キーをインポートするのと同じキー コンテナーで生成されていること
  • 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 --vault-name ContosoKeyVaultHSM

マネージド HSM の場合:

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

KEK 公開キーをダウンロードする

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

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

マネージド HSM の場合:

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

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

キーを生成して転送用に準備をする

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

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

Note

1,024 ビットの RSA キーのインポートはサポートされていません。 曲線 P-256K を使用した楕円曲線キーのインポートがサポートされています。

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

キーを Azure Key Vault に転送する

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

RSA キーをインポートするには、次のコマンドを使用します。 パラメーター - kty は省略可能で、既定値は "RSA-HSM" です。

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

マネージド HSM の場合

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

EC キーをインポートするには、キーの種類と曲線名を指定する必要があります。

az keyvault key import --vault-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --kty EC-HSM --curve-name "P-256" --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok

マネージド HSM の場合

az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file --kty EC-HSM --curve-name "P-256" KeyTransferPackage-ContosoFirstHSMkey.byok

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

次のステップ

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