Partilhar via


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 grant 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 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 grant em uma entidade de serviço: Service Principal Manager e Service Principal User.

  • 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 um gestor, peça a um administrador de conta que lhe grant 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 list dos principais e as funções que eles recebem na entidade de serviço. Você também pode usar a barra de pesquisa para pesquisar uma entidade ou função específica.

Grant funções em um principal do 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 Grant acessar.

  6. Procure e select o usuário, a entidade de serviço ou o grupo e escolha a função ou funções (Entidade de serviço: de gerente ou Entidade de serviço:de 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.

Revoke funções em um principal 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 Kebab Menu Kebab e depois selectEditar. Como alternativa, selectExcluir para revoke todas as funções para a entidade de segurança.
  7. Clique em Editar.
  8. Clique no X ao lado das funções que você deseja .
  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 selectDefiniçõ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 list dos principais e as funções que eles recebem na entidade de serviço. Você também pode usar a barra de pesquisa para pesquisar uma entidade ou função específica.

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

Você deve ter a função Service Principal Manager num principal de serviço para grant 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 selectDefiniçõ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 Grant acessar.

  8. Procure e select o utilizador, a entidade de serviço ou o grupo e escolha a função ou funções (Entidade de serviço: Gestor ou Entidade de serviço: Utilizador) 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.

Revoke funções numa entidade de serviço

Você deve ter a função Service Principal Manager num principal de serviço para revoke 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 selectConfiguraçõ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 kebab menu Kebab e, em seguida, selectEditar. Como alternativa, selectexcluir a revoke todas as funções do principal.
  9. Clique em Editar.
  10. Clique no X ao lado das funções que tu desejas revoke.
  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/).

Grant 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 grant ou revoke funções principais de serviço por meio da API, primeiro emita um comando set regra GET e receba um etag em resposta. Pode-se então aplicar as alterações localmente e, por fim, emitir uma regra PUTset com o etag.

Por exemplo, emita uma regra de GETset no principal de serviço ao qual pretende grant 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, podes fazer atualizações localmente quando decidires sobre o estado final das regras e update a regra set usando o etag. Para grant a entidade de serviço : função de de usuário para o 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.

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

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

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

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

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