Please do NOT add this service principal as an Owner
of your resource group. Now anyone with access to modify DevOps Pipelines can elevate privileges to do anything they want to in the resource group, even though DevOps only needs permission to deploy resources using bicep templates (including RBAC permissions). That means they can also assign themselves or others as OWNERS of the resource group.
The permission that fits this need best is User Access Administrator (with Conditions).
When DevOps creates a new Connection, it creates an Application Registration in Microsoft Entra ID in Azure, under App Registrations (choose "All Applications" instead of the default "My Applications" to find it). We'll assign the User Access Administrator (with Conditions) role to this Application.
For the best security, you should create (and remember to manage) a Managed Identity for your Function App via either the UI, Azure CLI, or a Bicep meta-deployment (just a separate deployment for your service principals that you can run before you the Administrator assign privileged permissions in the UI or via AZ CLI). In your application Bicep template, you'll assign this existing managed identity to your Function App during creation, then DevOps will be able to give it only the exact role it requires.
Go to your resource group, IAM, and assign a role. Choose User Access Administrator, find your Azure DevOps Application (you will need to search for the FULL name found in Entra ID App Registrations), and most importantly continue to Conditions. Here, you can specifically choose only the ability of Azure DevOps to delegate the Azure Service Bus Reader role to the Managed Identity you created in the previous step. You only need to do this once, since the Managed Identity is not managed by Bicep. Reviews should be conducted regularly on Managed Identities to make sure they are still needed.
Now in Bicep, when deploying a Service Bus application, you can specify the Managed Identity's application ID and assign Azure Service Bus Reader role scoped to the new Service Bus application within this Resource Group.
If there are too many steps here, you can skip the Managed Identity and simplify the Condition to allow the DevOps Service Principal to assign the Azure Service Bus Reader to any user for resources in this resource group, but now anyone with access to modify DevOps could elevate their access to read from Azure Service Bus. Please balance the risk with the convenience of not maintaining a Managed Identity.