Pular para o conteúdo principal

Gerenciar permissões de orçamento

Este artigo explica como controlar quem pode view e gerenciar orçamentos em sua conta do Databricks.

Os orçamentos são objetos de nível de account que permitem monitorar o uso em toda a sua account ou limitar o acompanhamento a equipes, projetos ou workspaces específicos. Consulte Criar e monitorar orçamentos. O acesso a um orçamento é regido por uma lista de controle de acesso (ACL): cada orçamento possui um conjunto de regras de concessão que atribuem funções aos principals (usuários, grupos ou Databricks Service Principal).

Os administradores de account e administradores de Workspace podem criar orçamentos. Quando você cria um orçamento, a função Budget Manager é concedida automaticamente a você nele.

Funções de orçamento​

Há duas funções que você pode conceder em um orçamento: Budget Manager e Budget Viewer .

Função

Nome da concessão

Descrição

Gerente de orçamento

roles/budget.manager

View o orçamento; editar seus limites e configurações de alerta, incluindo a imposição de limite de uso e destinos de email de alerta externos; e gerenciar suas permissões concedendo ou revogando funções para outros principals.

Budget Viewer

roles/budget.viewer

View o orçamento e sua configuração. Não é possível editar o orçamento, editar substituições por usuário ou gerenciar permissões.

Função

Nome da concessão

Descrição

Gerente de orçamento

roles/budget.manager

View o orçamento; editar seus limites e configurações de alerta, incluindo a imposição de limite de uso e destinos de email de alerta externos; e gerenciar suas permissões concedendo ou revogando funções para outros principals.

Budget Viewer

roles/budget.viewer

View o orçamento e sua configuração. Não é possível editar o orçamento, editar substituições por usuário ou gerenciar permissões.

nota

Os filtros de um orçamento são definidos quando o orçamento é criado e não podem ser editados posteriormente. A revogação de uma função não se propaga para outras concessões no orçamento.

Default permissions​

O acesso default a um orçamento depende da sua função de administrador:

  • Os administradores de account têm acesso total de superusuário a todos os orçamentos da account. Eles podem view, editar, excluir e gerenciar permissões em qualquer orçamento, independentemente das concessões nele. Esse acesso não pode ser revogado no nível de orçamento individual.
  • Os administradores de Workspace podem criar orçamentos com escopo para os Workspace que administram. Eles recebem a função de Budget Manager apenas nos orçamentos que criam e não têm acesso aos orçamentos criados por outros, a menos que recebam explicitamente uma função.
  • O criador do orçamento recebe automaticamente a função Budget Manager no orçamento que cria. Um administrador de account ou outro gerente de orçamento pode revogá-lo mais tarde.
nota

As alterações de permissão podem levar 30 segundos ou mais para se propagar pelo sistema.

Quem pode fazer o quê​

O acesso depende da sua função na account e de você usar a API ou a IU do Budgets, que está disponível na IU do Governance Hub e na IU de Usage do console da account.

nota

A interface de orçamentos está disponível apenas para administradores de account e administradores de Workspace. Usuários que possuem a função Budget Manager ou Budget Viewer , mas não são administradores, usam a API de orçamentos para view e gerenciar seus orçamentos. A API de orçamentos é acessível para administradores de account, administradores de workspaces e qualquer usuário que tenha recebido a função Budget Manager ou Budget Viewer em um orçamento.

Ação

Administrador da conta

Administrador do workspace

Gerente de orçamento (não administrador)

Visualizador de orçamento (não administrador)

Criar orçamento

Todos os orçamentos (UI e API)

Orçamentos para os Workspace administrados por eles (IU e API)

—

—

view ou listar orçamento

Todos os orçamentos (UI e API)

Orçamentos que eles gerenciam ou view (interface do usuário e API)

Orçamentos que eles gerenciam (API)

Orçamentos view por eles (API)

Editar orçamento

Todos os orçamentos (UI e API)

Orçamentos gerenciados por eles (interface do usuário e API)

Orçamentos que eles gerenciam (API)

—

Gerenciar permissões

Todos os orçamentos (UI e API)

Orçamentos gerenciados por eles (interface do usuário e API)

Orçamentos que eles gerenciam (API)

—

Ação

Administrador da conta

Administrador do workspace

Gerente de orçamento (não administrador)

Visualizador de orçamento (não administrador)

Criar orçamento

Todos os orçamentos (UI e API)

Orçamentos para os Workspace administrados por eles (IU e API)

—

—

view ou listar orçamento

Todos os orçamentos (UI e API)

Orçamentos que eles gerenciam ou view (interface do usuário e API)

Orçamentos que eles gerenciam (API)

Orçamentos view por eles (API)

Editar orçamento

Todos os orçamentos (UI e API)

Orçamentos gerenciados por eles (interface do usuário e API)

Orçamentos que eles gerenciam (API)

—

Gerenciar permissões

Todos os orçamentos (UI e API)

Orçamentos gerenciados por eles (interface do usuário e API)

Orçamentos que eles gerenciam (API)

—

nota

The list API returns a comprehensive set: every budget you can see across the account, regardless of workspace scope.

Autenticar na sua account​

Os orçamentos são objetos de nível de account, portanto, os comandos da API de Orçamento e da CLI databricks account do Databricks exigem autenticação de nível de account. Isso se aplica a administradores de account, administradores de workspace e usuários com a função de Gerenciador de Orçamento ou Visualizador de Orçamento. Um token de nível de workspace ou perfil da CLI do Databricks não funciona.

