很明显,由于部署组和代理程序池中的安全性设置,您可以设置哪些角色可以部署到特定的本地服务器。但是,有什么方法可以限制Web应用程序级别的访问?
我发现的唯一方法是:
创建一个特定帐户,仅授予该帐户在目标Web应用程序中的目标服务器的IIS中部署权限,并将此凭据提供给负责创建用于部署这些Web应用程序的管道的开发人员(他们会将其作为自定义环境变量或类似变量在管道中)
等于1,但使用创建的帐户作为代理的服务帐户。开发人员只能访问负责创建该Webapp部署管道的开发人员。
这两种情况都需要创建新帐户并授予对服务器IIS的权限。从Azure DevOps做到这一点的方式与限制对整个服务器的访问方式不同吗?
致谢。
答案 0 :(得分:1)
很明显,您可以设置哪些角色可以部署到特定角色 本地服务器,这要归功于部署组中的安全设置 和代理池。但是,有什么方法可以限制Web应用程序级别的访问?
对不起,但是据我所知,Azure Devops Service不支持这种现成的功能。
我们可以在Organization level(Organization settings)
,Project Level(Project settings)
,Feature Level(Security of Pipelines/Deployment Groups feature...)
甚至'instance Level' (Set security for one specific pipeline/deployment group/one specific git repo)
中管理访问。
但是'instance level'
是最低级别,我们只能仅管理特定管道或特定部署组中的访问权限,而不能管理pipeline/deploymentGroup
将要部署的一个Web应用程序。
该Web应用程序不是不是由Azure Devops Service托管的选项,它只是由管道(由Azure Devops Service托管)部署的东西。因此,Azure Devops Service基本上不了解Webapp(它也没有代表一个webapp的UI),这就是为什么我们可以管理管道中的访问,但不能管理该管道中的webapp的原因...
希望以上所有内容都能解决您的难题:)
更新1:
一旦特定目标服务器只有一个部署组,则可以在此处确定谁可以访问该部署组:
被分配了读者权限的人不能使用部署组来进行部署。
答案 1 :(得分:0)
好吧,按照@Lance的suggestion进行研究后,这就是我打算做的事情:
我认为该方法是解决初始问题的最佳方法,并且可以扩展以解决其他类型资源(如DB,共享文件夹等)中的粒度问题,只需添加另一个特定的自定义服务连接即可。 (以指定资源和部署凭据)和链接的“自定义”任务,该任务仅允许针对该资源进行部署。
唯一的缺点是,如果要设置部署批准,则必须在资源级别(对于每个Web应用程序,每个数据库...)进行批准,这意味着批准者必须批准也在部署时按资源分配资源(按照我的理解,而不是整个应用程序部署的单一批准)
您觉得家伙如何?开始编码之前有任何评论吗?
致谢。