在管道中安全地构建项目的建议

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

你不应只考虑各个资源,还应考虑资源组。 在 Azure DevOps 中,资源按团队项目分组。 请务必根据项目设置和包含情况了解你的管道可以访问哪些资源。

管道中的每个作业都会收到访问令牌。 此令牌有权读取开放的资源。 在某些情况下,管道也可能更新这些资源。 换句话说,用户帐户可能无权访问某个特定资源,但在管道中运行的脚本和任务可能有权访问该资源。 Azure DevOps 中的安全模型还允许从组织中的其他项目访问这些资源。 如果你选择关闭对这些资源中某些资源的管道访问,则你的决策将应用于项目中的所有管道。 无法向特定管道授予对开放资源的访问权限。

单独的项目

鉴于开放资源的性质,你应当考虑在单独的项目中管理每个产品和团队。 这种做法可确保一个产品中的管道无法访问另一个产品中的开放资源。 这样就可以防止横向曝光。 当多个团队或产品共享一个项目时,你无法将其资源彼此隔离。

如果你的 Azure DevOps 组织是在 2019 年 8 月之前创建的,则运行可能能够访问组织的所有项目中的开放资源。 组织管理员必须查看 Azure Pipelines 中用于为管道实现项目隔离的关键安全设置。 可以在“Azure DevOps”>“组织设置”>“管道”>“设置”下找到此设置。 或者直接转到以下 Azure DevOps 位置:https://dev.azure.com/ORG-NAME/_settings/pipelinessettings

作业授权范围 UI 的屏幕截图

后续步骤

设置正确的项目结构后,使用模板增强运行时安全性。