Azure Key Vault のバックアップと復元
このドキュメントでは、キー コンテナーに格納されているシークレット、キー、および証明書をバックアップする方法について説明します。 バックアップの目的は、キー コンテナーにアクセスできなくなるといった不測の事態が発生した場合に、すべてのシークレットのオフライン コピーを入手できることにあります。
概要
Azure Key Vault は、可用性を維持し、データの損失を防ぐうえで役立つ機能を自動的に提供します。 業務上の正当かつ重要な理由がある場合にのみ、シークレットをバックアップするようにしてください。 キー コンテナーにシークレットをバックアップすると、シークレットの有効期限が切れたりシークレットのローテーションを行ったりした際に、ログ、アクセス許可、およびバックアップの一式を複数維持しなければならないなど、運用上の負担が発生します。
Key Vault を使用すると、障害状況下で可用性を維持し、ユーザーの介入なしに自動的に要求をペア リージョンにフェールオーバーできます。 詳細については、「Azure Key Vault の可用性と冗長性」を参照してください。
不注意や悪意によってシークレットが削除されないようにする場合は、キー コンテナーに論理的な削除と消去保護の機能を構成します。 詳細については、「Azure Key Vault の論理的な削除の概要」を参照してください。
制限事項
重要
Key Vault で、500 を超える過去のバージョンのキー、シークレット、または証明書オブジェクトをバックアップする機能はサポートされていません。 キー、シークレット、または証明書オブジェクトをバックアップしようとすると、エラーが発生するおそれがあります。 キー、シークレット、または証明書の以前のバージョンを削除することはできません。
Key Vault では現在、1 回の操作でキー コンテナー全体をバックアップする方法は提供されていません。キー、シークレットおよび証明書は、手動でバックアップする必要があります。
以下の問題についても考慮に入れてください。
- 複数のバージョンがあるシークレットをバックアップすると、タイムアウト エラーが発生する可能性があります。
- バックアップによって、ポイントインタイム スナップショットが作成されます。 バックアップ中にシークレットが更新された場合、暗号化キーの不一致が生じることがあります。
- 1 秒あたりの要求数に関するキー コンテナー サービスの制限を超えると、キー コンテナーがスロットルされ、バックアップが失敗する原因となります。
設計上の考慮事項
キー コンテナー オブジェクト (シークレット、キー、証明書など) をバックアップすると、そのオブジェクトは、バックアップ操作によって、暗号化された BLOB としてダウンロードされます。 Azure の外部でこの BLOB の暗号化を解除することはできません。 この BLOB から有効なデータを取得するには、同じ Azure サブスクリプションと Azure 地域内のキー コンテナーに BLOB を復元する必要があります。
前提条件
キー コンテナー オブジェクトをバックアップするには、次のものが必要です。
- Azure サブスクリプションに対する共同作成者レベル以上のアクセス許可。
- バックアップ対象のシークレットを格納するプライマリ キー コンテナー。
- シークレットの復元先となるセカンダリ キー コンテナー
Azure portal からのバックアップと復元
このセクションの手順に従い、Azure portal を使用してオブジェクトをバックアップおよび復元します。
バックアップ
Azure Portal にアクセスします。
キー コンテナーを選択します。
バックアップするオブジェクト (シークレット、キー、または証明書) に移動します。
オブジェクトを選択します。
[バックアップのダウンロード] を選択します。
[Download] を選択します。
暗号化された BLOB を安全な場所に保存します。
復元
Azure Portal にアクセスします。
キー コンテナーを選択します。
復元するオブジェクトの種類 (シークレット、キー、または証明書) に移動します。
[バックアップの復元] を選択します。
暗号化された 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}
次のステップ
- リージョン間で Azure キー コンテナーを移動する
- Key Vault の Key Vault ログ記録を有効にする