【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

posted @ 2021-01-29 22:26  路边两盏灯  阅读(243)  评论(0编辑  收藏  举报