<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Guidance on Managing Databricks Apps Whitelisting in Administration &amp; Architecture</title>
    <link>https://community.databricks.com/t5/administration-architecture/guidance-on-managing-databricks-apps-whitelisting/m-p/126065#M3702</link>
    <description>&lt;P&gt;Here are some helpful tips that you might find useful:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="paragraph"&gt;Summary of Best Practices and Recommendations for App Whitelisting and Automated App Removal in Databricks&lt;/DIV&gt;
&lt;H3&gt;1. Overview and Whitelisting Strategy&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;To control costs and maintain governance over Databricks app usage in your workspace, the recommended approach is to implement a clear app whitelisting mechanism and automate removal of unapproved apps. The following best practices and guidance summarize the official recommendations and field experience for Databricks Apps.&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;What is "Whitelisting" in this Context? A "whitelist" is a defined set of Databricks apps that have been reviewed and approved by administrators for use in the workspace. Only apps on this list should be allowed to exist; all others should be flagged and optionally removed.&lt;/DIV&gt;
&lt;H3&gt;2. Storage and Management of the Whitelist&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;There are several practical options for maintaining your workspace's app whitelist:&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Workspace Table or Delta Table:&lt;/STRONG&gt; Store a table with app names, owners, approval status, and other metadata. This can be referenced by an administrative notebook for checks and reporting.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Configuration File:&lt;/STRONG&gt; Use a workspace file (YAML, JSON, etc.) with the approved app names.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Secrets:&lt;/STRONG&gt; If you need to store sensitive information (like app IDs tied to privileged resources), you could store whitelist details in Databricks Secrets.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Unity Catalog Table:&lt;/STRONG&gt; For larger environments, a Unity Catalog managed table shared with admins for central control is ideal.&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;Choose the storage method that best fits your operational security requirements and maintainability preferences.&lt;/DIV&gt;
&lt;H3&gt;3. Automated Enforcement Workflow&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;A robust administrative notebook should:&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enumerate all current apps in the workspace:&lt;/STRONG&gt; Use the official Databricks APIs or SDK to list all app resources.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compare with the whitelist:&lt;/STRONG&gt; Cross-reference the list of existing apps with your approved whitelist.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Flag or Remove unapproved apps:&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Unapproved apps should be reported or, if desired, automatically removed.&lt;/LI&gt;
&lt;LI&gt;Build in logging/audit capabilities and a dry-run mode to help non-disruptively validate changes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;Here is a typical control flow:&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;```python&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;# Pseudocode outline (Python-based, can be adapted to Scala/Spark)&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;approved_apps = load_whitelist() # Load whitelist from table, secret, or file current_apps = databricks_admin_api.list_apps() # List all workspace apps&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;for app in current_apps:&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp; &amp;nbsp;if app.name not in approved_apps:&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; # Optional: log, notify, or tag before removal&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;databricks_admin_api.remove_app(app.id) # Remove unapproved app ``` Be sure to handle exceptions, permissions, and edge cases (apps in transient state, or deployed by critical users) as needed.&lt;/DIV&gt;
&lt;H3&gt;4. Permissions and Governance Recommendations&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;To enforce governance and prevent unwanted apps from being created: - &lt;STRONG&gt;Restrict “CAN MANAGE” app permission:&lt;/STRONG&gt; Only grant this to trusted administrators or peer-reviewed senior developers. - &lt;STRONG&gt;Restrict “CAN USE” permission&lt;/STRONG&gt; to only those groups or users who need access to a given app. - For OBO (on-behalf-of) apps, only enable this feature in trusted environments with peer-reviewed code and restrict additional scopes to the minimum needed.&lt;/DIV&gt;
&lt;H3&gt;5. Security, Auditing, and Compliance&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;Make use of Databricks audit logs: - Track permission changes on apps and who approved or made changes to the whitelist. - Setup workflows to log all admin actions, app creation, sharing, and deletion for compliance audits.&lt;/DIV&gt;
&lt;H3&gt;6. Environments and Promotion&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Maintain separate whitelists for dev, staging, and production environments.&lt;/LI&gt;
&lt;LI&gt;Use CI/CD and Databricks Asset Bundles (DABs) to promote only approved apps between environments.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;7. Additional Best Practices&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Regularly review the whitelist and app logs to ensure consistency and compliance.&lt;/LI&gt;
&lt;LI&gt;Periodically audit installed apps to review cost and usage patterns.&lt;/LI&gt;
&lt;LI&gt;Isolate apps by workspaces/environments where appropriate to reduce risk surface.&lt;/LI&gt;
&lt;LI&gt;Document and peer-review all changes to app permissions and whitelist entries.&lt;/LI&gt;
&lt;LI&gt;Maintain least privilege both on OAuth scopes requested by apps, as well as Databricks resource permissions for app service principals.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Table: Implementation Checklist&lt;/H2&gt;
&lt;TABLE&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH scope="col"&gt;Action&lt;/TH&gt;
&lt;TH scope="col"&gt;Recommended Practice&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Whitelist Storage&lt;/TD&gt;
&lt;TD&gt;Workspace table, UC table, config file, or secret&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Enumerate Apps&lt;/TD&gt;
&lt;TD&gt;Use Databricks REST API or SDK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Compare and Log Discrepancies&lt;/TD&gt;
&lt;TD&gt;Cross-reference with whitelist and log/messaging&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Remove Unapproved Apps&lt;/TD&gt;
&lt;TD&gt;Automated via admin notebook or DABs&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Governance Controls&lt;/TD&gt;
&lt;TD&gt;Restrict CAN MANAGE and CAN USE rights&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Audit and Review&lt;/TD&gt;
&lt;TD&gt;Use Databricks audit logs and periodic reviews&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Promotion Across Environments&lt;/TD&gt;
&lt;TD&gt;Deploy approved apps via CI/CD and DABs&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Documentation and Peer Review&lt;/TD&gt;
&lt;TD&gt;Require for changes to whitelist or app access&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Ongoing Security Assessment&lt;/TD&gt;
&lt;TD&gt;Utilize Databricks security center best practices&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;
&lt;H2&gt;Example Policy Logic&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Allow only whitelisted apps:&lt;/STRONG&gt; Only apps listed in your whitelist are allowed to run or be present in the workspace.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Alert or auto-remove all others:&lt;/STRONG&gt; For any app detected that's not on the whitelist, admins are alerted, optionally with automatic removal.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Restrict app modifications:&lt;/STRONG&gt; Only those with "CAN MANAGE" access may modify or approve changes to the whitelist.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Tue, 22 Jul 2025 19:07:22 GMT</pubDate>
    <dc:creator>Louis_Frolio</dc:creator>
    <dc:date>2025-07-22T19:07:22Z</dc:date>
    <item>
      <title>Guidance on Managing Databricks Apps Whitelisting</title>
      <link>https://community.databricks.com/t5/administration-architecture/guidance-on-managing-databricks-apps-whitelisting/m-p/126035#M3701</link>
      <description>&lt;P class=""&gt;Hi,&lt;/P&gt;&lt;P class=""&gt;Our workspace users currently have permissions to create Databricks apps, and we’ve observed a rise in associated costs. To address this, we’re developing an administrative notebook to:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P class=""&gt;Check whether an app is whitelisted/approved from the admins.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Automatically remove apps that aren’t approved.&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P class=""&gt;We’re unsure how to implement a whitelisting mechanism for apps. Could you share any recommendations or best practices for managing app whitelisting in Databricks?&lt;/P&gt;&lt;P class=""&gt;Thank you for your help!&lt;/P&gt;</description>
      <pubDate>Tue, 22 Jul 2025 17:00:47 GMT</pubDate>
      <guid>https://community.databricks.com/t5/administration-architecture/guidance-on-managing-databricks-apps-whitelisting/m-p/126035#M3701</guid>
      <dc:creator>Chinu</dc:creator>
      <dc:date>2025-07-22T17:00:47Z</dc:date>
    </item>
    <item>
      <title>Re: Guidance on Managing Databricks Apps Whitelisting</title>
      <link>https://community.databricks.com/t5/administration-architecture/guidance-on-managing-databricks-apps-whitelisting/m-p/126065#M3702</link>
      <description>&lt;P&gt;Here are some helpful tips that you might find useful:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="paragraph"&gt;Summary of Best Practices and Recommendations for App Whitelisting and Automated App Removal in Databricks&lt;/DIV&gt;
