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

如何将Packer Azure模板的Azure CLI认证改为OIDC认证?

将Packer Azure模板从Azure CLI认证改为OIDC认证的步骤

前置检查

确保你的Packer版本≥1.8.0,且Azure插件版本≥2.0.0,可通过以下命令检查:

packer plugins list | grep azure

版本不足的话,执行更新:

packer plugins install github.com/hashicorp/azure

一、Azure 侧配置

1. 创建Azure AD应用程序

  • 登录Azure Portal,进入Azure Active Directory → 应用注册 → 新注册
  • 填写应用名称,选择账户类型(按需选单租户/多租户),无需设置重定向URI,完成注册
  • 记录应用的客户端ID和租户ID(在应用概述页面可查看)

2. 添加OIDC联合凭据

  • 进入刚创建的应用程序 → 证书和密码 → 联合凭据 → 添加凭据
  • 选择凭据类型为其他颁发者(如果是CI/CD环境,可选择对应平台如GitHub)
  • 填写配置信息:
    • 颁发者URL:根据你的OIDC提供商填写(本地测试可后续用Azure CLI生成临时token)
    • 受众:固定填https://management.azure.com/
    • 主体标识符:填写你的身份标识(本地测试可填Azure账户的UPN,CI/CD环境填对应平台的身份标识)
  • 保存凭据

3. 分配资源权限

  • 找到Packer要操作的资源组(或直接选订阅),进入访问控制(IAM) → 添加角色分配
  • 选择所需角色:至少需要虚拟机参与者、存储账户参与者、网络参与者(可根据模板实际操作调整)
  • 成员类型选用户、组或服务主体,搜索并选中刚创建的应用程序,完成角色分配

二、Packer HCL模板修改

1. 移除CLI认证配置

删除模板中azure builder块里的use_azure_cli = true配置项

2. 添加OIDC认证参数

在azure builder块中加入以下配置:

client_id      = "你的Azure AD应用客户端ID"
tenant_id      = "你的Azure租户ID"
oidc_token     = file("./oidc-token.json") # 本地测试用文件加载token,CI/CD可改用环境变量
audience       = "https://management.azure.com/" # 可选,默认值即为该内容

如果用环境变量传入token,替换成:

oidc_token = env("OIDC_TOKEN")

3. 确认其他配置

确保模板里的resource_group、vm_size、image_publisher等资源配置项保持正确,无需额外调整

三、测试打包

1. 获取OIDC Token

  • 本地测试:用Azure CLI生成临时token,保存到文件:
    az account get-access-token --resource https://management.azure.com/ --output json > oidc-token.json
    
  • CI/CD环境:使用对应平台的OIDC服务自动生成token(比如GitHub Actions的azure/login动作)

2. 执行打包

先验证模板合法性:

packer validate your-template.pkr.hcl

验证通过后执行打包:

packer build your-template.pkr.hcl

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:00:08