I can see from the list of built-in roles that RBAC is used to control the access that people have to Azure resources. For example, the Virtual Machine Operator built-in role seems geared towards a person, it even gives permission to perform Microsoft.Support/*
actions.
Currently I'm using an access policy on the key vault that is specifically for the Azure Functions App (using its system-assigned identity).
When I think about using RBAC for this and all other access to Azure resources, I am not sure how to go about defining roles. My main worry is that I either define them too granular, and I end up running into the RBAC limit for role assignments, or too broad and I end up giving applications permissions they should not have.
Should RBAC be used for custom applications we write and deploy as well? For example an Azure Functions App that has to be able to get a secret from a key vault?