<?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 Implementing Databricks Persona in in Administration &amp; Architecture</title>
    <link>https://community.databricks.com/t5/administration-architecture/implementing-databricks-persona-in/m-p/91280#M1864</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I am looking to implement the "persona" based access control across multiple workspaces for multiple user groups in Azure Databricks workspaces. Specifically,&lt;/P&gt;&lt;P&gt;- I have a "DEV" workspace where the developer groups (Data Engineers and ML Engineers) should be able to start up compute clusters and execute Databricks workflows and jobs at will&lt;/P&gt;&lt;P&gt;- I have a "PROD" workspace where the developer groups&amp;nbsp;should only be able to view the workflow or job details and logs but should not be able to execute these.&amp;nbsp;&lt;/P&gt;&lt;P&gt;To me it seems like the "persona" based solution described &lt;A href="https://www.databricks.com/discover/pages/access-control" target="_self"&gt;in this article&lt;/A&gt;&amp;nbsp;fits the bill nicely. Does anyone have a suggestion on how to implement this in terraform, e.g. using &lt;A href="https://registry.terraform.io/providers/databricks/databricks/latest/docs" target="_self"&gt;the Databricks provider&lt;/A&gt;&amp;nbsp;?&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;&lt;P&gt;Dipanjan&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 21 Sep 2024 12:19:39 GMT</pubDate>
    <dc:creator>d_kailthya</dc:creator>
    <dc:date>2024-09-21T12:19:39Z</dc:date>
    <item>
      <title>Implementing Databricks Persona in</title>
      <link>https://community.databricks.com/t5/administration-architecture/implementing-databricks-persona-in/m-p/91280#M1864</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I am looking to implement the "persona" based access control across multiple workspaces for multiple user groups in Azure Databricks workspaces. Specifically,&lt;/P&gt;&lt;P&gt;- I have a "DEV" workspace where the developer groups (Data Engineers and ML Engineers) should be able to start up compute clusters and execute Databricks workflows and jobs at will&lt;/P&gt;&lt;P&gt;- I have a "PROD" workspace where the developer groups&amp;nbsp;should only be able to view the workflow or job details and logs but should not be able to execute these.&amp;nbsp;&lt;/P&gt;&lt;P&gt;To me it seems like the "persona" based solution described &lt;A href="https://www.databricks.com/discover/pages/access-control" target="_self"&gt;in this article&lt;/A&gt;&amp;nbsp;fits the bill nicely. Does anyone have a suggestion on how to implement this in terraform, e.g. using &lt;A href="https://registry.terraform.io/providers/databricks/databricks/latest/docs" target="_self"&gt;the Databricks provider&lt;/A&gt;&amp;nbsp;?&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;&lt;P&gt;Dipanjan&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 21 Sep 2024 12:19:39 GMT</pubDate>
      <guid>https://community.databricks.com/t5/administration-architecture/implementing-databricks-persona-in/m-p/91280#M1864</guid>
      <dc:creator>d_kailthya</dc:creator>
      <dc:date>2024-09-21T12:19:39Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing Databricks Persona in</title>
      <link>https://community.databricks.com/t5/administration-architecture/implementing-databricks-persona-in/m-p/137473#M4358</link>
      <description>&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;You can implement persona-based access control for Azure Databricks workspaces using Terraform and the Databricks provider, aligning with the setup you described for DEV and PROD environments. Terraform allows you to codify workspace configuration, user/group assignments, and access controls so that developer groups have appropriate permissions in each workspace.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;DEV Workspace: Granting Execution Privileges&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;For DEV, you want Data Engineers and ML Engineers to manage clusters and run jobs freely. You should:&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Assign these groups Databricks roles such as "Can Manage" at both cluster and job/workflow levels.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Use Terraform&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;databricks_group&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;resource to manage user groups.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Assign permissions using&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;databricks_permissions&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for clusters and jobs.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Sample Terraform configuration:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl flex h-0 items-start justify-end md:sticky md:top-[100px]"&gt;
