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

如何备份与恢复包含密钥、机密、证书及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

相关推荐

iPhone突然被锁住,就是这两个锁的问题!_手机网易网
ps图层怎么移动
365外网足球

ps图层怎么移动

📅 09-01 👁️ 6891
汉语词典> 发明
beat365中国

汉语词典> 发明

📅 01-25 👁️ 7987
温州电子竞技培训班在哪里 温州电竞学校地址
365bet苹果版

温州电子竞技培训班在哪里 温州电竞学校地址

📅 07-28 👁️ 6964
原神摩拉速刷点位推荐
beat365中国

原神摩拉速刷点位推荐

📅 01-21 👁️ 1363
什么是癫疯病有哪些症状表现
beat365中国

什么是癫疯病有哪些症状表现

📅 10-27 👁️ 1603
人体有多少孔洞?有何依据?
365bet苹果版

人体有多少孔洞?有何依据?

📅 07-28 👁️ 874
荘:荘怎么读,荘字什么意思?
365bet苹果版

荘:荘怎么读,荘字什么意思?

📅 12-08 👁️ 9833
[分享]CD 16 bit 44.1kHz 的由來
365bet苹果版

[分享]CD 16 bit 44.1kHz 的由來

📅 10-22 👁️ 7054