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, a entidades de serviço e a grupos de contas do Azure Databricks acesso para utilizarem 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 se podem conceder num principal 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 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
- Como administrador da conta, inicie sessão na consola da conta.
- Na barra lateral, clique em Gerenciamento de usuários.
- Na guia Entidades de serviço, localize e clique no nome.
- Clique no separador Permissões .
Você pode ver a lista de principais e as funções que lhes são concedidas no principal de serviço. Você também pode usar a barra de pesquisa para pesquisar uma entidade ou função específica.
Conceder funções numa principal de serviço
Como administrador da conta, inicie sessão na consola da conta.
Na barra lateral, clique em Gerenciamento de usuários.
Na guia Entidades de serviço, localize e clique no nome.
Clique no separador Permissões .
Clique Conceder acesso.
Procure e selecione o utilizador, entidade de serviço ou grupo e escolha a função ou funções (Entidade de serviço: Gestor ou Entidade de serviço: Utilizador) 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.
Clique em Guardar.
Revogar funções em uma entidade de serviço
- Como administrador da conta, inicie sessão na consola da conta.
- Na barra lateral, clique em Gerenciamento de usuários.
- Na guia Entidades de serviço, localize e clique no nome.
- Clique no separador Permissões .
- Procure o usuário, a entidade de serviço ou o grupo para editar suas funções.
- Na linha com o principal, clique no menu kebab e, em seguida, selecione Editar. Como alternativa, selecione Excluir para revogar todos os papéis da entidade principal.
- Clique em Editar.
- Clique no X ao lado das funções que você deseja revogar.
- 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
- Como administrador do espaço de trabalho, faça logon no espaço de trabalho do Azure Databricks.
- Clique no seu nome de utilizador na barra superior da área de trabalho do Azure Databricks e selecione Definições.
- Clique na guia Identidade e acesso .
- Ao lado de Entidades de serviço, clique em Gerenciar.
- Localize e clique no nome.
- Clique no separador Permissões .
Você pode ver a lista de principais e as funções que lhes são atribuídas no principal do 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.
Como administrador do espaço de trabalho, faça logon no espaço de trabalho do Azure Databricks.
Clique no seu nome de utilizador na barra superior da área de trabalho do Azure Databricks e selecione Definições.
Clique na guia Identidade e acesso .
Ao lado de Entidades de serviço, clique em Gerenciar.
Localize e clique no nome.
Clique no separador Permissões .
Clique Conceder acesso.
Procure e selecione o utilizador, entidade de serviço ou 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.
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.
- Como administrador do espaço de trabalho, faça logon no espaço de trabalho do Azure Databricks.
- Clique no seu nome de utilizador na barra superior da área de trabalho do Azure Databricks e selecione Definições.
- Clique na guia Identidade e acesso .
- Ao lado de Entidades de serviço, clique em Gerenciar.
- Localize e clique no nome.
- Clique no separador Permissões .
- Procure o usuário, a entidade de serviço ou o grupo para editar suas funções.
- Na linha com o principal, clique no menu kebab e, em seguida, selecione Editar. Como alternativa, selecione Excluir para revogar todas as funções do principal.
- Clique em Editar.
- Clique no X ao lado das funções que você deseja revogar.
- 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 perfis de entidade de serviço através da API, primeiro emita um comando para definir o conjunto de regras GET
e receba um etag
em resposta. Em seguida, você pode aplicar as alterações localmente e, finalmente, emitir um conjunto de regras PUT
com o etag
.
Por exemplo, configure um conjunto de regras GET
na entidade de serviço à qual pretende 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 função Service principal: 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 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 os principais de serviço que 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 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 o Workspace Service Principals API.