You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何备份与恢复包含密钥、机密、证书及RBAC的Azure Key Vault?

Azure Key Vault 备份与恢复全流程(含密钥、机密、证书及RBAC权限)

一、备份操作

1. 密钥(Keys)备份

单个密钥备份

使用Azure CLI执行以下命令,将指定密钥备份到本地文件:

az keyvault key backup --vault-name <你的Vault名称> --name <密钥名称> --file <备份文件路径,如./key-backup.bin>

批量备份所有密钥

先列出Vault内所有密钥,再循环备份:

# 列出所有密钥名称并保存到临时文件
az keyvault key list --vault-name <你的Vault名称> --query "[].name" -o tsv > key-names.txt

# 循环备份每个密钥(提前创建./backups/keys目录)
while read -r key_name; do
  az keyvault key backup --vault-name <你的Vault名称> --name "$key_name" --file "./backups/keys/$key_name-backup.bin"
done < key-names.txt

2. 机密(Secrets)备份

单个机密备份

az keyvault secret backup --vault-name <你的Vault名称> --name <机密名称> --file <备份文件路径,如./secret-backup.bin>

批量备份所有机密

# 列出所有机密名称
az keyvault secret list --vault-name <你的Vault名称> --query "[].name" -o tsv > secret-names.txt

# 循环备份(提前创建./backups/secrets目录)
while read -r secret_name; do
  az keyvault secret backup --vault-name <你的Vault名称> --name "$secret_name" --file "./backups/secrets/$secret_name-backup.bin"
done < secret-names.txt

3. 证书(Certificates)备份

证书备份会包含证书本身、私钥(若为可导出类型)及关联的密钥/机密:

单个证书备份

az keyvault certificate backup --vault-name <你的Vault名称> --name <证书名称> --file <备份文件路径,如./cert-backup.bin>

批量备份所有证书

# 列出所有证书名称
az keyvault certificate list --vault-name <你的Vault名称> --query "[].name" -o tsv > cert-names.txt

# 循环备份(提前创建./backups/certs目录)
while read -r cert_name; do
  az keyvault certificate backup --vault-name <你的Vault名称> --name "$cert_name" --file "./backups/certs/$cert_name-backup.bin"
done < cert-names.txt

4. RBAC权限备份

Key Vault的RBAC权限属于Azure RBAC体系,需单独导出角色分配:

az role assignment list --scope "/subscriptions/<订阅ID>/resourceGroups/<资源组名称>/providers/Microsoft.KeyVault/vaults/<你的Vault名称>" --output json > rbac-backup.json

替换<订阅ID>、<资源组名称>和<你的Vault名称>为实际值,备份文件会保存所有针对该Vault的角色分配信息。

二、恢复操作

1. 密钥(Keys)恢复

单个密钥恢复

az keyvault key restore --vault-name <目标Vault名称> --file <备份文件路径>

批量恢复所有密钥

# 遍历密钥备份目录下的所有文件
for backup_file in ./backups/keys/*.bin; do
  az keyvault key restore --vault-name <目标Vault名称> --file "$backup_file"
done

2. 机密(Secrets)恢复

单个机密恢复

az keyvault secret restore --vault-name <目标Vault名称> --file <备份文件路径>

批量恢复所有机密

for backup_file in ./backups/secrets/*.bin; do
  az keyvault secret restore --vault-name <目标Vault名称> --file "$backup_file"
done

3. 证书(Certificates)恢复

单个证书恢复

az keyvault certificate restore --vault-name <目标Vault名称> --file <备份文件路径>

批量恢复所有证书

for backup_file in ./backups/certs/*.bin; do
  az keyvault certificate restore --vault-name <目标Vault名称> --file "$backup_file"
done

注意:若目标Vault已存在同名证书,恢复操作会失败,需先删除同名证书或重命名后再恢复。

4. RBAC权限恢复

需借助jq工具解析备份的JSON文件(提前安装jq:sudo apt install jq或brew install jq):

# 遍历备份的角色分配并逐一创建
cat rbac-backup.json | jq -c '.[]' | while read -r assignment; do
  role_name=$(echo "$assignment" | jq -r '.roleDefinitionName')
  principal_id=$(echo "$assignment" | jq -r '.principalId')
  scope=$(echo "$assignment" | jq -r '.scope')
  
  az role assignment create --role "$role_name" --assignee "$principal_id" --scope "$scope"
done

注意:执行恢复的账号需拥有目标Vault所在资源的Owner或User Access Administrator权限;若备份中的主体(用户/组/服务主体)在目标租户中不存在,该条角色分配会恢复失败。

关键注意事项

  • 备份文件加密绑定源租户,仅能在同一Azure租户内的Vault中恢复。
  • 恢复前确保目标Vault已开启软删除和清除保护(与源Vault配置一致可避免意外数据丢失)。
  • 批量操作前建议先测试单个备份/恢复流程,确认无问题后再执行批量操作。

内容的提问来源于stack exchange,提问作者One Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:20:14