注
Key Vault は、コンテナーとマネージド HSM という 2 種類のリソースをサポートしています。 この記事では、 Managed HSM について説明します。 コンテナーを管理する方法については、 Azure CLI を使用した Key Vault の管理に関するページを参照してください。
Managed HSM の概要については、「Managed HSM とは」を参照してください。
前提条件
この記事の手順を完了するには、次のものが必要です。
- 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 キーを作成する
注
マネージド 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 キーを作成する
次の例は、署名と検証操作 (--ops) にのみ使用され、使用法とアプリ名の 2 つのタグを持つ P-256 曲線を使用して EC キーを作成する方法を示しています。 タグは、追跡と管理のためにキーにメタデータを追加する場合に役立ちます。
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 ビット対称キーを作成する
この例では、暗号化と暗号化解除の操作 (--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
パラメーターを使用してキーを復旧する (削除を取り消す) 必要がある場合は、recoveryId
コマンドから取得した削除済みキーの az keyvault key list-deleted
値を書き留めておく必要があります。
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 で保護されたキーを Managed HSM (BYOK) にインポートする」を参照してください。
次のステップ
- Key Vault コマンドの完全な Azure CLI リファレンスについては、 Key Vault CLI リファレンスを参照してください。
- プログラミングリファレンスについては、Azure Key Vault 開発者ガイドを参照してください
- Managed HSM のロール管理について、さらに学習します
- Managed HSM のベスト プラクティスの詳細を確認する