【Azure 应用服务】App Service for Container中配置与ACR(Azure Container Registry)的RABC权限
问题描述
在使用App Service for container时,在从ACR(Azure Container Registry)中获取应用的镜像时,需要使用对应的权限。默认情况为在ACR中启用Admin User权限,在App Service中使用Admin User访问拉取镜像。
而为了更准确的控制权限,在ACR中需要为App Service赋予什么样的RBAC 角色才能通过Container Setting选择镜像并拉取更新呢?
问题解答
一种是使用Contributor权限
授予完全访问权限来管理所有资源,但不允许在 Azure RBAC 中分配角色或在 Azure 蓝图中管理分配,也不允许共享映像库。https://docs.microsoft.com/zh-cn/azure/role-based-access-control/built-in-roles#contributor
如:在App Service门户界面更改ACR镜像操作时,其中的持续集成功能,是会对ACR资源进行更新操作,所以需要App Service中有ACR的Contributor操作权限。
一种是通过自定义角色,自定义组合ACR中的权限,以避免给予用户过度的权限
使用 Azure 门户创建 Azure 自定义角色
如果 Azure 内置角色不能满足组织的具体需求,你可以创建自己的 Azure 自定义角色。 与内置角色一样,可将自定义角色分配到订阅和资源组范围内的用户、组与服务主体。 自定义角色存储在 Azure Active Directory (Azure AD) 目录中,可以在订阅之间共享。 每个目录最多可以有 5000 个自定义角色。 可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 REST API 创建自定义角色。
https://docs.microsoft.com/zh-cn/azure/role-based-access-control/custom-roles
经测试,通过自定义角色的方式,来组合ACR的权限授权给用户,这样就可以开放适度的管理权限给用户,如以下权限列表可以用于App Service 更新镜像的权限设定:
参考资料
Configure App Service to deploy the image from the registry: https://docs.microsoft.com/en-us/azure/app-service/tutorial-custom-container?pivots=container-linux
使用 Azure 门户创建 Azure 自定义角色: https://docs.microsoft.com/zh-cn/azure/role-based-access-control/custom-roles-portal#clone-a-role
- 【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
- 【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
- 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法
- 【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
- 【应用服务 App Service】在Azure Web App的部署文件中,是否可以限制某些文件无法被访问?(如json)
- 应用报错:User Profile Service服务未能登陆,无法加载用户配置文件
- 配置Tomcat下的web应用服务的安全权限
- 为 Azure 应用服务配置连续部署工作流
- XData -–无需开发、基于配置的数据库RESTful服务,可作为移动App和ExtJS、WPF/Silverlight、Ajax等应用的服务端
- Phenix.NET for CSLA 应用服务程序初次启动配置数据库的过程
- 如何使用Azure Container Service Engine在Azure中国区部署容器服务(一):DC/OS篇
- 在 UWP 应用中创建、使用、调试 App Service (应用服务)
- 在 UWP 应用中创建、使用、调试 App Service (应用服务)
- 如何使用Azure Container Service Engine在Azure中国区部署容器服务(一):DC/OS篇
- Docker镜像仓库服务registry.Service
- app.config文件的配置及应用
- Service(服务)讲解与实例应用
- 解决在iOS8环境下,当用户关闭定位服务总开关时,无法将APP定位子选项加入定位权限列表的问题
- Azure App Service
- 在服务 ObtainData 实现的协定列表中找不到协定名称 "IMetadataExchange"。将 ServiceMetadataBehavior 添加到配置文件或直接添加到 ServiceHost,以启用对该协定的支持。