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 |
| 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 |
| 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. |
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.
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.
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) | — |
The list API returns a comprehensive set: every budget you can see across the account, regardless of workspace scope.
Gerenciar permissões de orçamento usando a CLI do Databricks
A ACL de um orçamento é armazenada como um conjunto de regras: uma ACL nomeada vinculada ao orçamento. Você lê e modifica as permissões de um orçamento com o grupo de comando account access-control na CLI do Databricks, que tem escopo de account. Para obter informação sobre como instalar e se autenticar na CLI do Databricks, consulte CLI do Databricks.
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:
databricks account access-control get-rule-set \
"accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default" ""
Substituir:
<ACCOUNT_ID>com o seu ID de account.<BUDGET_ID>com o ID do orçamento.
Resposta de exemplo:
{
"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:
{
"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:
databricks account access-control update-rule-set --json @rule-set.json
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 |
|
Grupo |
|
Service principal |
|
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 | ✔ | ✘ | ✘ |