このドキュメントでは、キー コンテナーに格納されているシークレット、キー、証明書をバックアップする方法について説明します。 バックアップは、キー コンテナーへのアクセスが失われる可能性が低い場合に、すべてのシークレットのオフライン コピーを提供することを目的としています。
概要
Azure Key Vault には、可用性の維持とデータ損失の防止に役立つ機能が自動的に用意されています。 重要な業務上の正当な理由がある場合にのみ、シークレットをバックアップします。 キー コンテナーでシークレットをバックアップすると、シークレットの有効期限が切れたりローテーションされたりしたときに、複数のログ セット、アクセス許可、バックアップを維持するなど、運用上の課題が生じる可能性があります。
Key Vault は、障害シナリオでの可用性を維持し、ユーザーの介入なしに、ペアのリージョンに要求を自動的にフェールオーバーします。 詳細については、「Azure Key Vault の可用性と冗長性」を参照してください。
シークレットの偶発的または悪意のある削除に対する保護が必要な場合は、キーボールトでソフト削除と消去保護機能を構成します。 詳細については、「Azure Key Vault の論理的な削除の概要」を参照してください。
制限事項
重要
Key Vault は、キー、シークレット、または証明書オブジェクトの過去 500 を超えるバージョンをバックアップする機能をサポートしていないため、これを試みるとエラーが発生する可能性があります。 キー、シークレット、または証明書の以前のバージョンを削除することはできません。
現在、Key Vault では、キー コンテナー全体を 1 回の操作でバックアップする方法は提供されていません。また、キー、シークレット、証明書は個別にバックアップする必要があります。
また、次の問題も考慮してください。
- 複数のバージョンのシークレットをバックアップすると、タイムアウト エラーが発生する可能性があります。
- バックアップでは、特定の時点のスナップショットが作成されます。 バックアップ中にシークレットが更新され、暗号化キーが一致しない可能性があります。
- 1 秒あたりの要求に対して Key Vault のサービス制限を超えると、キー保管庫はレート制限され、バックアップは失敗します。
設計に関する考慮事項
シークレット、キー、証明書などのキー コンテナー オブジェクトをバックアップすると、バックアップ操作によってオブジェクトが暗号化された BLOB としてダウンロードされます。 この BLOB は、Azure の外部では暗号化を解除できません。 この BLOB から使用可能なデータを取得するには、同じ Azure サブスクリプションと Azure 地域内のキー コンテナーに BLOB を復元する必要があります。
前提条件
キー コンテナー オブジェクトをバックアップするには、次のものが必要です。
- Azure サブスクリプションに対する共同作成者レベル以上のアクセス許可。
- バックアップしたいシークレットを含むプライマリ キー ボールト。
- セカンダリのキー保管庫でシークレットが復元されます。
Azure portal からのバックアップと復元
このセクションの手順に従って、Azure portal を使用してオブジェクトをバックアップおよび復元します。
バックアップ
Azure ポータルにアクセスします。
キー コンテナーを選択します。
バックアップするオブジェクト (シークレット、キー、または証明書) に移動します。
オブジェクトを選択します。
[バックアップのダウンロード] を選択します。
[Download] を選択します。
暗号化された BLOB を安全な場所に格納します。
復元する
Azure ポータルにアクセスします。
キー コンテナーを選択します。
復元するオブジェクトの種類 (シークレット、キー、または証明書) に移動します。
[バックアップ 復元] を選択します。
暗号化された BLOB を格納した場所に移動します。
[OK] を選択.
Azure CLI または Azure PowerShell からのバックアップと復元
## Log in to Azure
az login
## Set your subscription
az account set --subscription {AZURE SUBSCRIPTION ID}
## Register Key Vault as a provider
az provider register -n Microsoft.KeyVault
## Back up a certificate in Key Vault
az keyvault certificate backup --file {File Path} --name {Certificate Name} --vault-name {Key Vault Name} --subscription {SUBSCRIPTION ID}
## Back up a key in Key Vault
az keyvault key backup --file {File Path} --name {Key Name} --vault-name {Key Vault Name} --subscription {SUBSCRIPTION ID}
## Back up a secret in Key Vault
az keyvault secret backup --file {File Path} --name {Secret Name} --vault-name {Key Vault Name} --subscription {SUBSCRIPTION ID}
## Restore a certificate in Key Vault
az keyvault certificate restore --file {File Path} --vault-name {Key Vault Name} --subscription {SUBSCRIPTION ID}
## Restore a key in Key Vault
az keyvault key restore --file {File Path} --vault-name {Key Vault Name} --subscription {SUBSCRIPTION ID}
## Restore a secret in Key Vault
az keyvault secret restore --file {File Path} --vault-name {Key Vault Name} --subscription {SUBSCRIPTION ID}