Azuredevops git checkout 或克隆是如何发生的

问题描述 投票:0回答:4

我想了解自动 git checkout 是如何在 azuredevops 构建管道中发生的。如何从 ADO 构建代理进行对 ADO 存储库的身份验证。 ADO 管道使用哪个用户来克隆或签出此存储库。

我担心的是,当我触发管道时,我可以看到存储库已签出以构建代理。 ADO 使用哪个用户?当我尝试推送时,它要求 AD 身份验证,那么从 ADO 管道角度来看,签出和推送有何不同?

azure-devops azure-pipelines azure-devops-server-2019
4个回答
1
投票

最初设置管道时,您指定了代码所在的位置,例如在 GitHub 上。作为该步骤的一部分,将创建一个服务连接(已要求您创建)。因此,无论您在那里指定什么,都将被使用。您可以在项目设置中的“服务连接”下查看


1
投票

这取决于您使用哪种源代码工具。例如,如果您使用 Github,则必须与其建立连接。这可以在 Github 连接下的项目设置中完成。然后,您可以使用此服务连接并签出您的代码。

此 Github 集成是由特定用户进行的,通过导航 github -> 设置 -> 集成 -> 应用程序,您将注意到确切的权限。

我想 Github/Azure Devops 将使用为身份验证创建的集成对象。

在 Azure Repos 存储库上,您不需要适当的服务连接。可以自动检出存储库。

运行管道时,您可以看到为身份验证执行的确切命令。

git remote add origin https://ORG.visualstudio.com/test-project/_git/test-project
git config gc.auto 0
git config --get-all http.https://ORG.visualstudio.com/test-project/_git/test-project.extraheader
git config --get-all http.extraheader
git config --get-regexp .*extraheader
git config --get-all http.proxy
git config http.version HTTP/1.1
git -c http.extraheader="AUTHORIZATION: bearer ***" fetch --force --tags --prune --prune-tags --progress --no-recurse-submodules origin

0
投票

Microsoft 托管的代理在安全的 Azure 平台上运行。但是,您必须注意以下安全注意事项。

  • 虽然 Microsoft 托管的代理在 Azure 公共网络上运行,但它们没有分配公共 IP 地址。因此,外部实体无法针对 Microsoft 托管的代理。
  • Microsoft 托管的代理在单独的虚拟机中运行,每次运行后都会重新映像。每个代理专用于一个组织,每个虚拟机仅托管一个代理。
  • 从安全角度来看,在 Microsoft 托管的代理上运行管道有几个好处。如果您在管道中运行不受信任的代码(例如来自分叉的贡献),则在 Microsoft 托管的代理上运行管道比在驻留在公司网络中的自托管代理上运行管道更安全。
  • 当管道需要访问防火墙后面的公司资源时,您必须允许 Azure 地理位置的 IP 地址范围。这可能会增加您的曝光度,因为 IP 地址范围相当大,而且此范围内的计算机也可能属于其他客户。防止这种情况的最佳方法是避免访问内部资源。
  • 托管映像不符合 CIS 强化基准。要使用 CIS 强化映像,您必须创建自托管代理或规模集代理。

取自Microsoft 托管代理 - 安全性

最重要的部分可能是

Microsoft 托管的代理在单独的虚拟机中运行,每次运行后都会重新映像。每个代理专用于一个组织,每个虚拟机仅托管一个代理。

接下来,选中创建和管理代理池 - 代理池的安全性


0
投票

刚刚偶然发现了同样的问题,由于条件访问策略的问题,Azure DevOps 代理实际使用的身份是什么。

YAML 管道的默认 git checkout 使用服务帐户“[ProjectName] Build Service”。该文档仅提到服务帐户

为了阐明这一点,我进行了一些逆向工程,即我从代理中提取并解码了一个令牌,这确实确认了它与指定的构建服务帐户相关联。要进一步测试这一点,您可以尝试删除该用户的“读取”存储库权限。如果完成,代理将在结帐过程中遇到错误,作为对其对此服务帐户的依赖性的实际验证。

© www.soinside.com 2019 - 2024. All rights reserved.