Azure Key Vault 备份和还原

本文档介绍如何备份密钥保管库中存储的机密、密钥和证书。 备份旨在提供所有机密的脱机副本,而你不太可能失去对密钥保管库的访问权限。

概述

Azure Key Vault 自动提供功能来帮助维护可用性并防止数据丢失。 仅当具有关键业务理由时,才备份机密。 在密钥保管库中备份机密可能会带来操作上的挑战,例如在机密过期或轮换时维护多套日志、权限和备份。

Key Vault 在灾难情况下保持可用性,会将请求自动切换到配对区域,而无需用户进行任何干预。 有关详细信息,请参阅 Azure Key Vault 可用性和冗余

如果要防止意外或恶意删除机密,请在密钥保管库上配置软删除和清除保护功能。 有关详细信息,请参阅 Azure 密钥保管库软删除概述

局限性

重要

Key Vault 不支持备份超过 500 个以前版本的密钥、机密或证书对象,并且尝试这样做可能会导致错误。 无法删除密钥、机密或证书的历史版本。

Key Vault 当前不提供在单个作中备份整个密钥保管库的方法,并且必须单独备份密钥、机密和证书。

另请考虑以下问题:

  • 备份具有多个版本的机密可能导致超时错误。
  • 备份会创建一个时间点的快照。 机密可能会在备份期间续订,从而导致加密密钥不匹配。
  • 如果超过每秒请求的密钥保管库服务限制,密钥保管库将受到限制,备份将失败。

设计注意事项

备份密钥保管库对象(如机密、密钥或证书)时,备份操作会将该对象作为加密的 blob 下载。 此 Blob 无法在 Azure 外部解密。 若要从此 Blob 获取可用数据,必须将 Blob 还原到同一 Azure 订阅和 Azure 地理位置中的密钥保管库。

先决条件

若要备份 Key Vault 对象,必须具备:

  • Azure 订阅的参与者级或更高权限。
  • 包含要备份的机密的主密钥保管库。
  • 将要恢复机密的次级密钥保管库。

在 Azure 门户中进行备份和还原

按照本部分中的步骤使用 Azure 门户备份和还原对象。

备份

  1. 转到 Azure 门户。

  2. 选择密钥保管库。

  3. 转到要备份的对象(机密、密钥或证书)。

    显示在密钥保管库中选择密钥设置和对象的位置的屏幕截图。

  4. 选择对象。

  5. 选择 下载备份

    显示密钥保管库中“下载备份”按钮的位置的屏幕截图。

  6. 选择 下载

    屏幕截图显示密钥保管库中“下载”按钮的位置。

  7. 将加密的 Blob 存储在安全位置。

还原

  1. 转到 Azure 门户。

  2. 选择密钥保管库。

  3. 转到要还原的对象类型(机密、密钥或证书)。

  4. 选择“ 还原备份”。

    显示在密钥保管库中选择“还原备份”的位置的屏幕截图。

  5. 前往您存储加密 Blob 的位置。

  6. 选择“确定”

从 Azure CLI 或 Azure PowerShell 备份和还原

## Log in to Azure
az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud   //means return to Public Azure.

## 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}

后续步骤