cancel
Showing results forย 
Search instead forย 
Did you mean:ย 
Administration & Architecture
Explore discussions on Databricks administration, deployment strategies, and architectural best practices. Connect with administrators and architects to optimize your Databricks environment for performance, scalability, and security.
cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Budget Policy - Service Principals don't seem to be allowed to use budget policies

enr0c
New Contributor

Objective

Transfer existing DLT pipeline to new owner (service principal). Budget policies enabled.

Steps to reproduce

  1. Created a service principal
    1. a203a1bb-80d2-4c51-bc2f-dbd379b6e5e8.png
  2. Assigned it group membership of a group that is allowed to use a budget policy
    1. Screenshot 2024-11-20 090829.png
  3. Ensured it has access to the budget policy
    1. Screenshot 2024-11-20 090938.png
  4. โ€ƒMoved the ownership of DLT pipeline to service principal

    1. Screenshot 2024-11-20 091107.png

Issue:

Pipeline is not running and the error says: Pipeline "Run As" identity does not have access to selected budget policy. Can you please advise?

Thanksโ€ƒ

2 REPLIES 2

Abishek
Databricks Employee
Databricks Employee
  • โ€œThanks for your question! Iโ€™m looking into this and will get back to you.โ€

mark_ott
Databricks Employee
Databricks Employee

The error message "Pipeline 'Run As' identity does not have access to selected budget policy" typically indicates that, while your service principal is properly configured for general pipeline ownership, itโ€™s missing explicit permission on the budget policy itself. Assigning group membership or workspace access alone is not sufficient for budget policy usage with service principals in Databricks DLT pipelines.โ€‹

Required Steps to Resolve

  • You must explicitly assign the service principal as a user (can use) or manager (can edit/manage) on the budget policy in question. This must be done directly on the policy's permissions page or via API:

    • Go to the budget policyโ€™s page in the Databricks console.โ€‹

    • Click the Permissions tab.

    • Add your service principal as an identity (not just via group membership).

    • Assign it the appropriate role, ideally user for running pipelines.

    • Save changes.

  • If programmatically managing access for large numbers of users/principals, Databricks offers an API endpoint for access-control rule sets where you may need to add the service principal to roles such as budgetPolicy.user or budgetPolicy.manager.โ€‹

Additional Notes

  • Merely moving pipeline ownership or assigning group access does not grant budget policy usage rights; these permissions are independent and must be set at the policy level for the service principalโ€™s identity.โ€‹

  • For troubleshooting, ensure the service principal appears under the budget policyโ€™s permission list and is marked with Can use or Manager rights.

  • Access issues frequently occur when organizational role assignment and policy-level permission assignment are confused โ€“ always confirm direct budget policy access.โ€‹

If you follow the above steps to explicitly add and grant access to your service principal for the budget policy, your DLT pipeline should run without the access error. If issues persist, double check the principalโ€™s assignment in the policy UI or the result of the API call for permissions.

Join Us as a Local Community Builder!

Passionate about hosting events and connecting people? Help us grow a vibrant local communityโ€”sign up today to get started!

Sign Up Now