Azure Key Vault Managed HSM は、オンプレミスのハードウェア セキュリティ モジュール (HSM) で生成されたキーのインポートをサポートしています。このキーが HSM による保護の境界の外に出ることは決してありません。 多くの場合、このシナリオは Bring Your Own Key (BYOK) と呼ばれます。 Managed HSM では、Marvell LiquidSecurity HSM アダプター (FIPS 140-3 レベル 3 検証済み) を使用してキーを保護します。
この記事の情報は、Managed HSM と共に使用する独自の HSM で保護されたキーを計画、生成、転送する場合に役立ちます。
注
このインポート方法は、サポートされている 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 コマンドを使用するには、以下を用意する必要があります。
- Microsoft Azure サブスクリプション。 お持ちでない場合は、 無料試用版にサインアップできます。
- Azure CLI バージョン 2.12.0 以降。 バージョンを確認するには、
az --version
を実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。 - サブスクリプションでサポートされている HSM の一覧のマネージド HSM。 「クイック スタート: Azure CLI を使用してマネージド HSM をプロビジョニングおよびアクティブ化して、マネージド HSM をプロビジョニングおよびアクティブ化する」を参照してください。
Azure Cloud Shell
Azure は、ブラウザーから使用できる対話型シェル環境である Azure Cloud Shell をホストします。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 Cloud Shell にプレインストールされているコマンドを使用すると、ローカル環境に何もインストールしなくても、この記事のコードを実行できます。
Azure Cloud Shell を起動するには:
選択肢 | 例とリンク |
---|---|
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 | ![]() |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | ![]() |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 | ![]() |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を起動します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows および Linux では Ctrl+Shift+V を選択し、macOS では Cmd+Shift+V を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。
「を選択し、 を入力してコードまたはコマンドを実行します。」
CLI を使用して Azure にサインインするには、次を入力します。
az login
CLI を使用したログイン オプションの詳細については、「Azure CLI を使用してサインインする」を参照してください
サポートされている HSM
ベンダー名 | ベンダーの種類 | サポートされている HSM モデル | 詳細情報 |
---|---|---|---|
Cryptomathic | ISV (エンタープライズ キー管理システム) | 以下を含む複数の HSM ブランドおよびモデル
|
|
任せる | 製造元、 サービスとしての HSM |
|
nCipher の新しい BYOK ツールとドキュメント |
Fortanix | 製造元、 サービスとしての HSM |
|
SDKMS キーを BYOK 用クラウド プロバイダーにエクスポートする - Azure Key Vault |
アイビーエム | 生産者 | IBM 476x、CryptoExpress | IBM Enterprise Key Management Foundation |
マーベル | 生産者 | 以下を含む LiquidSecurity のすべての HSM
|
Marvell の BYOK ツールとドキュメント |
Securosys SA | 製造元、サービスとしての HSM | Primus HSM ファミリ、Securosys Clouds HSM | Primus の BYOK ツールとドキュメント |
StorMagic | ISV (エンタープライズ キー管理システム) | 以下を含む複数の HSM ブランドおよびモデル
|
SvKMS と Azure Key Vault の BYOK |
タレス | 生産者 |
|
Luna の BYOK ツールとドキュメント |
Utimaco | 製造元、 サービスとしての HSM |
u.trust Anchor、CryptoServer | Utimaco BYOK ツールと統合ガイド |
サポートされているキーの種類
キー名 | キーの種類 | キー サイズまたは曲線 | 起源 | 説明 |
---|---|---|---|---|
キー交換キー (KEK) | RSA-HSM | 2,048 ビット 3,072 ビット 4,096 ビット |
マネージド 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 に転送する
手順 1:KEK を生成する
KEK は、Managed HSM で生成される RSA キーです。 KEK は、インポートするキー (ターゲット キー) を暗号化するために使用されます。
KEK には次の条件があります。
- RSA-HSM キー (2,048 ビット、3,072 ビット、4,096 ビット) であること
- ターゲット キーをインポートするのと同じマネージド HSM で生成されていること
import
に設定されている、許可されたキー操作で作成されていること
注
KEK には、許可されている唯一のキー操作として「インポート」が必要です。 「インポート」は、他のすべてのキー操作と同時には使用できません。
キー操作が に設定されている KEK を作成するには、import
コマンドを使用します。 次のコマンドから返されるキー識別子 (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 ツールでは、kid
の と、手順 2 でダウンロードした KEKforBYOK.publickey.pem ファイルを使用して、暗号化されたターゲット キーを BYOK ファイルに生成します。
接続されているコンピューターに BYOK ファイルを転送します。
注
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 で使用できます。 詳しくは、この価格と機能の比較に関するページをご覧ください。