Compartilhar via


Funções para gerenciar entidades de serviço

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

Uma entidade de serviço é uma identidade criada no Azure Databricks para uso com ferramentas automatizadas, trabalhos e aplicativos. As entidades de serviço concedem as ferramentas automatizadas e scripts Acesso somente à API a recursos do Azure Databricks, fornecendo maior segurança do que o uso de usuários ou grupos.

Você pode conceder acesso a usuários, entidades de serviço e grupos de contas do Azure Databricks para usar uma entidade de serviço. Isso permite que os usuários executem trabalhos como a entidade de serviço, em vez de 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, confira Gerenciar entidades de serviço.

Funções da entidade de serviço

As funções da entidade de serviço são funções no nível da conta. Isso significa que eles só precisam ser definidas uma vez em sua conta e aplicadas em todos os workspaces. Há duas funções que podem ser concedidas a uma entidade de serviço: Gerente da Entidade de Serviço e Usuário da Entidade de Serviço.

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

Observação

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 Gerente de entidade de serviço por padrão. Se você precisar ser um gerente, peça a um administrador de conta para conceder a você a função de Gerente de entidade de serviço.

  • O usuário da entidade de serviço permite que os usuários do workspace 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 Gerente de entidade de serviço não herdam a função Usuário da entidade de serviço. Se quiser usar a entidade de serviço para executar trabalhos, você precisará atribuir explicitamente a função de usuário da entidade de serviço, mesmo depois de criar a entidade de serviço.

Observação

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

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

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

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

  1. Como administrador de conta, faça logon no console da conta.
  2. Na barra lateral, clique em Gerenciamento de usuários .
  3. Na guia Entidades de Serviço, encontre e clique no nome.
  4. Clique na guia Permissões.

Você pode ver a lista de entidades de segurança 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 de segurança ou função específica.

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

  1. Como administrador de conta, faça logon no console da conta.

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

  3. Na guia Entidades de Serviço, encontre e clique no nome.

  4. Clique na guia Permissões.

  5. Clique em Conceder acesso.

  6. Pesquise e selecione o usuário, a entidade de serviço ou o grupo e escolha a função ou as funções (Entidade de serviço: Gerente ou Entidade de serviço: Usuário) a serem atribuídas.

    Observação

    Os usuários com a função Gerente de entidade de serviço não herdam a função Usuário da entidade de serviço. Se você quiser que o usuário use a entidade de serviço para executar trabalhos, será necessário atribuir explicitamente a função Usuário da entidade de serviço.

  7. Clique em Save (Salvar).

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

  1. Como administrador de conta, faça logon no console da conta.
  2. Na barra lateral, clique em Gerenciamento de usuários .
  3. Na guia Entidades de Serviço, encontre e clique no nome.
  4. Clique na guia Permissões.
  5. Pesquise o usuário, a entidade de serviço ou o grupo para editar suas funções.
  6. Na linha com a entidade de segurança, clique no menu kebab Menu kebab e 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 Save (Salvar).

Gerenciar funções da entidade de serviço usando a página de configurações de administração do workspace

Os administradores do workspace podem gerenciar funções da entidades de serviço para as entidades de serviço nas quais eles têm a função Gerente da entidade de serviço no uso da página de configurações de administrador.

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

  1. Como administrador do workspace, faça logon no workspace do Azure Databricks.
  2. Clique no seu nome de usuário na barra superior do workspace do Azure Databricks e selecione Configuraçõ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 na guia Permissões.

Você pode ver a lista de entidades de segurança 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 de segurança ou função específica.

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

Você deve ter a função Gerente da entidade de serviço em uma entidade de serviço para conceder funções.

  1. Como administrador do workspace, faça logon no workspace do Azure Databricks.

  2. Clique no seu nome de usuário na barra superior do workspace do Azure Databricks e selecione Configuraçõ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 na guia Permissões.

  7. Clique em Conceder acesso.

  8. Pesquise e selecione o usuário, a entidade de serviço ou o grupo e escolha a função ou as funções (Entidade de serviço: Gerente ou Entidade de serviço: Usuário) a serem atribuídas.

    Observação

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

    Os usuários com a função Gerente de entidade de serviço não herdam a função Usuário da entidade de serviço. Se você quiser que o usuário use a entidade de serviço para executar trabalhos, será necessário atribuir explicitamente a função Usuário da entidade de serviço.

  9. Clique em Save (Salvar).

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

Você deve ter a função Gerente da entidade de serviço em uma entidade de serviço para revogar funções.

  1. Como administrador do workspace, faça logon no workspace do Azure Databricks.
  2. Clique no seu nome de usuário na barra superior do workspace do Azure Databricks e selecione Configuraçõ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 na guia Permissões.
  7. Pesquise o usuário, a entidade de serviço ou o grupo para editar suas funções.
  8. Na linha com a entidade de segurança, clique no menu kebab Menu kebab e 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 Save (Salvar).

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

Você precisa ter a função de Gerente de Entidade de Serviço 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 na CLI do Databricks, confira O que é a CLI do Databricks?.

Você pode gerenciar funções de entidade de serviço usando a API de Controle de Acesso a Contas. A API do Controle de Acesso de Contas tem suporte por meio da conta e dos workspaces do Azure Databricks.

Os administradores da 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 Gerente de entidade de serviço que não são administradores de conta chamam a API no domínio do workspace ({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 do Controle de Acesso de Contas e a CLI usa um campo etag para garantir a consistência. Para conceder ou revogar funções da entidade de serviço por meio da API, primeiro emita um comando do conjunto de regras GET e receba um etag como resposta. Em seguida, você pode aplicar alterações localmente e, por fim, emitir um conjunto de regras PUT com o etag.

Por exemplo, emita um conjunto de regras GET 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>

Substitua:

  • <account-id> com a ID da conta.
  • <application-id> com a 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 campo etag 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 a etag. Para conceder a função Entidade de serviço: 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>"
  }
}'

Substitua:

  • <account-id> com a ID da conta.
  • <application-id> com a ID do aplicativo da entidade de serviço.
  • <etag> com a marca da entidade 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 método PUT, todas as funções existentes são substituídas. Para manter as permissões existentes, você deve adicioná-las à matriz grant_roles.

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

Usando a API de Entidades de Serviço do Workspace, 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 Usuário da Entidade 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 do Workspace.