&lt;DIV class="overflow-hidden rounded-full border-subtlest ring-subtlest divide-subtlest bg-base"&gt;
&lt;DIV class="border-subtlest ring-subtlest divide-subtlest bg-subtler"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;text&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE&gt;resource "databricks_group" "data_engineers" {
  display_name = "data-engineers"
}

resource "databricks_group" "ml_engineers" {
  display_name = "ml-engineers"
}

# Assign cluster management permissions
resource "databricks_permissions" "dev_cluster_permissions" {
  cluster_id = databricks_cluster.dev.id

  access_control {
    group_name = databricks_group.data_engineers.display_name
    permission_level = "CAN_MANAGE"
  }

  access_control {
    group_name = databricks_group.ml_engineers.display_name
    permission_level = "CAN_MANAGE"
  }
}

# Assign job execution permissions
resource "databricks_permissions" "dev_job_permissions" {
  job_id = databricks_job.dev.id

  access_control {
    group_name = databricks_group.data_engineers.display_name
    permission_level = "CAN_MANAGE"
  }

  access_control {
    group_name = databricks_group.ml_engineers.display_name
    permission_level = "CAN_MANAGE"
  }
}
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;This configuration ensures both groups can start clusters and execute jobs in DEV.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;PROD Workspace: Granting Read-Only Access&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;For PROD, restrict these groups so they can only&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;view job/workflow details and logs&lt;/STRONG&gt;, not execute them.&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Assign them "Can View" permissions only—using the same resources, but with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;"CAN_VIEW"&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;instead of&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;"CAN_MANAGE"&lt;/CODE&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Sample Terraform configuration:&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl flex h-0 items-start justify-end md:sticky md:top-[100px]"&gt;
&lt;DIV class="overflow-hidden rounded-full border-subtlest ring-subtlest divide-subtlest bg-base"&gt;
&lt;DIV class="border-subtlest ring-subtlest divide-subtlest bg-subtler"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;text&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE&gt;resource "databricks_permissions" "prod_cluster_permissions" {
  cluster_id = databricks_cluster.prod.id

  access_control {
    group_name = databricks_group.data_engineers.display_name
    permission_level = "CAN_VIEW"
  }

  access_control {
    group_name = databricks_group.ml_engineers.display_name
    permission_level = "CAN_VIEW"
  }
}

resource "databricks_permissions" "prod_job_permissions" {
  job_id = databricks_job.prod.id

  access_control {
    group_name = databricks_group.data_engineers.display_name
    permission_level = "CAN_VIEW"
  }

  access_control {
    group_name = databricks_group.ml_engineers.display_name
    permission_level = "CAN_VIEW"
  }
}
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;This aligns with a persona-based approach, where personas (developer, analyst, etc.) map to groups that receive distinct role assignments per workspace.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Additional Guidance&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Use Terraform workspaces or separate configurations for DEV and PROD environments to keep isolation.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Consult the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="reset interactable cursor-pointer decoration-1 underline-offset-1 text-super hover:underline font-semibold" href="https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/permissions" target="_blank" rel="nofollow noopener"&gt;&lt;SPAN class="text-box-trim-both"&gt;Databricks provider documentation&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for the latest permission levels and supported resources.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Consider using Databricks access control lists (ACLs), cluster policies, and workspace-level role assignments for more granular control.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;References&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Persona-based access is described in detail in Databricks documentation.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;The Terraform Databricks provider gives exact implementation examples for roles, permissions, and resource management.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;By following these steps, you'll maintain strict boundaries between DEV and PROD, in line with persona-based governance principles.&lt;/P&gt;</description>
      <pubDate>Mon, 03 Nov 2025 21:26:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/administration-architecture/implementing-databricks-persona-in/m-p/137473#M4358</guid>
      <dc:creator>mark_ott</dc:creator>
      <dc:date>2025-11-03T21:26:26Z</dc:date>
    </item>
  </channel>
</rss>

