完全なバックアップと復元および選択的キー復元
注意
この機能は、マネージド HSM というリソースの種類でのみ使用できます。
Managed HSM では、すべてのキー、バージョン、属性、タグ、およびロールの割り当てを含む、HSM のコンテンツ全体の完全バックアップを作成できます。 バックアップは、HSM のセキュリティ ドメインに関連付けられた暗号化キーを使用して暗号化されます。
バックアップはデータ プレーン操作です。 バックアップ操作を開始する呼び出し元には、データ アクション Microsoft.KeyVault/managedHsm/backup/start/action を実行するためのアクセス許可が必要です。
完全バックアップを実行するアクセス許可があるのは、次の組み込みロールのみです。
- Managed HSM 管理者
- Managed HSM バックアップ
完全バックアップ/復元を実行するには 2 つの方法があります。
- ユーザー割り当てマネージド ID (UAMI) をマネージド HSM サービスに割り当てます。 ストレージ アカウントで公衆ネットワーク アクセスかプライベート ネットワーク アクセスのどちらが有効かに関係なく、ユーザー割り当てマネージド ID を使って MHSM をバックアップおよび復元できます。 ストレージ アカウントがプライベート エンドポイントの内側にある場合、UAMI メソッドは信頼されたサービス バイパスと連携してバックアップと復元を可能にします。
- アクセス許可 'crdw' でストレージ コンテナー SAS トークンを使います。 ストレージ コンテナー SAS トークンを使用してバックアップと復元を行うには、ストレージ アカウントの公衆 ネットワーク アクセスを有効にする必要があります。
完全バックアップを実行するには、次の情報を指定する必要があります。
- HSM の名前または URL
- ストレージ アカウント名
- ストレージ アカウントの BLOB ストレージ コンテナー
- ユーザーが割り当てたマネージド ID またはアクセス許可 'crdw' を持つストレージ コンテナー SAS トークン
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 キーを選択して、コードまたはコマンドを実行します。
ユーザー割り当てマネージド 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 に格納されているものはすべて消去され、ソースのバックアップが作成された時点と同じ状態に戻ります。
重要
完全復元は、非常に破壊的であり、大規模な中断を伴う操作です。 したがって、restore
操作を実行するには、少なくともその前の 30 分に、復元先の HSM の完全バックアップを完了しておく必要があります。
復元はデータ プレーン操作です。 復元操作を開始する呼び出し元には、データ アクション Microsoft.KeyVault/managedHsm/restore/start/action を実行するためのアクセス許可が必要です。 バックアップが作成されたソース HSM と復元が実行される宛先 HSM のセキュリティ ドメインは同じである必要があります。 Managed HSM セキュリティ ドメインの詳細を確認してください。
完全復元を実行するには、2 つの方法があります。 完全復元を実行するには、次の情報を指定する必要があります。
- HSM の名前または URL
- ストレージ アカウント名
- ストレージ アカウントの BLOB コンテナー
- ユーザーが割り当てたマネージド ID またはアクセス許可
rl
を持つストレージ コンテナー SAS トークン - ソース バックアップが格納されているストレージ コンテナーのフォルダー名
復元は実行時間の長い操作ですが、ジョブ 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 セキュリティ ドメインの詳細を確認します。