&lt;H3&gt;1. Overview and Whitelisting Strategy&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;To control costs and maintain governance over Databricks app usage in your workspace, the recommended approach is to implement a clear app whitelisting mechanism and automate removal of unapproved apps. The following best practices and guidance summarize the official recommendations and field experience for Databricks Apps.&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;What is "Whitelisting" in this Context? A "whitelist" is a defined set of Databricks apps that have been reviewed and approved by administrators for use in the workspace. Only apps on this list should be allowed to exist; all others should be flagged and optionally removed.&lt;/DIV&gt;
&lt;H3&gt;2. Storage and Management of the Whitelist&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;There are several practical options for maintaining your workspace's app whitelist:&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Workspace Table or Delta Table:&lt;/STRONG&gt; Store a table with app names, owners, approval status, and other metadata. This can be referenced by an administrative notebook for checks and reporting.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Configuration File:&lt;/STRONG&gt; Use a workspace file (YAML, JSON, etc.) with the approved app names.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Secrets:&lt;/STRONG&gt; If you need to store sensitive information (like app IDs tied to privileged resources), you could store whitelist details in Databricks Secrets.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Unity Catalog Table:&lt;/STRONG&gt; For larger environments, a Unity Catalog managed table shared with admins for central control is ideal.&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;Choose the storage method that best fits your operational security requirements and maintainability preferences.&lt;/DIV&gt;
&lt;H3&gt;3. Automated Enforcement Workflow&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;A robust administrative notebook should:&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enumerate all current apps in the workspace:&lt;/STRONG&gt; Use the official Databricks APIs or SDK to list all app resources.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compare with the whitelist:&lt;/STRONG&gt; Cross-reference the list of existing apps with your approved whitelist.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Flag or Remove unapproved apps:&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Unapproved apps should be reported or, if desired, automatically removed.&lt;/LI&gt;
&lt;LI&gt;Build in logging/audit capabilities and a dry-run mode to help non-disruptively validate changes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="paragraph"&gt;Here is a typical control flow:&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;```python&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;# Pseudocode outline (Python-based, can be adapted to Scala/Spark)&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;approved_apps = load_whitelist() # Load whitelist from table, secret, or file current_apps = databricks_admin_api.list_apps() # List all workspace apps&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;for app in current_apps:&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp; &amp;nbsp;if app.name not in approved_apps:&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; # Optional: log, notify, or tag before removal&lt;/DIV&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;databricks_admin_api.remove_app(app.id) # Remove unapproved app ``` Be sure to handle exceptions, permissions, and edge cases (apps in transient state, or deployed by critical users) as needed.&lt;/DIV&gt;
&lt;H3&gt;4. Permissions and Governance Recommendations&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;To enforce governance and prevent unwanted apps from being created: - &lt;STRONG&gt;Restrict “CAN MANAGE” app permission:&lt;/STRONG&gt; Only grant this to trusted administrators or peer-reviewed senior developers. - &lt;STRONG&gt;Restrict “CAN USE” permission&lt;/STRONG&gt; to only those groups or users who need access to a given app. - For OBO (on-behalf-of) apps, only enable this feature in trusted environments with peer-reviewed code and restrict additional scopes to the minimum needed.&lt;/DIV&gt;
&lt;H3&gt;5. Security, Auditing, and Compliance&lt;/H3&gt;
&lt;DIV class="paragraph"&gt;Make use of Databricks audit logs: - Track permission changes on apps and who approved or made changes to the whitelist. - Setup workflows to log all admin actions, app creation, sharing, and deletion for compliance audits.&lt;/DIV&gt;
&lt;H3&gt;6. Environments and Promotion&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Maintain separate whitelists for dev, staging, and production environments.&lt;/LI&gt;
&lt;LI&gt;Use CI/CD and Databricks Asset Bundles (DABs) to promote only approved apps between environments.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;7. Additional Best Practices&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Regularly review the whitelist and app logs to ensure consistency and compliance.&lt;/LI&gt;
&lt;LI&gt;Periodically audit installed apps to review cost and usage patterns.&lt;/LI&gt;
&lt;LI&gt;Isolate apps by workspaces/environments where appropriate to reduce risk surface.&lt;/LI&gt;
&lt;LI&gt;Document and peer-review all changes to app permissions and whitelist entries.&lt;/LI&gt;
&lt;LI&gt;Maintain least privilege both on OAuth scopes requested by apps, as well as Databricks resource permissions for app service principals.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Table: Implementation Checklist&lt;/H2&gt;
&lt;TABLE&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH scope="col"&gt;Action&lt;/TH&gt;
&lt;TH scope="col"&gt;Recommended Practice&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Whitelist Storage&lt;/TD&gt;
&lt;TD&gt;Workspace table, UC table, config file, or secret&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Enumerate Apps&lt;/TD&gt;
&lt;TD&gt;Use Databricks REST API or SDK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Compare and Log Discrepancies&lt;/TD&gt;
&lt;TD&gt;Cross-reference with whitelist and log/messaging&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Remove Unapproved Apps&lt;/TD&gt;
&lt;TD&gt;Automated via admin notebook or DABs&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Governance Controls&lt;/TD&gt;
&lt;TD&gt;Restrict CAN MANAGE and CAN USE rights&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Audit and Review&lt;/TD&gt;
&lt;TD&gt;Use Databricks audit logs and periodic reviews&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Promotion Across Environments&lt;/TD&gt;
&lt;TD&gt;Deploy approved apps via CI/CD and DABs&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Documentation and Peer Review&lt;/TD&gt;
&lt;TD&gt;Require for changes to whitelist or app access&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Ongoing Security Assessment&lt;/TD&gt;
&lt;TD&gt;Utilize Databricks security center best practices&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;
&lt;H2&gt;Example Policy Logic&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Allow only whitelisted apps:&lt;/STRONG&gt; Only apps listed in your whitelist are allowed to run or be present in the workspace.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Alert or auto-remove all others:&lt;/STRONG&gt; For any app detected that's not on the whitelist, admins are alerted, optionally with automatic removal.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Restrict app modifications:&lt;/STRONG&gt; Only those with "CAN MANAGE" access may modify or approve changes to the whitelist.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;DIV class="paragraph"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Tue, 22 Jul 2025 19:07:22 GMT</pubDate>
      <guid>https://community.databricks.com/t5/administration-architecture/guidance-on-managing-databricks-apps-whitelisting/m-p/126065#M3702</guid>
      <dc:creator>Louis_Frolio</dc:creator>
      <dc:date>2025-07-22T19:07:22Z</dc:date>
    </item>
  </channel>
</rss>

