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.

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:

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

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

✔

✘

✘

Recursos adicionais​