我正在使用Octopus Deploy部署Azure WebApp,使用Service Principal作为身份验证机制。按照在线说明,我能够获得所有id和密钥,并且我在AAD中为具有Reader角色的应用程序创建了权限。
Octopus可以从Azure成功检索该帐户的Web应用程序列表,但是当我部署时,我得到以下内容:
System.AggregateException:发生了一个或多个错误。 ---> System.Exception:使用HTTP检索发布凭据失败 状态403 - 禁止
我猜测Reader角色未获得部署授权 - 这将是最合适的角色?或者还有其他我需要做的事情吗?
答案 0 :(得分:1)
您的服务主管将需要Contributor角色才能在Azure上部署。
如果您查看我们在our Azure Service Principal Account guide中提供的示例PowerShell脚本,您会看到我们分配了"贡献者"用于角色定义参数。
即
New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $azureAdApplication.ApplicationId
希望这有帮助。
答案 1 :(得分:1)
如果您仅使用服务主体部署Web应用程序,则可以为其提供Website Contributor
角色。
网站贡献者可以管理网站,但不能管理网络计划 它们是连接的
网站贡献者可以访问的操作请参阅此link。
如果您希望服务主体创建应用服务计划,您还需要赋予它Web Plan Contributor
角色。
Owner
和Contributor
可以管理所有内容,如果您需要微调权限,建议您选择Website Contributor
角色。更多信息请参阅此链接:Built-in roles for Azure role-based access control。