Hi @Christopher Davis ,
As a best practice, users should have the least-privileged access to Azure resource. This implies giving the least privileged role at the narrowest scope possible. If you still want to keep the contributor role assigned to your users, your solutions of assigning the role at the resource group scope is a good one.
One option would be to assign Read permission at the Subscription level, so that all Resources/Resource Groups in that subscription are visible to the members of the group. Then you could grant Contributor permissions to the group at Resource/Resource Group level so that the group members can only update/change specific Resources/Resource Groups only. You could apply these permissions to multiple groups.
Another option would be to create a custom RBAC role to provide read-only access to specific resources so that they would by default be able to update everything except the resources you want to restrict. https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles#custom-role-example
Alternatively, we have the Azure Deny Assignments, that can be used to deny specific actions over specific Azure resources (Understand Azure deny assignments - Azure RBAC | Microsoft Learn). However, these need to be created through Azure Blueprints for resources deployed as part of the blueprint.
Additional resources:
Grant user access to resources
Azure Resource Group Access
Assign Contributor Role only to certain resource groups / resources
-
If the information helped you please Accept the answer. This will help us and other community members as well.