1

很明显,由于部署组和代理池中的安全设置,您可以设置哪些角色可以部署到某个本地服务器。但是,有什么方法可以在 webapp 级别限制访问?

我发现的唯一方法是:

  1. 创建一个特定帐户,仅在所需的 webapps 中为其在目标服务器的 IIS 中部署权限,并将此凭据提供给负责创建用于部署这些 webapps 的管道的开发人员(他们会将它们作为自定义环境变量或类似的管道放入管道中)

  2. 与 1 相同,但使用创建的帐户作为代理的服务帐户。对这个代理的访问将仅限于负责创建用于部署这些 web 应用程序的管道的开发人员。

这两种情况都需要创建新帐户并授予服务器 IIS 的权限。无法从 Azure DevOps 执行此操作,就像限制对整个服务器的访问一样?

问候。

4

2 回答 2

1

很明显,由于部署组和代理池中的安全设置,您可以设置哪些角色可以部署到某个本地服务器。但是,有什么方法可以在 webapp 级别限制访问?

抱歉,但据我所知 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.

webapp不是Azure Devops Service 托管的选项,它只是由管道(由 Azure Devops Service 托管)部署的东西。所以 Azure Devops Service avtually 不了解 webapp(它也不会有代表一个 webapp 的 UI),这就是为什么我们可以管理管道中的访问,但不能管理该管道中的 webapp ......

更新 1

一旦特定目标服务器只有一个部署组,您可以在此处确定谁可以访问该部署组:

在此处输入图像描述

分配有读者权限的人不能使用部署组进行部署。

于 2020-06-05T03:26:27.703 回答
0

好的,根据@Lance的建议并经过一些研究,这就是我打算做的事情:

  1. 创建自定义服务连接,其中可以设置以下字段:WebApp 所在的IIS 服务器、 Webapp 名称用户(具有部署权限)和密码
  2. 连同自定义服务连接,我将提供一个自定义任务,开发人员团队可以在其中选择他们想要进行部署的服务连接(显然,服务器管理员只会配置与允许该团队部署的 web 应用程序的服务连接)。
  3. 代理将使用低权限帐户运行(不会影响任何应用程序),并且自定义任务将在内部使用服务连接上提供的凭据来执行部署。

我认为这种方法是解决初始问题的最佳解决方法,并且可以扩展以解决其他类型资源(如数据库、共享文件夹等)中的粒度问题,只需简单地添加另一个特定的自定义服务连接(指定资源和部署凭据)和一个链接的自定义任务,该任务仅允许针对该资源进行部署。

唯一的缺点是,如果您想设置部署批准,则必须在资源级别进行(对于每个 webapp、每个 DB,...),这意味着批准者必须逐个批准资源部署时(而不是像我理解的那样对整个应用程序部署进行一次批准)

你们觉得怎么样?在开始编码之前有任何评论吗?

问候。

于 2020-06-25T09:13:42.883 回答