HSM で保護されたキーを Key Vault にインポートする (BYOK)
Azure Key Vault を使用するときの安心感をさらに高めるために、ハードウェア セキュリティ モジュール (HSM) でキーをインポートしたり、生成したりできます。キーが HSM の境界内から出ることはありません。 多くの場合、このシナリオは Bring Your Own Key (BYOK) と呼ばれます。 Key Vault では、FIPS 140 適合の HSM を使ってキーを保護します。
この記事の情報は、Azure Key Vault と共に使用する独自の 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 ブランドおよびモデル
|
|
Entrust | 製造元、 サービスとしての HSM |
|
nCipher の新しい BYOK ツールとドキュメント |
Fortanix | 製造元、 サービスとしての HSM |
|
SDKMS キーを BYOK 用クラウド プロバイダーにエクスポートする - Azure Key Vault |
Futurex | 製造元、 サービスとしての HSM |
|
Futurex 統合ガイド - Azure Key Vault |
IBM | 製造元 | IBM 476x、CryptoExpress | IBM Enterprise Key Management Foundation |
Marvell | Manufacturer | 以下を含む LiquidSecurity のすべての HSM
|
Marvell の BYOK ツールとドキュメント |
nCipher | 製造元、 サービスとしての HSM |
|
nCipher の新しい BYOK ツールとドキュメント |
Securosys SA | 製造元、 サービスとしての HSM |
Primus HSM ファミリ、Securosys Clouds HSM | Primus の BYOK ツールとドキュメント |
StorMagic | ISV (エンタープライズ キー管理システム) | 以下を含む複数の HSM ブランドおよびモデル
|
SvKMS と Azure Key Vault の BYOK |
Thales | Manufacturer |
|
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 ツールでは、手順 1 の kid
と、手順 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 で使用できます。 詳しくは、この価格と機能の比較に関するページをご覧ください。