次の方法で共有


完全バックアップと復元と選択的キーの復元

この機能は、リソースの種類がマネージド HSM の場合にのみ使用できます。

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

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

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

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

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

  1. ユーザー割り当てマネージド ID (UAMI) を Managed HSM サービスに割り当てる。 ストレージ アカウントでパブリック ネットワーク アクセスまたはプライベート ネットワーク アクセスが有効になっているかどうかに関係なく、ユーザー割り当てマネージド ID を使用して、MHSM をバックアップおよび復元できます。 ストレージ アカウントがプライベート エンドポイントの背後にある場合、UAMI メソッドは信頼されたサービス バイパスと連携してバックアップと復元を可能にします。
  2. アクセス許可 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 に自動的にはコピーされません。 Azure Cloud Shell の Try It の例を示すスクリーンショット。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Azure Cloud Shell を起動するボタン。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Azure portal の [Cloud Shell] ボタンを示すスクリーンショット

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows および Linux では Ctrl+Shift+V を選択し、macOS では Cmd+Shift+V を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。

  4. を選択し、 を入力してコードまたはコマンドを実行します。」

ユーザー割り当てマネージド 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 {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

次のステップ