Funções para gerenciar a entidade de serviço

Este artigo descreve como gerenciar funções em uma entidade de serviço em seu site Databricks account.

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.

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

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

entidade de serviço roles

As funções da entidade de serviço são account-level roles. Isso significa que eles só precisam ser definidos uma vez, em seu site account, e se aplicam a todo o espaço de trabalho. Há duas funções que o senhor pode conceder em uma entidade de serviço: entidade de serviço Manager e entidade de serviço User.

  • O Entidade de Serviço Manager permite que o senhor gerencie funções em uma entidade de serviço. O criador de uma entidade de serviço tem a função de Gerente de entidade de serviço na entidade de serviço. 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 tiver sido criada antes de 13 de junho de 2023, o criador da entidade de serviço não terá a função de gerente da entidade de serviço pelo site 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 trabalho será executado com a identidade da entidade de serviço, em vez da identidade do proprietário do trabalho. A função de usuário da entidade de serviço também permite que os administradores do workspace criem um access tokens pessoal em nome da entidade de serviço. A criação de segredos OAuth para uma entidade de serviço requer a função account admin ou workspace admin.

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 de entidade de serviço, mesmo depois de criar a entidade de serviço.

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

account Os administradores podem gerenciar as funções da 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 entidade de serviço tab, localize e clique no nome.

  4. Clique na guia Permissões .

O senhor pode ver a lista de diretores e as funções que lhes são concedidas na entidade de serviço. O senhor também pode usar a barra de pesquisa para procurar um diretor 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 entidade de serviço tab, localize e clique no nome.

  4. Clique na guia Permissões .

  5. Clique em Conceder acesso.

  6. Procure e selecione o usuário, a entidade de serviço ou o 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 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 entidade de serviço tab, localize e clique no nome.

  4. Clique na guia 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 kebab Menu Kebab e selecione Edit (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 o senhor deseja revogar.

  9. Clique em Salvar.

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

workspace Os administradores podem gerenciar as funções de entidade de serviço para as entidades de serviço nas quais eles têm a função de gerente de entidade de serviço usando a página de configurações do 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 Databricks.

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

  3. Clique em Identity and access (Identidade e acesso ) tab.

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

  5. Localize e clique no nome.

  6. Clique na guia Permissões .

O senhor pode ver a lista de diretores e as funções que lhes são concedidas na entidade de serviço. O senhor também pode usar a barra de pesquisa para procurar um diretor ou função específica.

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

O senhor deve ter a função Gerente de entidade de serviço em uma entidade de serviço para poder 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 em Identity and access (Identidade e acesso ) tab.

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

  5. Localize e clique no nome.

  6. Clique na guia Permissões .

  7. Clique em Conceder acesso.

  8. Procure e selecione o usuário, a entidade de serviço ou o 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 de nível account, mesmo que não seja membro do workspace. As funções não podem ser concedidas a grupos workspace-local.

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

O senhor deve ter a função de gerente de entidade de serviço em uma entidade de serviço para poder 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 em Identity and access (Identidade e acesso ) tab.

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

  5. Localize e clique no nome.

  6. Clique na guia 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 kebab Menu Kebab e selecione Edit (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 o senhor deseja revogar.

  11. Clique em Salvar.

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

O senhor deve ter a função de gerente de entidade de serviço para gerenciar funções em uma entidade de serviço. O senhor pode usar a CLI do Databricks para gerenciar as funções. Para obter informações sobre a instalação e a autenticação no site Databricks CLI, consulte O que é o site Databricks CLI?

O senhor também pode gerenciar as funções da entidade de serviço usando o controle de acesso à conta API. A conta Access Control API é compatível com o Databricks account e com o espaço de trabalho.

account Os administradores chamam o API em account.gcp.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 o 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 conta Access Control API e CLI usa um campo etag para garantir a consistência. Para conceder ou revogar funções de entidade de serviço por meio do site API, primeiro emita um comando GET rule set e receba um etag como resposta. O senhor pode então aplicar as 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 o senhor 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 a ID account.

  • <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 campo etag do corpo da resposta para uso posterior.

Assim, o senhor 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 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 a ID account.

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

  • <etag> com o etag que o senhor 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 funções existentes, o senhor deve adicioná-las ao array grant_roles.

Liste a entidade de serviço que o senhor pode usar

Usando o workspace entidade de serviço API, é possível listar a entidade de serviço na qual o senhor tem a função de usuário filtrando servicePrincipal/use.

Para listar a entidade de serviço na qual o senhor tem 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'"

O senhor também pode listar a entidade de serviço usando o endereço workspace entidade de serviço API.