Para autenticar com a CLI do Databricks, faça a execução de databricks auth login com a URL do seu console account e seu ID account:

Bash
databricks auth login --host https://accounts.gcp.databricks.com --account-id <ACCOUNT_ID>

Substitua <ACCOUNT_ID> pelo ID da sua account. Consulte Localizar o ID da sua account.

nota

Se sua account tiver uma URL personalizada, seu host da account pode ser diferente das URLs mostradas acima. Confirme o host correto com seu administrador account. Se você usar o host errado, como a URL do console da account para um cloud diferente daquele que hospeda sua account, a autenticação falhará.

A CLI do Databricks abre um fluxo de login baseado em navegador. Ao terminar, a CLI do Databricks salva um perfil de configuração para sua account. Aceite o nome de perfil sugerido ou insira o seu e anote o nome. Você o passa para os comandos de account com a flag --profile.

Para obter mais informações sobre a instalação e a autenticação na CLI do Databricks, consulte CLI do Databricks.

Gerenciar permissões de orçamento usando a CLI do Databricks​

O ACL de um orçamento é armazenado como um conjunto de regras: um ACL nomeado anexado ao orçamento. Você lê e modifica as permissões de um orçamento com o grupo de comandos account access-control na CLI do Databricks, que é escopo de account. Antes da execução desses comandos, autentique-se na sua account.

Você também pode gerenciar as permissões de orçamento usando a API de conjunto de regras.

O conjunto de regras de um orçamento é nomeado:

accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default

Ler as permissões de um orçamento​

O grupo de comandos account access-control usa um campo etag para o controle de concorrência otimista. Para conceder ou revogar funções, primeiro execute get-rule-set para ler o conjunto de regras atual e seu etag, aplique suas alterações localmente e, em seguida, execute update-rule-set com esse etag.

Execute o seguinte comando para ler as permissões atuais, passando uma strings vazia para o etag para indicar que não há requisito de atualização:

Bash
databricks account access-control get-rule-set \
"accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default" "" \
--profile <PROFILE_NAME>

Substituir:

  • <ACCOUNT_ID> com o seu ID de account.
  • <BUDGET_ID> com o ID do orçamento.
  • <PROFILE_NAME> com o perfil de account que você salvou quando você se autenticou na sua account.

Resposta de exemplo:

JSON
{
"etag": "1790271814348000",
"grant_rules": [
{ "principals": ["users/manager@example.com"], "role": "roles/budget.manager" },
{ "principals": ["users/viewer@example.com"], "role": "roles/budget.viewer" }
],
"name": "accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default"
}

Copie o campo etag da resposta para a solicitação de atualização.

Conceder ou revogar permissões​

Para conceder uma função, adicione a entidade à entrada grant_rules relevante. Para revogar uma função, execute a execução da atualização novamente sem essa entidade. Como a atualização substitui toda a lista grant_rules, inclua todas as concessões que você deseja manter, e não apenas a nova. Para limpar todas as permissões, passe uma lista grant_rules vazia.

Crie um arquivo rule-set.json com o estado final das regras. Use o etag que você copiou da resposta de get-rule-set:

JSON
{
"name": "accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default",
"rule_set": {
"name": "accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default",
"etag": "1790271814348000",
"grant_rules": [
{ "role": "roles/budget.manager", "principals": ["users/manager@example.com"] },
{ "role": "roles/budget.viewer", "principals": ["users/viewer@example.com", "groups/cost-team"] }
]
}
}

Em seguida, aplique a atualização:

Bash
databricks account access-control update-rule-set --json @rule-set.json --profile <PROFILE_NAME>
importante

Como esta atualização substitui todo o conjunto de regras, todas as funções existentes são substituídas. Para manter quaisquer funções existentes, inclua-as na lista grant_rules. Um etag obsoleto é rejeitado; portanto, sempre use o etag da sua resposta de get-rule-set mais recente.

Especifique principals usando os seguintes formatos:

Tipo

Formato

Usuário

users/<email>

Grupo

groups/<group-name>

Service principal

servicePrincipals/<application-id>

Tipo

Formato

Usuário

users/<email>

Grupo

groups/<group-name>

Service principal

servicePrincipals/<application-id>

Usar um orçamento com suas permissões concedidas​

Administradores de account, administradores de workspace e usuários com a função de Budget Manager ou Budget Viewer trabalham com orçamentos por meio da Budget API. Sua função determina quais operações você pode realizar:

Sua função

Listar e obter

Atualizar e excluir

Gerenciar permissões

Gerente

✔

✔

✔

Visualizador

✔

✘

✘

Sua função

Listar e obter

Atualizar e excluir

Gerenciar permissões

Gerente

✔

✔

✔

Visualizador

✔

✘

✘

Para listar os orçamentos que você pode acessar, execução:

Bash
databricks account budgets list --profile <PROFILE_NAME>

Para obter um orçamento específico, execução:

Bash
databricks account budgets get <BUDGET_ID> --profile <PROFILE_NAME>

Substitua <PROFILE_NAME> pelo perfil da account que você salvou quando você autenticou na sua account.

Consulte o grupo de comandos account budgets.

Recursos adicionais​