完全なバックアップと復元および選択的キー復元

注意

この機能は、マネージド HSM というリソースの種類でのみ使用できます。

Managed HSM では、すべてのキー、バージョン、属性、タグ、およびロールの割り当てを含む、HSM のコンテンツ全体の完全バックアップを作成できます。 バックアップは、HSM のセキュリティ ドメインに関連付けられた暗号化キーを使用して暗号化されます。

バックアップはデータ プレーン操作です。 バックアップ操作を開始する呼び出し元には、データ アクション Microsoft.KeyVault/managedHsm/backup/start/action を実行するためのアクセス許可が必要です。

完全バックアップを実行するアクセス許可があるのは、次の組み込みロールのみです。

  • Managed HSM 管理者
  • Managed HSM バックアップ

完全バックアップ/復元を実行するには 2 つの方法があります。

  1. ユーザー割り当てマネージド ID (UAMI) をマネージド HSM サービスに割り当てます。 ストレージ アカウントで公衆ネットワーク アクセスかプライベート ネットワーク アクセスのどちらが有効かに関係なく、ユーザー割り当てマネージド ID を使って MHSM をバックアップおよび復元できます。 ストレージ アカウントがプライベート エンドポイントの内側にある場合、UAMI メソッドは信頼されたサービス バイパスと連携してバックアップと復元を可能にします。
  2. アクセス許可 '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 に自動的にはコピーされません。 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 キーを選択して、コードまたはコマンドを実行します。

ユーザー割り当てマネージド ID を使用してバックアップと復元を行う場合の前提条件:

  1. Azure CLI がバージョン 2.56.0 以降であることを確認します。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。
  2. ユーザー割り当てマネージド ID を作成する
  3. ストレージ アカウントを作成します (または、既存のストレージ アカウントを使用します)。
  4. ストレージ アカウントで公衆ネットワーク アクセスが無効になっている場合は、[ネットワーク] タブの [例外] で、ストレージ アカウントで信頼できるサービス バイパスを有効にします。
  5. 手順 2 で作成したユーザー割り当てマネージド ID に「ストレージ BLOB データ共同作成者」ロール アクセスを提供します。 これを行うには、ポータルの [アクセス制御] タブ - > [ロールの割り当ての追加] に移動します。 次に、[マネージド ID] を選択し、手順 2 で作成したマネージド ID -> [レビューと割り当て] を選択します
  6. 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 a1ba9aaa-b7f6-4a33-b038-6e64553a6c7b)

# 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 a1ba9aaa-b7f6-4a33-b038-6e64553a6c7b)

# Backup HSM

az keyvault backup start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --subscription 361da5d4-a47a-4c79-afdd-d66f684f4070

完全復元

完全復元を実行すると、以前のバックアップを使用して、すべてのキー、バージョン、属性、タグ、ロールの割り当てを含む HSM のコンテンツを完全に復元できます。 現在 HSM に格納されているものはすべて消去され、ソースのバックアップが作成された時点と同じ状態に戻ります。

重要

完全復元は、非常に破壊的であり、大規模な中断を伴う操作です。 したがって、restore 操作を実行するには、その前の 30 分に完全バックアップを完了しておく必要があります。

復元はデータ プレーン操作です。 復元操作を開始する呼び出し元には、データ アクション 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 a1ba9aaa-b7f6-4a33-b038-6e64553a6c7b)

# 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 a1ba9aaa-b7f6-4a33-b038-6e64553a6c7b)

# 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

次のステップ