Azure DevOps:访问、角色和权限

雅各年轻
作者: 雅各布·杨,CISA,信息技术审计师,保护人寿
发表日期: 2021年1月21日
相关: 云审计知识证书 | Azure审计程序|数字版|英文版

作为IT审计人员, 我们很清楚,变更管理过程是基于风险和遵从性审计的IT控制测试的关键组成部分. 变更管理流程和工作流通常通过各种IT服务管理解决方案进行管理,并且是确保变更得到批准的记录保管员, 由适当的人员实施和评审. 审核员必须认识到,在审计业务范围内应该考虑其他应用程序开发过程. 

这篇文章呼吁人们关注源代码管理工具如何允许用户绕过工作流控制,并使组织已经到位的变更管理过程失效. 具体地说, 源代码管理工具中的提升访问为将未经授权的代码部署到生产环境提供了机会. 

出于本文的目的,我们的讨论将具体到 Azure DevOps 访问、角色和权限. 此分析从Azure DevOps的高级概述开始,然后进入审计人员应该在集合中评估的角色和权限的详细信息, 项目, 和代理池级别,以减轻工作流控制可能通过应用程序中的管理员权限被绕过的风险. 

Azure DevOps后台

敏捷开发方法 多年来在组织中得到了普及吗. 它为开发团队提供了持续部署代码的机会, 这意味着增强用户体验和纠正安全问题. 有各种各样的源代码管理工具都内置了工作流来帮助敏捷开发过程. Azure DevOps(以前的Team Foundation Server)是一个源代码管理工具,它利用Git流程来管理源代码更改. 

Azure DevOps主要分为两个组件:集合和项目. 取决于组织的规模和环境的复杂性, 您可能有多个集合, 每个集合可能有多个项目, 每个项目由独立的应用程序开发团队使用. 

Azure DevOps支持管理管道,通过自动构建和代码部署提供持续交付. 部署通过代理池发起. 必须限制对管道和代理池的访问,以防止对生产环境进行未经批准的更改.

集合 & 项目级别

集合可以包含由不同开发团队拥有的项目数组. 访问必须限制在集合级别,并且应该只由生产控制业务单元拥有的服务帐户组成. 项目级别的安全可以将单个用户帐户分配到适当的角色中.

应用程序的内置角色和权限

正如微软文档中所述, Azure DevOps包含预先构建的角色,这些角色已经集成到支持职责隔离的应用程序中:

  • 收集管理员 对集合中的所有项目具有管理权限. 
  • 项目管理员 对项目有管理权限.
  • 集合 & 项目构建管理员 允许用户管理生成资源和权限, 包括管理测试环境, 创建测试运行, 并在集合或项目级别管理构建.
  • 发布管理员 允许用户在集合或项目级别管理发布操作.
  • 贡献者 包括允许修改代码存储库和工作项跟踪的开发人员.
  • 读者 对项目有阅读权限吗.

管理员角色是高危角色。. 审核员应该为这些角色提取用户列表,并确保根据人员职责适当地访问, 更多地关注贡献者组之外的开发人员访问. 

座席池安全内置角色和权限

角色分配给座席池,座席池包括读者、服务帐户和管理员. 读者的角色不言自明, 因为这个角色只允许成员查看代理池和代理. Service Account角色和Administrator角色是需要监控的高风险角色,因为这些角色可以创建项目代理池. 另外, 管理员角色可以注册和注销代理,管理代理池中所有角色的访问权限. 集合级和项目级安全性中提到的任何角色都可以分配给这三个角色之一. 审计人员应确保参与者至少不包括在代理池管理员角色中, 因为这使他们能够将代码部署到生产环境中.

结论:集成敏捷方法

敏捷方法正被集成到组织流程中,以帮助系统的持续维护. 审核员必须确认在开发团队的敏捷方法中有足够的控制,以确保由适当的人员将安全的开发工作实现到生产中. 一个好的起点是确保工作职责是适当的,并且根据这些职责分配访问权限.

编者按:
有关ISACA的相关资源,请下载我们的 Azure审计程序 了解新消息 云审计与知识证书(CCAK),由ISACA和云安全联盟颁发的证书.

ISACA年度报告

2023
复选标记

2022
复选标记

2021
复选标记

2020
复选标记

2019
复选标记