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

求助:通过Azure DevOps实现APIM管理证书的自动化添加与续期

实现Azure DevOps自动化Key Vault证书添加至APIM及自动续期

1. 自动化将Key Vault证书添加至API Management

首先确保Azure DevOps的服务主体拥有以下权限:

  • Key Vault:Certificate Get权限(通过访问策略配置)
  • API Management:Microsoft.ApiManagement/service/certificates/write权限(通过RBAC角色或自定义权限配置)

在Azure DevOps Pipeline中添加Azure CLI任务,选择目标Azure订阅后,运行以下命令完成证书导入:

# 替换为你的资源信息
KEY_VAULT_NAME="your-keyvault-name"
CERT_NAME="your-certificate-name"
RESOURCE_GROUP="your-resource-group"
APIM_NAME="your-apim-instance-name"
APIM_CERT_DISPLAY_NAME="apim-cert-display-name"

# 获取Key Vault证书的完整ID(包含版本)
CERT_ID=$(az keyvault certificate show --vault-name $KEY_VAULT_NAME --name $CERT_NAME --query "id" -o tsv)

# 将证书关联到APIM
az apim certificate create --resource-group $RESOURCE_GROUP --service-name $APIM_NAME --name $APIM_CERT_DISPLAY_NAME --key-vault-id $CERT_ID

如果需要覆盖已存在的APIM证书,添加--yes参数自动确认替换。

2. 实现证书自动续期

步骤1:配置Key Vault证书自动续期

先确保Key Vault中的证书策略已开启自动续期,运行以下CLI命令配置:

# 设置证书在生命周期80%时自动续期
az keyvault certificate update-policy --vault-name $KEY_VAULT_NAME --name $CERT_NAME --renew-at-percentage-lifetime 80 --auto-renew true

步骤2:在Azure DevOps中触发APIM证书更新

Key Vault证书续期后,APIM不会自动同步新版本,需要通过Pipeline触发更新,推荐两种方式:

方式A:定时检查更新

创建定时触发的Azure DevOps Pipeline,每周/每日运行以下脚本,对比Key Vault最新证书版本与APIM当前使用版本,不一致则更新:

# 获取Key Vault最新证书ID
LATEST_CERT_ID=$(az keyvault certificate show --vault-name $KEY_VAULT_NAME --name $CERT_NAME --query "id" -o tsv)

# 获取APIM当前关联的证书ID
CURRENT_CERT_ID=$(az apim certificate show --resource-group $RESOURCE_GROUP --service-name $APIM_NAME --name $APIM_CERT_DISPLAY_NAME --query "keyVault.id" -o tsv)

# 版本不一致时更新APIM证书
if [ "$LATEST_CERT_ID" != "$CURRENT_CERT_ID" ]; then
    az apim certificate create --resource-group $RESOURCE_GROUP --service-name $APIM_NAME --name $APIM_CERT_DISPLAY_NAME --key-vault-id $LATEST_CERT_ID --yes
    echo "APIM证书已更新至最新版本"
else
    echo "APIM使用的已是最新证书版本"
fi

方式B:事件驱动触发

通过Azure Event Grid监听Key Vault的CertificateNewVersionCreated事件,当证书续期生成新版本时,触发Azure DevOps Pipeline执行上述更新脚本。这种方式更实时,无需定时轮询。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:55:21