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