【问题标题】:Limit Access for Project Collection Build Service ({OrgName}) in Azure DevOps在 Azure DevOps 中限制项目集合构建服务 ({OrgName}) 的访问
【发布时间】:2021-05-20 07:48:24
【问题描述】:

我是 Azure DevOps 组织的管理员,拥有以下项目:

  • 内源
  • 酒吧

我希望 FooBar 的 YAML 管道能够读取 InnerSource 中的私有 Git 存储库。我通过为我的组织和各个项目禁用“将工作授权范围限制为当前项目”选项来工作。据我了解,这让管道在 Project Collection Build Service ({OrgName}) 身份而不是 {ProjectName} Build Service ({OrgName}) 身份下运行。

现在我想阻止Foo 中的管道访问Bar,反之亦然。 Understand job access tokens - Azure Pipelines | Microsoft Docs 上的信息框显示为不可能。但是,还有关于“管理构建服务帐户权限”的部分,内容不同。

还有Default permissions and access quick reference - Azure DevOps | Microsoft Docs 状态:

默认情况下,项目集合构建服务可以读取所有存储库。在项目集合范围内运行的任何管道都可能读取组织或集合中的任何存储库。要删除存储库的此权限,请将项目集合构建服务的读取权限更改为拒绝。

但是,我在任何安全设置对话框中都找不到Project Collection Build Service ({OrgName}) 用户。也搜索它不会给我任何结果。 我试图限制[{OrgName}]\Project Collection Build Service Accounts 的权限,但这似乎没有任何效果。仍然可以从不同项目的管道中读取存储库。

这是项目Foo 的存储库安全配置的屏幕截图。不过,在 Project Collection Build Service 下运行的其他项目的管道仍然可以访问存储库:

任何线索我在这里做错了什么?这可能吗?

【问题讨论】:

  • 总结我的问题/用例:我希望来自项目foobar 的管道访问InnerSource,同时阻止foo 访问@ 987654340@ 或反之亦然。到目前为止,我只想出了两个极端的配置:限制对当前项目的访问或开放对组织内所有资源的访问...

标签: azure-devops azure-devops-pipelines


【解决方案1】:

看起来[{OrgName}]\Project Collection Build Service Accounts 是错误的范围。实际上有一个名为Project Collection Build Service ({OrgName})User 可以添加到安全设置中。

对我来说棘手的部分:我没有在门户中获得任何自动完成帮助。我必须输入几乎全名,然后它才会出现在列表中。

不过,我的用例似乎无法实现。 仓库的Read权限是系统权限,不能被覆盖...

【讨论】:

    【解决方案2】:

    如果您只想对存储库拥有只读访问权限,则应将Read 访问权限添加到Project Collection Build Service。此时您拥有Deny

    请在项目级别尝试此设置:

    【讨论】:

    • 这就是我想要的。截图来自项目“Foo”。我不希望项目集合构建服务访问“Foo”的存储库。但尽管“拒绝”,它仍然是可能的。
    • 当前您选择了 AllRepositories。你可以在回购级别做同样的事情。请只需选择 repo,您​​将获得相同的设置,但对于单个 repo。这是你想要的吗?
    • 在 repo 级别,权限被继承。所以它也设置为“拒绝”
    • @Schwarzzz 我不确定是否有帮助。但是可以检查我的编辑并尝试一下吗?
    猜你喜欢
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多