Azure RBAC 是否也应该用于我部署到 Azure 的应用程序?

问题描述

从内置角色列表中可以看出,RBAC 用于控制人们对 Azure 资源的访问权限。例如,Virtual Machine Operator 内置角色似乎面向个人,它甚至授予执行 Microsoft.Support/* 操作的权限。

目前,我在 Key Vault 上使用了专用于 Azure Functions 应用的访问策略(使用其系统分配的标识)。

当我考虑将 RBAC 用于此以及对 Azure 资源的所有其他访问时,我不确定如何定义角色。我主要担心的是,我要么将它们定义得太细化,最终会遇到 RBAC limit for role assignments,要么定义得太宽泛,最终会授予应用程序不应拥有的权限。

RBAC 是否也应该用于我们编写和部署的自定义应用程序?例如,必须能够从密钥保管库中获取机密的 Azure Functions 应用程序?

解决方法

有两种方式可以控制对azure keyvault数据平面的访问,访问策略和RBAC角色,您需要选择不同的选项以在门户中使用不同的方式。

enter image description here

在您的情况下,如果您使用系统分配的 MSI(托管身份)的访问策略(选择上面的 Vault access policy)来获取机密,则无需额外使用 RBAC 角色,访问策略中的权限够了。

如果要使用 RBAC 角色,请选择上面的 Azure role-based access control,然后使用 Key Vault Secrets User 是合适的。