Funções para gerenciar entidades de serviço

Este artigo descreve como gerenciar funções em entidades de serviço em sua conta do Azure Databricks.

Um principal de serviço é uma identidade que cria no Azure Databricks para utilização com ferramentas, tarefas e aplicações automatizadas. Os principais de serviço dão acesso apenas à API de ferramentas e scripts automatizados aos recursos do Azure Databricks, proporcionando maior segurança do que a utilização de utilizadores ou grupos.

Você pode conceder aos usuários, entidades de serviço e grupos de contas do Azure Databricks acesso para usar uma entidade de serviço. Isso permite que os usuários executem trabalhos como a entidade de serviço, em vez de como sua identidade. Isso evita que os trabalhos falhem se um usuário sair da sua organização ou se um grupo for modificado.

Para obter uma visão geral das entidades de serviço, consulte Gerenciar entidades de serviço.

Funções principais do serviço

As funções principais de serviço são funções no nível da conta. Isso significa que eles só precisam ser definidos uma vez, em sua conta, e aplicados em todos os espaços de trabalho. Há duas funções que você pode conceder em uma entidade de serviço: Gerenciador da entidade de serviço e Usuário da entidade de serviço.

  • O Service Principal Manager permite que você gerencie funções em uma entidade de serviço. O criador de uma entidade de serviço tem a função de Gerente da Entidade de Serviço na entidade de serviço. Os administradores de conta têm a função Service Principal Manager em todas as entidades de serviço de uma conta.

Nota

Se uma entidade de serviço tiver sido criada antes de 13 de junho de 2023, o criador da entidade de serviço não terá a função Service Principal Manager por padrão. Se precisar de ser gestor, peça a um administrador de conta que lhe conceda a função de Gestor Principal de Serviço.

  • O Usuário da Entidade de Serviço permite que os usuários do espaço de trabalho executem trabalhos como a entidade de serviço. O trabalho será executado com a identidade da entidade de serviço, em vez da identidade do proprietário do trabalho.

Os usuários com a função Service Principal Manager não herdam a função Service Principal User . Se quiser usar a entidade de serviço para executar trabalhos, você precisará atribuir explicitamente a si mesmo a função de usuário da entidade de serviço, mesmo depois de criar a entidade de serviço.

Nota

As funções principais do serviço Azure Databricks não se sobrepõem às funções do Azure ou às funções do Microsoft Entra ID. Essas funções abrangem apenas a conta do Azure Databricks.

Gerenciar funções de entidade de serviço usando o console de conta

Os administradores de conta podem gerenciar funções de entidades de serviço usando o console de conta.

Exibir funções em uma entidade de serviço

  1. Como administrador da conta, inicie sessão na consola da conta.
  2. Na barra lateral, clique em Gerenciamento de usuários.
  3. Na guia Entidades de serviço, localize e clique no nome.
  4. Clique no separador Permissões .

Você pode ver a lista de entidades e as funções que lhes são concedidas na entidade de serviço. Você também pode usar a barra de pesquisa para pesquisar uma entidade ou função específica.

Conceder funções em uma entidade de serviço

  1. Como administrador da conta, inicie sessão na consola da conta.

  2. Na barra lateral, clique em Gerenciamento de usuários.

  3. Na guia Entidades de serviço, localize e clique no nome.

  4. Clique no separador Permissões .

  5. Clique em Conceder acesso.

  6. Procure e selecione o usuário, entidade de serviço ou grupo e escolha a função ou funções (Entidade de serviço: Gerente ou Entidade de serviço: Usuário) a atribuir.

    Nota

    Os usuários com a função Service Principal Manager não herdam a função Service Principal User . Se desejar que o usuário use a entidade de serviço para executar trabalhos, será necessário atribuir explicitamente a função de Usuário da Entidade de Serviço.

  7. Clique em Guardar.

Revogar funções em uma entidade de serviço

  1. Como administrador da conta, inicie sessão na consola da conta.
  2. Na barra lateral, clique em Gerenciamento de usuários.
  3. Na guia Entidades de serviço, localize e clique no nome.
  4. Clique no separador Permissões .
  5. Procure o usuário, a entidade de serviço ou o grupo para editar suas funções.
  6. Na linha com o principal, clique no menu Menu de kebab kebab e, em seguida, selecione Editar. Como alternativa, selecione Excluir para revogar todas as funções da entidade de segurança.
  7. Clique em Editar.
  8. Clique no X ao lado das funções que você deseja revogar.
  9. Clique em Guardar.

Gerenciar funções de entidade de serviço usando a página de configurações de administrador do espaço de trabalho

Os administradores de espaço de trabalho podem gerenciar funções de entidades de serviço para entidades de serviço nas quais eles têm a função Gerenciador da Entidade de Serviço usando a página de configurações de administrador.

Exibir funções em uma entidade de serviço

  1. Como administrador do espaço de trabalho, faça logon no espaço de trabalho do Azure Databricks.
  2. Clique no seu nome de utilizador na barra superior da área de trabalho do Azure Databricks e selecione Definições.
  3. Clique na guia Identidade e acesso .
  4. Ao lado de Entidades de serviço, clique em Gerenciar.
  5. Localize e clique no nome.
  6. Clique no separador Permissões .

Você pode ver a lista de entidades e as funções que lhes são concedidas na entidade de serviço. Você também pode usar a barra de pesquisa para pesquisar uma entidade ou função específica.

Conceder funções em uma entidade de serviço

