注
この機能は、リソースの種類がマネージド HSM の場合にのみ使用できます。
Managed HSM では、すべてのキー、バージョン、属性、タグ、ロールの割り当てを含む、HSM のコンテンツ全体の完全バックアップの作成がサポートされています。 バックアップは、HSM のセキュリティ ドメインに関連付けられている暗号化キーで暗号化されます。
バックアップはデータプレーンの操作です。 バックアップ操作を開始する呼び出し元には、dataAction Microsoft.KeyVault/managedHsm/backup/start/action を実行するアクセス許可が必要です。
完全バックアップを実行するアクセス許可を持つのは、次の組み込みロールのみです。
- Managed HSM 管理者
- Managed HSM バックアップ
完全バックアップ/復元を実行するには、次の 2 つの方法があります。
- ユーザー割り当てマネージド ID (UAMI) を Managed HSM サービスに割り当てる。 ストレージ アカウントでパブリック ネットワーク アクセスまたはプライベート ネットワーク アクセスが有効になっているかどうかに関係なく、ユーザー割り当てマネージド ID を使用して、MHSM をバックアップおよび復元できます。 ストレージ アカウントがプライベート エンドポイントの背後にある場合、UAMI メソッドは信頼されたサービス バイパスと連携してバックアップと復元を可能にします。
- アクセス許可
crdwでストレージ コンテナー SAS トークンを使用する。 ストレージ コンテナー SAS トークンを使用してバックアップと復元を行うには、ストレージ アカウントでパブリック ネットワーク アクセスを有効にする必要があります。
完全バックアップを実行するには、次の情報を指定する必要があります。
- HSM 名または URL
- ストレージ アカウント名
- ストレージ アカウントの BLOB ストレージ コンテナー
- アクセス許可を持つユーザー割り当てのマネージド ID またはストレージコンテナーのSASトークン
crdw
Azure Cloud Shell
Azure は、ブラウザーから使用できる対話型シェル環境である Azure Cloud Shell をホストします。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
| Option | 例とリンク |
|---|---|
| コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは 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 を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。
「を選択し、 を入力してコードまたはコマンドを実行します。」
ユーザー割り当てマネージド ID を使用してバックアップと復元を行う場合の前提条件:
- Azure CLI バージョン 2.56.0 以降があることを確認します。 バージョンを確認するには、
az --versionを実行します。 インストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。 - ユーザー割り当てマネージド ID を作成します。
- ストレージ アカウントを作成します (または、既存のストレージ アカウントを使用します)。 ストレージ アカウントに不変ポリシーを適用することはできません。
- ストレージ アカウントでパブリック ネットワーク アクセスが無効になっている場合は、[ネットワーク] タブの [例外] で、ストレージ アカウントで信頼されたサービス バイパスを有効にします。
- ポータルの [アクセス制御] タブに移動し、[ロールの割り当ての追加] を選択して、手順 2 で作成したユーザー割り当てマネージド ID への "ストレージ BLOB データ共同作成者" ロールアクセスを提供します。 次に、[マネージド ID] を選択し、手順 2 で作成したマネージド ID を選択します -> 確認と割り当て
- Managed HSM を作成し、マネージド ID を関連付けます。
az keyvault create --hsm-name mhsmdemo2 -l mhsmlocation --retention-days 7 --administrators "initialadmin" --mi-user-assigned "/subscriptions/subid/resourcegroups/mhsmrgname/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userassignedidentitynamefromstep2"
既存の Managed HSM がある場合は、次のコマンドで MHSM を更新してマネージド ID を関連付けます。
az keyvault update-hsm --hsm-name mhsmdemo2 --mi-user-assigned "/subscriptions/subid/resourcegroups/mhsmrgname/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userassignedidentitynamefromstep2"
完全バックアップ
バックアップは実行時間の長い操作ですが、すぐにジョブ ID が返されます。 このジョブ ID を使用して、バックアップ プロセスの状態を確認できます。 バックアップ プロセスでは、次の名前付けパターン mhsm-{HSM_NAME}-{YYYY}{MM}{DD}{HH}{mm}{SS}を使用して指定されたコンテナー内にフォルダーが作成されます。ここで、HSM_NAMEはバックアップ対象のマネージド HSM の名前、YYYY、MM、DD、HH、MM、mm、SS は、バックアップ コマンドを受信した UTC の年、月、日付、時間、分、秒の日付/時刻です。
バックアップの進行中は、一部の HSM パーティションがバックアップ操作の実行中にビジー状態になっているので、HSM が完全なスループットで動作しない可能性があります。
注
不変ポリシーが適用されたストレージ アカウントへのバックアップはサポートされていません。
ユーザー割り当てマネージド ID を使用して HSM をバックアップする
az keyvault backup start --use-managed-identity true --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer
SAS トークンを使用して HSM をバックアップする
# time for 500 minutes later for SAS token expiry
end=$(date -u -d "500 minutes" '+%Y-%m-%dT%H:%MZ')
# Get storage account key
skey=$(az storage account keys list --query '[0].value' -o tsv --account-name mhsmdemobackup --subscription {subscription-id})
# Create a container
az storage container create --account-name mhsmdemobackup --name mhsmdemobackupcontainer --account-key $skey
# Generate a container sas token
sas=$(az storage container generate-sas -n mhsmdemobackupcontainer --account-name mhsmdemobackup --permissions crdw --expiry $end --account-key $skey -o tsv --subscription {subscription-id})
# Backup HSM
az keyvault backup start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --subscription {subscription-id}
完全復元
完全復元を使用すると、すべてのキー、バージョン、属性、タグ、ロールの割り当てを含む、以前のバックアップで HSM の内容を完全に復元できます。 HSM に現在格納されているすべてのものが消去され、ソース バックアップの作成時と同じ状態に戻ります。
Important
完全復元は破壊的で破壊的な操作です。 そのため、 restore 操作を実行するには、復元する HSM の完全バックアップを少なくとも 30 分前に完了する必要があります。
復元はデータ プレーン操作です。 復元操作を開始する呼び出し元には、dataAction Microsoft.KeyVault/managedHsm/restore/start/action を実行するアクセス許可が必要です。 バックアップが作成されたソース HSM と復元が実行されるターゲット HSM は、同じセキュリティ ドメインを持っている 必要があります 。 Managed HSM セキュリティ ドメインの詳細を参照してください。
完全復元を実行するには、2 つの方法があります。 完全復元を実行するには、次の情報を指定する必要があります。
- HSM 名または URL
- ストレージ アカウント名
- ストレージ アカウント ブロブ コンテナー
- アクセス許可を持つユーザー割り当てのマネージド ID またはストレージコンテナーのSASトークン
rl - ソース バックアップが格納されているストレージ コンテナー フォルダー名
復元は実行時間の長い操作ですが、すぐにジョブ ID が返されます。 このジョブ ID を使用して、復元プロセスの状態を確認できます。 復元プロセスが進行中の場合、HSM は復元モードになり、すべてのデータ プレーン コマンド (復元状態の確認を除く) が無効になります。
ユーザー割り当てマネージド ID を使用して HSM を復元する
az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --backup-folder mhsm-backup-foldername --use-managed-identity true
SAS トークンを使用して HSM を復元する
# time for 500 minutes later for SAS token expiry
end=$(date -u -d "500 minutes" '+%Y-%m-%dT%H:%MZ')
# Get storage account key
skey=$(az storage account keys list --query '[0].value' -o tsv --account-name mhsmdemobackup --subscription {subscription-id})
# Generate a container sas token
sas=$(az storage container generate-sas -n mhsmdemobackupcontainer --account-name mhsmdemobackup --permissions rl --expiry $end --account-key $skey -o tsv --subscription {subscription-id})
# Restore HSM
az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --backup-folder mhsm-mhsmdemo-2020083120161860
選択的キーの復元
選択的キー復元を使用すると、すべてのキー バージョンを持つ 1 つの個々のキーを以前のバックアップから HSM に復元できます。 選択的キーの復元を機能させるには、キーを消去する必要があります。 論理的に削除されたキーを回復する場合は、キーの回復を使用します。 キーの回復について詳しくは、こちらをご覧ください。
ユーザー割り当てマネージド ID を使用した選択的キー復元
az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --backup-folder mhsm-backup-foldername --use-managed-identity true --key-name rsa-key2
SAS トークンを使用した選択的キーの復元
az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --backup-folder mhsm-mhsmdemo-2020083120161860 --key-name rsa-key2
次のステップ
- Azure CLI を使用したマネージド HSM の管理に関するページを参照してください。
- Managed HSM セキュリティ ドメインの詳細を確認する