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

如何使用Azure CLI为文本文件中的Azure密钥创建新版本及编写循环设置脚本

Azure密钥批量管理脚本实现

准备工作

先创建一个文本文件(例如key-names.txt),每行存储一个Azure密钥的名称,格式示例:

db-admin-password
api-jwt-secret
blob-storage-key

1. 批量设置密钥属性与值(Bash脚本)

以下脚本读取文本文件中的密钥名,循环为每个密钥配置属性(如过期时间、内容类型)并设置密钥值,可按需修改参数和值的来源:

#!/bin/bash

# 配置基础参数
KEYVAULT_NAME="your-keyvault-name"
KEY_EXPIRY="2025-12-31T23:59:59Z"
CONTENT_TYPE="text/plain"

# 读取密钥名文件并循环处理
while IFS= read -r KEY_NAME; do
    # 跳过空行
    [[ -z "$KEY_NAME" ]] && continue

    # 替换为你的密钥值来源(可从变量、文件读取或生成随机值)
    KEY_VALUE="$(openssl rand -hex 16)"

    # 设置密钥属性与值
    az keyvault secret set \
        --vault-name "$KEYVAULT_NAME" \
        --name "$KEY_NAME" \
        --value "$KEY_VALUE" \
        --expires "$KEY_EXPIRY" \
        --content-type "$CONTENT_TYPE"

    echo "已处理密钥: $KEY_NAME"
done < "key-names.txt"

关键说明

  • IFS= read -r KEY_NAME:确保读取含空格的密钥名时不会出错
  • 密钥值可灵活替换:比如从键值对文件读取、调用企业密码管理工具获取,或生成随机值
  • 可选属性扩展:还可添加--not-before(生效时间)、--tags(分类标签)等参数

2. 批量创建密钥新版本

Azure Key Vault中,对已有密钥重新设置不同值时会自动生成新版本。如果需要批量为文本文件中的密钥创建新版本,复用上述脚本即可——只要新值与当前版本不同,就会生成新的版本记录。

若要基于现有密钥属性克隆并生成新版本,可使用以下简化脚本:

#!/bin/bash

KEYVAULT_NAME="your-keyvault-name"

while IFS= read -r KEY_NAME; do
    [[ -z "$KEY_NAME" ]] && continue

    # 生成新密钥值
    NEW_KEY_VALUE="$(openssl rand -hex 16)"

    # 创建新版本(自动继承原有属性,也可手动指定新属性)
    az keyvault secret set \
        --vault-name "$KEYVAULT_NAME" \
        --name "$KEY_NAME" \
        --value "$NEW_KEY_VALUE"

    echo "已为密钥 $KEY_NAME 创建新版本"
done < "key-names.txt"

PowerShell版本参考

如果使用PowerShell,实现逻辑一致:

$keyVaultName = "your-keyvault-name"
$keyExpiry = "2025-12-31T23:59:59Z"
$keyNames = Get-Content -Path "key-names.txt"

foreach ($keyName in $keyNames) {
    if ([string]::IsNullOrEmpty($keyName)) { continue }

    $keyValue = [System.Web.Security.Membership]::GeneratePassword(16, 2)
    az keyvault secret set `
        --vault-name $keyVaultName `
        --name $keyName `
        --value $keyValue `
        --expires $keyExpiry

    Write-Host "已处理密钥: $keyName"
}

注意事项

  • 执行脚本前需通过az login完成Azure CLI登录,且账号需拥有目标Key Vault的Secret Officer或更高权限
  • 提前清理密钥名文本文件中的空行,或保留脚本中的空行过滤逻辑
  • 密钥值生成方式可根据安全需求调整,比如使用Azure Key Vault内置的密码生成能力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:42:39