如何通过Terraform配置授权Azure Pipeline访问服务连接
通过Terraform为Azure DevOps管道授权Docker容器注册表服务连接
要替代手动在「项目设置>服务连接>容器注册表>安全>管道权限」的授权操作,你需要在现有Terraform配置中新增azuredevops_serviceendpoint_permissions资源,专门用于管理服务连接的权限分配。
修改后的完整配置如下:
# 原有的构建定义配置,保持不变 resource "azuredevops_build_definition" "project" { project_id = "xxx" name = "xxx" path = "\\" repository { repo_type = "xxx" repo_id = "xxx" branch_name = "xxx" yml_path = "azure-pipelines.yml" service_connection_id = "xxx" # 注意:此处是代码仓库的服务连接ID,与Docker注册表服务连接区分开 } } # 新增:为目标管道授权Docker容器注册表服务连接的使用权限 resource "azuredevops_serviceendpoint_permissions" "docker_registry_access" { project_id = azuredevops_build_definition.project.project_id service_endpoint_id = "YOUR_DOCKER_SERVICE_CONNECTION_ID" # 替换为你的Docker容器注册表服务连接ID principal_name = azuredevops_build_definition.project.name principal_type = "BuildDefinition" permissions { use = "Allow" # 授予管道使用该服务连接的权限 admin = "Deny" # 无需管理员权限,按需调整 } }
关键参数说明
service_endpoint_id:替换为你的Docker容器注册表服务连接的ID,可在Azure DevOps服务连接的详情页面获取principal_name:直接引用构建定义的名称,确保权限准确分配到目标管道permissions.use:设置为Allow,对应手动操作中“允许使用”的权限配置
内容的提问来源于stack exchange,提问作者idk
相关产品推荐
相关产品推荐

