Azure CLI を使用してマネージド HSM を管理する

注意

Key Vault では、コンテナーとマネージド HSM という 2 種類のリソースがサポートされています。 この記事では、Managed HSM について説明します。 コンテナーの管理方法については、「Azure CLI を使用して Key Vault を管理する」を参照してください。

Managed HSM の概要については、Managed HSM の概要に関するページを参照してください

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

前提条件

この記事の手順を完了するには、次のものが必要です。

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 キーを選択して、コードまたはコマンドを実行します。

Azure へのサインイン

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

az login

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

注意

以下のすべてのコマンドは、2 つの使用方法を示しています。 1 つは --hsm-name--name (キー名用) パラメーターを使用し、もう 1 つは --id パラメーターを使って、必要に応じてキー名を含む URL 全体を指定できます。 後者の方法は、呼び出し元 (ユーザーまたはアプリケーション) にコントロール プレーンに対する読み取りアクセス権がなく、データ プレーンに対する制限付きアクセスだけがある場合に便利です。

注意

キー マテリアルとの一部のやり取りでは、特定のローカル RBAC アクセス許可が必要です。 組み込みのローカル RBAC ロールとアクセス許可の全リストについては、「Managed HSM のローカル RBAC の組み込みロール」を参照してください。 これらのアクセス許可をユーザーに割り当てるには、「マネージド HSM へのアクセスをセキュリティで保護する」を参照してください。

HSM キーを作成する

注意

Managed HSM に生成またはインポートされたキーはエクスポートできません。 主要な移植性と持続性については、推奨されるベスト プラクティスを参照してください。

キーを作成するには、az keyvault key create コマンドを使用します。

RSA キーを作成する

次の例は、wrapKey、unwrapKey 操作 (--ops) にのみ使用される 3072 ビット RSA キーを作成する方法を示しています。

az keyvault key create --hsm-name ContosoMHSM --name myrsakey --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

## OR
# Note the key name (myrsakey) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.azure.net/keys/myrsakey --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

get 操作では、公開キーとキーの属性のみが返されることに注意してください。 秘密キー (非対称キーの場合) またはキー マテリアル (対称キーの場合) は返されません。

EC キーを作成する

次の例は、P-256 曲線を含む EC キーを作成する方法を示しています。これは sign および verify 操作 (--ops) にのみ使用され、2 つのタグとして usageappname があります。 タグは、追跡と管理のためにキーにメタデータを追加する場合に役立ちます。

az keyvault key create --hsm-name ContosoMHSM --name myec256key --ops sign verify  --tags ‘usage=signing] appname=myapp’ --kty EC-HSM --curve P-256

## OR
# Note the key name (myec256key) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.azure.net/keys/myec256key --ops sign verify  --tags ‘usage=signing] appname=myapp’ --kty EC-HSM --curve P-256

256 ビット対称キーを作成する

次の例は、encrypt と decrypt 操作 (--ops) にのみ使用される 256 ビット対称キーを作成する方法を示しています。

az keyvault key create --hsm-name ContosoMHSM --name myaeskey --ops encrypt decrypt  --tags --kty oct-HSM --size 256

## OR
# Note the key name (myaeskey) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.azure.net/keys/myaeskey --ops encrypt decrypt  --tags ‘usage=signing] appname=myapp’ --kty oct-HSM --size 256

キー属性とタグを表示する

キーの属性、バージョン、およびタグを表示するには、az keyvault key show コマンドを使用します。

az keyvault key show --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key show --id https://ContosoMHSM.managedhsm.azure.net/keys/myrsakey

キーのリスト

マネージド HSM 内のすべてのキーを一覧表示するには、az keyvault key list コマンドを使用します。

az keyvault key list --hsm-name ContosoHSM

## OR
# use full URI

az keyvault key list --id https://ContosoMHSM.managedhsm.azure.net/

キーの削除

マネージド HSM からキーを削除するには、az keyvault key delete コマンドを使用します。 論理的な削除が常に有効にされていることに注意してください。 そのため、削除されたキーは削除された状態のまま保持され、保持日数が経過してキーが消去 (完全に削除) されて復旧できなくなるまでは、復旧できます。

az keyvault key delete --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key delete --id https://ContosoMHSM.managedhsm.azure.net/keys/myrsakey

削除したキーを一覧表示する

マネージド HSM の削除状態のすべてのキーを一覧表示するには、az keyvault key list-deleted コマンドを使用します。

az keyvault key list-deleted --hsm-name ContosoHSM

## OR
# use full URI

az keyvault key list-deleted --id https://ContosoMHSM.managedhsm.azure.net/

削除したキーを復旧する (削除を取り消す)

マネージド HSM の削除状態のすべてのキーを一覧表示するには、az keyvault key list-deleted コマンドを使用します。 削除したキーを復旧するときに、--id パラメーターを使用してキーを復旧する (削除を取り消す) 必要がある場合は、az keyvault key list-deleted コマンドから取得した削除済みキーの recoveryId 値を書き留めておく必要があります。

az keyvault key recover --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key recover --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey

キーを消去 (完全に削除) する

キーを消去 (完全に削除) するには、az keyvault key purge コマンドを使用します。

注意

マネージド HSM で消去保護が有効になっている場合、消去操作は許可されません。 保持期間を過ぎると、キーは自動的に消去されます。

az keyvault key purge --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key purge --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey

単一キーのバックアップを作成する

キーのバックアップを作成するには、az keyvault key backup を使用します。 バックアップ ファイルは、ソース HSM のセキュリティ ドメインに暗号的に結び付けられている、暗号化された BLOB です。 同じセキュリティ ドメインを共有する HSM でのみ復元できます。 詳細については、セキュリティ ドメインに関するページを参照してください。

az keyvault key backup --hsm-name ContosoHSM --name myrsakey --file myrsakey.backup

## OR
# Note the key name (myaeskey) in the URI

az keyvault key backup --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey  --file myrsakey.backup

バックアップから単一キーを復元する

単一キーを復元するには、az keyvault key restore を使用します。 バックアップが作成されたソース HSM は、キーが復元されるターゲット HSM と同じセキュリティ ドメインを共有している必要があります。

注意

同じ名前のキーがアクティブまたは削除済みの状態である場合、復元は成功しません。

az keyvault key restore --hsm-name ContosoHSM --name myrsakey --file myrsakey.backup

## OR
# Note the key name (myaeskey) in the URI

az keyvault key restore --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey --file myrsakey.backup

ファイルからキーをインポートする

ファイルからキー (RSA と EC のみ) をインポートするには、az keyvault key import コマンドを使用します。 証明書ファイルには秘密キーが必要であり、PEM エンコードを使用する必要があります (RFC 1421142214231424 で定義されているように)。

az keyvault key import --hsm-name ContosoHSM --name myrsakey --pem-file mycert.key --password 'mypassword'

## OR
# Note the key name (myaeskey) in the URI

az keyvault key recover --id https://ContosoMHSM.managedhsm.azure.net/deletedKeys/myrsakey --pem-file mycert.key --password 'mypassword'

オンプレミスの HSM からマネージド HSM にキーをインポートする方法については、HSM で保護されたキーをマネージド HSM にインポートする (BYOK)を参照してください

次のステップ