Funções para a gestão da entidade de serviço

Este artigo descreve como gerenciar funções na entidade de serviço em sua account do Databricks.

Uma entidade de serviço é uma identidade que você cria no Databricks para uso com ferramentas, trabalhos e aplicativos automáticos. As entidades de serviço oferecem ferramentas automáticas e scripts de acesso somente por API aos recursos do Databricks, fornecendo maior segurança do que o uso de usuários ou grupos.

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

Para obter uma visão geral da entidade de serviço, consulte gerenciar entidade de serviço.

funções de entidade de serviço

As funções da entidade de serviço são funções no nível account . Isso significa que eles precisam ser definidos apenas uma vez, em sua account, e aplicados em todo workspace. Há duas funções que você pode conceder em uma entidade de serviço: Service Principal Manager e Service Principal User.

  • O entidade de serviço Manager permite que o senhor gerencie funções em uma entidade de serviço principal. O criador de uma entidade de serviço principal tem a função de Gerente de entidade de serviço na entidade de serviço principal. account Os administradores têm a função de entidade de serviço Manager em todas as entidades de serviço em um site account.

Observação

Se uma entidade de serviço principal tiver sido criada antes de 13 de junho de 2023, o criador da entidade de serviço principal não terá a função de gerente de entidade de serviço em default. Se o senhor precisar ser um gerente, peça a um administrador do account que lhe conceda a função de entidade de serviço Manager.

  • entidade de serviço User permite que workspace usuários executem o Job como entidade de serviço. O site Job será executado com a identidade da entidade de serviço, em vez da identidade do proprietário do site Job. A função de usuário da entidade de serviço também permite que os administradores do workspace criem tokens em nome da entidade de serviço.

Observação

Quando a configuração RestrictWorkspaceAdmins em um workspace é definida como ALLOW ALL, os administradores do workspace podem criar um access token pessoal em nome de qualquer entidade de serviço em seu workspace. Para impor a função de usuário da entidade de serviço para que os administradores do workspace criem um access token pessoal para uma entidade de serviço, consulte Restringir administradores do workspace .

Os usuários com a função de gerente da entidade de serviço não herdam a função de usuário da entidade de serviço. Se quiser usar a entidade de serviço para executar o trabalho, o senhor precisa 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.

funções principais do serviço gerenciado usando o console da conta

os administradores account podem gerenciar funções de entidade de serviço usando o console account .

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

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

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

  3. Na tab entidade de serviço , localize e clique no nome.

  4. Clique na guia Permissões.

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

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

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

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

  3. Na tab entidade de serviço , localize e clique no nome.

  4. Clique na guia Permissões.

  5. Clique em Conceder acesso.

  6. Pesquise 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 serem atribuídas.

    Observação

    Os usuários com a função de gerente da entidade de serviço não herdam a função de usuário da entidade de serviço. Se quiser que o usuário use a entidade de serviço principal para executar o trabalho, será necessário atribuir explicitamente a função de usuário da entidade de serviço.

  7. Clique em Salvar.

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

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

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

  3. Na tab entidade de serviço , localize e clique no nome.

  4. Clique na guia Permissões.

  5. Pesquise o usuário, entidade de serviço ou grupo para editar suas funções.

  6. Na linha com o principal, clique no menu kebab Reticências verticais e, em seguida, selecione Editar. Como alternativa, selecione Excluir para revogar todas as funções do principal.

  7. Clique em Editar.

  8. Clique no X ao lado das funções que deseja revogar.

  9. Clique em Salvar.

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

os administradores workspace podem funções de entidades de serviço gerenciado para entidades de serviço que têm a função de gerente de entidade de serviço usando a página de configurações de administração.

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 Databricks.

  2. Clique no seu nome de usuário na barra superior do site Databricks workspace e selecione Settings (Configurações).

  3. Clique na Identidade e acesso tab.

  4. Ao lado de entidade de serviço, clique em gerenciar.

  5. Encontre e clique no nome.

  6. Clique na guia Permissões.

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

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

Você deve ter a função de gerente principal de serviço 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 Databricks.

  2. Clique no seu nome de usuário na barra superior do site Databricks workspace e selecione Settings (Configurações).

  3. Clique na Identidade e acesso tab.

  4. Ao lado de entidade de serviço, clique em gerenciar.

  5. Encontre e clique no nome.

  6. Clique na guia Permissões.

  7. Clique em Conceder acesso.

  8. Pesquise 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 serem atribuídas.

    Observação

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

    Os usuários com a função de gerente da entidade de serviço não herdam a função de usuário da entidade de serviço. Se quiser que o usuário use a entidade de serviço principal para executar o trabalho, será necessário atribuir explicitamente a função de usuário da entidade de serviço.

  9. Clique em Salvar.

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

Você deve ter a função de gerente principal de serviço 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 Databricks.

  2. Clique no seu nome de usuário na barra superior do site Databricks workspace e selecione Settings (Configurações).

  3. Clique na Identidade e acesso tab.

  4. Ao lado de entidade de serviço, clique em gerenciar.

  5. Encontre e clique no nome.

  6. Clique na guia Permissões.

  7. Pesquise o usuário, entidade de serviço ou grupo para editar suas funções.

  8. Na linha com o principal, clique no menu kebab Reticências verticais e, em seguida, selecione Editar. Como alternativa, selecione Excluir para revogar todas as funções do principal.

  9. Clique em Editar.

  10. Clique no X ao lado das funções que deseja revogar.

  11. Clique em Salvar.

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

Você deve 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 a instalação e autenticação na 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 Accounts Access Control. A API de controle de acesso da conta é suportada por meio da account e do espaço de trabalho do Databricks.

Os administradores da conta chamam a API em accounts.cloud.databricks.com ({account-domain}/api/2.0/preview/accounts/{account_id}/access-control).

Os usuários com a função Entidade de Serviço Manager que não são administradores do account chamam a API no domínio 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 de controle de acesso account usa um campo etag 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 regras GET e receba um etag em resposta. Você pode aplicar as alterações localmente e, finalmente, 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>

Substituir:

  • <account-id> com o ID account .

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

  • <etag> com ""

Exemplo de resposta:

{
  "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 o etag. Para conceder a entidade de serviço: User role 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 account .

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

  • <etag> com a etag que você copiou da última resposta.

Exemplo de resposta:

{
  "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 este é um método PUT , todas as funções existentes são substituídas. Para manter as funções existentes, você deve adicioná-las à matriz grant_roles .

Liste a entidade de serviço que você pode usar

Usando a API da entidade de serviço workspace , você pode listar a entidade de serviço na qual você tem a função de usuário filtrando em servicePrincipal/use.

Para listar a entidade de serviço na qual você possui a função de 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 Workspace entidade de serviço.