Azure CLI を使用してマネージド HSM を管理する
注意
Key Vault では、コンテナーとマネージド HSM という 2 種類のリソースがサポートされています。 この記事では、Managed HSM について説明します。 コンテナーの管理方法については、「Azure CLI を使用して Key Vault を管理する」を参照してください。
Managed HSM の概要については、Managed HSM の概要に関するページを参照してください
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
前提条件
この記事の手順を完了するには、次のものが必要です。
- Microsoft Azure サブスクリプション。 サブスクリプションがない場合でも、無料試用版にサインアップできます。
- Azure CLI バージョン 2.25.0 以降。 バージョンを確認するには、
az --version
を実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。 - お使いのサブスクリプション内のマネージド 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 キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
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 つのタグとして usage と appname があります。 タグは、追跡と管理のためにキーにメタデータを追加する場合に役立ちます。
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 1421、1422、1423、1424 で定義されているように)。
az keyvault key import --hsm-name ContosoHSM --name myrsakey --pem-file mycert.key --pem-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)を参照してください
次のステップ
- Key Vault コマンドの完全な Azure CLI リファレンスについては、「Key Vault CLI リファレンス」をご覧ください。
- プログラミング リファレンスについては、「Azure Key Vault 開発者ガイド」を参照してください。
- Managed HSM のロール管理について、さらに学習します
- Managed HSM のベスト プラクティスについて、さらに学習します