Você deve ter a função Service Principal Manager em uma entidade de serviço para conceder funções.

  1. Como administrador do espaço de trabalho, faça logon no espaço de trabalho do Azure Databricks.

  2. Clique no seu nome de utilizador na barra superior da área de trabalho do Azure Databricks e selecione Definições.

  3. Clique na guia Identidade e acesso .

  4. Ao lado de Entidades de serviço, clique em Gerenciar.

  5. Localize e clique no nome.

  6. Clique no separador Permissões .

  7. Clique em Conceder acesso.

  8. Procure e selecione o usuário, entidade de serviço ou grupo e escolha a função ou funções (Entidade de serviço: Gerente ou Entidade de serviço: Usuário) a atribuir.

    Nota

    As funções podem ser concedidas a qualquer usuário, entidade de serviço ou grupo no nível da conta, mesmo que eles não sejam membros do espaço de trabalho. As funções não podem ser concedidas a grupos locais de espaço de trabalho.

    Os usuários com a função Service Principal Manager não herdam a função Service Principal User . Se desejar que o usuário use a entidade de serviço para executar trabalhos, será necessário atribuir explicitamente a função de Usuário da Entidade de Serviço.

  9. Clique em Guardar.

Revogar funções em uma entidade de serviço

Você deve ter a função Service Principal Manager em uma entidade de serviço para revogar funções.

  1. Como administrador do espaço de trabalho, faça logon no espaço de trabalho do Azure Databricks.
  2. Clique no seu nome de utilizador na barra superior da área de trabalho do Azure Databricks e selecione Definições.
  3. Clique na guia Identidade e acesso .
  4. Ao lado de Entidades de serviço, clique em Gerenciar.
  5. Localize e clique no nome.
  6. Clique no separador Permissões .
  7. Procure o usuário, a entidade de serviço ou o grupo para editar suas funções.
  8. Na linha com o principal, clique no menu Menu de kebab kebab e, em seguida, selecione Editar. Como alternativa, selecione Excluir para revogar todas as funções da entidade de segurança.
  9. Clique em Editar.
  10. Clique no X ao lado das funções que você deseja revogar.
  11. Clique em Guardar.

Gerenciar funções de entidade de serviço usando a CLI do Databricks

Você deve ter a função Service Principal Manager para gerenciar funções em uma entidade de serviço. Você pode usar a CLI do Databricks para gerenciar funções. Para obter informações sobre como instalar e autenticar a CLI do Databricks, consulte O que é a CLI do Databricks?.

Você também pode gerenciar funções de entidade de serviço usando a API de Controle de Acesso de Contas. A API de Controle de Acesso de Contas é suportada por meio da conta e dos espaços de trabalho do Azure Databricks.

Os administradores de conta chamam a API em accounts.azuredatabricks.net ({account-domain}/api/2.0/preview/accounts/{account_id}/access-control).

Os usuários com a função Service Principal Manager que não são administradores de conta chamam a API no domínio do espaço de trabalho ({workspace-domain}/api/2.0/preview/accounts/access-control/).

Conceder funções em uma entidade de serviço usando a CLI do Databricks

A API de Controle de Acesso de Contas e a CLI usam um etag campo para garantir a consistência. Para conceder ou revogar funções de entidade de serviço por meio da API, primeiro emita um comando de conjunto de GET regras e receba uma etag resposta. Em seguida, você pode aplicar as alterações localmente e, finalmente, emitir um conjunto de PUT regras com o etag.

Por exemplo, emita um conjunto de GET regras na entidade de serviço à qual você deseja conceder acesso executando o seguinte comando:

databricks account access-control get-rule-set accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default <etag>

Substituir:

  • <account-id> com o ID da conta.
  • <application-id> com o ID do aplicativo da entidade de serviço.
  • <etag> com ""

Resposta de exemplo:

{
  "etag":"<etag>",
  "grant_rules": [
    {
      "principals": [
        "users/user@example.com"
      ],
      "role":"roles/servicePrincipal.manager"
    },
    {
      "principals": [
        "users/user@example.com"
      ],
      "role":"roles/servicePrincipal.user"
    }
  ],
  "name":"<name>"
}

Copie o etag campo do corpo da resposta para uso posterior.

Em seguida, você pode fazer atualizações localmente quando decidir sobre o estado final das regras e, em seguida, atualizar o conjunto de regras usando o etag. Para conceder a entidade de serviço: Função de usuário ao usuário user2@example.com, execute o seguinte:

databricks account access-control update-rule-set --json '{
  "name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
  "rule_set": {
      "name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
      "grant_rules": [
        {
            "role": "roles/servicePrincipal.user",
            "principals": ["users/user2@example.com"]
        }
      ],
      "etag": "<etag>"
  }
}'

Substituir:

  • <account-id> com o ID da conta.
  • <application-id> com o ID do aplicativo da entidade de serviço.
  • <etag> com o eTag que você copiou da última resposta.

Resposta de exemplo:

{
  "etag":"<new-etag>",
  "grant_rules": [
    {
      "principals": [
        "users/user2@example.com"
      ],
      "role":"roles/servicePrincipal.user"
    }
  ],
  "name":"accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default"
}

Importante

Como esse é um PUT método, todas as funções existentes são substituídas. Para manter quaisquer funções existentes, você deve adicioná-las à grant_roles matriz.

Listar as entidades de serviço que você pode usar

Usando a API de Entidades de Serviço de Espaço de Trabalho, você pode listar as entidades de serviço nas quais você tem a função de usuário filtrando em servicePrincipal/use.

Para listar as entidades de serviço nas quais você tem a função de Usuário Principal de Serviço, execute o seguinte comando:

databricks service-principals list -p WORKSPACE --filter "permission eq 'servicePrincipal/use'"

Você também pode listar entidades de serviço usando a API de Entidades de Serviço de Espaço de Trabalho.