Ações e atributos para as condições ABAC do Azure Key Vault (pré-visualização)

Note

O Azure ABAC for Key Vault está em pré-visualização. Alguns aspetos podem mudar antes da disponibilidade geral. Para termos de pré-visualização, consulte os termos suplementares de utilização.

Este artigo descreve as ações, atributos e operadores suportados que pode usar em condições de atribuição de papéis no Azure para o Azure Key Vault. Para uma visão geral de como funcionam as condições de atribuição de papéis, consulte O que é o controlo de acesso baseado em atributos no Azure (Azure ABAC). Para a lista de ações de dados do Key Vault afetadas por uma permissão específica, consulte o guia de operações do Azure RBAC for Key Vault data plane.

Overview

O Azure ABAC for Key Vault baseia-se no Azure RBAC adicionando condições às atribuições de papéis. O Azure avalia cada condição em tempo de execução em função dos atributos do recurso acedido ou do pedido recebido, e permite ou recusa o pedido com base nos operadores de comparação.

Os benefícios de utilizar condições de atribuição de funções para o Key Vault são:

  • Acesso mais detalhado a segredos. Restringa um principal a segredos cujos nomes correspondam a um padrão específico (por exemplo, app-* ou team-prod-*), ou a cofres de chave específicos pelo nome do cofre.
  • Menos atribuições de funções para gerir. Use uma única atribuição de funções restringida por condição para um grupo de segurança em vez de muitas atribuições individuais que modelam as mesmas permissões. O ABAC ajuda-te a escalar a gestão de funções – não concede permissões que uma atribuição de função já não conceda.
  • Estende o Azure RBAC existente. ABAC sobrepõe-se às tuas funções já existentes. Não precisa de substituir o RBAC para o usar.

Nesta pré-visualização, o ABAC para Key Vault aplica-se apenas a ações de dados secretos e suporta dois atributos: o nome do cofre e o nome secreto. Ações de dados chave, ações de dados de certificado, atributos baseados em etiquetas, atributos de token e condições ABAC incorporadas do Key Vault em qualquer função não estão incluídas.

Para usar as condições ABAC, o modelo de permissões do cofre de chaves deve estar definido para Azure RBAC. Para contextualizar, consulte Azure RBAC vs. políticas de acesso e Prepare for Key Vault API versão 2026-02-01 e posteriores.

Formato da condição

As condições utilizam o seguinte formato geral:

@Resource[<ResourceType>:<AttributeName>] <Operator> '<Value>'
Componente Description
@Resource Refere-se a um atributo do recurso acedido. Use @Request quando o atributo descreve o pedido recebido (por exemplo, o nome de um segredo que ainda não existe).
ResourceType O tipo de recurso Azure Resource Manager. Para Key Vault nesta pré-visualização, ou Microsoft.KeyVault/vaults .Microsoft.KeyVault/vaults/secrets
AttributeName O atributo específico a avaliar. Nesta pré-visualização, name é o único atributo suportado.
Operator O operador de comparação. Ver Operadores Suportados.
Value O valor literal para comparar.

A versão da condição deve ser definida para 2.0. Para a gramática completa, veja Azure Role assignment condition format and syntax.

Operadores suportados

As condições ABAC do Azure Key Vault suportam todos os operadores de comparação de strings definidos no formato de condição Azure ABAC. Para a lista completa de operadores e o seu comportamento, veja Operadores de comparação de cordas.

Note

Os operadores de comparação de strings do Azure ABAC incluem variantes sensíveis a maiúsculas minúsculas, mas os nomes dos vaults e dos objetos do Key Vault são insensíveis a maiúsculas minúsculas e normalizados para minúsculas. Como resultado, a correspondência sensível a maiúsculas minúsculas não se aplica às condições ABAC do Key Vault. Usa valores minúsculos nas tuas condições – um valor com letras maiúsculas não corresponde a nenhum cofre ou nome secreto.

Azure Key Vault actions

Pode aplicar condições ABAC às seguintes ações de dados secretos do Key Vault. Cada subsecção descreve a ação, a DataAction subjacente, a fonte do atributo que avalia (Recurso ou Pedido) e uma condição de exemplo.

Obtenha segredo

Property Value
Nome de exibição Obtenha segredo
Description Obtém o valor do segredo.
DataAction Microsoft.KeyVault/vaults/secrets/getSecret/action
Atributos de recursos Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'

Leia metadados secretos

Property Value
Nome de exibição Leia metadados secretos
Description Lista ou visualiza as propriedades de um segredo, mas não o seu valor.
DataAction Microsoft.KeyVault/vaults/secrets/readMetadata/action
Atributos de recursos Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/readMetadata/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'api-'

Warning

Cobre readMetadata/action tanto a recuperação das propriedades de um único segredo (que tem um nome secreto) como a lista de segredos num cofre (uma chamada de coleção sem nome per-secreto). O ABAC avalia uma condição por ação, não linha a linha com resultados da lista, por isso uma condição de nome secreto em readMetadata/action falha a chamada da lista com um erro 403 – o name atributo não está presente no pedido de recolha e não pode corresponder. Este comportamento surge na lâmina Secrets do portal como uma lista em branco.

Se quiser que um principal veja todos os nomes secretos da lista mas só abra os valores que correspondem a um padrão, não faça gate readMetadata/action. Em vez disso, conceda readMetadata/action incondicionalmente e aplique a condição do nome secreto a getSecret/action. Veja o exemplo de restringir o acesso de leitura a segredos com um prefixo de nome .

Definir segredo

Property Value
Nome de exibição Definir segredo
Description Define o valor de um segredo. Se o segredo não existir, a primeira versão é criada. Caso contrário, uma nova versão será criada com o valor especificado.
DataAction Microsoft.KeyVault/vaults/secrets/setSecret/action
Atributos de solicitação Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Atualizar segredo

Property Value
Nome de exibição Atualizar segredo
Description Atualiza os atributos associados ao segredo dado.
DataAction Microsoft.KeyVault/vaults/secrets/update/action
Atributos de recursos Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/update/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Excluir segredo

Property Value
Nome de exibição Excluir segredo
Description Exclui um segredo. Todas as versões são excluídas.
DataAction Microsoft.KeyVault/vaults/secrets/delete
Atributos de recursos Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/delete'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'temp-'

Segredo de backup

Property Value
Nome de exibição Segredo de backup
Description Cria o arquivo de backup de um segredo. O ficheiro pode ser usado para restaurar o segredo num cofre de chaves da mesma subscrição. Podem aplicar-se restrições.
DataAction Microsoft.KeyVault/vaults/secrets/backup/action
Atributos de recursos Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/backup/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'critical-'

Restaurar segredo

Property Value
Nome de exibição Restaurar segredo
Description Restaura um segredo e todas as suas versões a partir de um ficheiro de backup gerado pelo Key Vault.
DataAction Microsoft.KeyVault/vaults/secrets/restore/action
Atributos de solicitação Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/restore/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Recuperar segredo

Property Value
Nome de exibição Recuperar segredo
Description Recupera um segredo apagado. A operação realiza a reversão da operação de Apagar e é aplicável em vaults habilitados para soft delete.
DataAction Microsoft.KeyVault/vaults/secrets/recover/action
Atributos de recursos Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/recover/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Segredo da purga

Property Value
Nome de exibição Segredo da purga
Description Purga um segredo apagado, tornando-o irrecuperável.
DataAction Microsoft.KeyVault/vaults/secrets/purge/action
Atributos de recursos Nome secreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/purge/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'old-'

Fontes de atributos

Os atributos descrevem propriedades avaliadas no momento do pedido. Atributos de recurso descrevem o recurso a ser acedido. Os atributos do pedido descrevem o pedido recebido quando o recurso pode ainda não existir (por exemplo, durante setSecret ou restore).

Nome do Vault

Use este atributo para obter acesso a cofres-chave cujos nomes correspondam a um determinado padrão. Quando aplica uma condição no âmbito de subscrição ou grupo de recursos, o Azure avalia o nome do cofre para cada cofre que o principal tenta aceder.

Property Value
Nome de exibição Nome do Vault
Description O nome do cofre da chave está a ser acedido.
Attribute Microsoft.KeyVault/vaults:name
Origem do atributo Resource
Tipo de atributo Cordão
Ações aplicáveis Todas as ações de dados secretos do Key Vault (atributo global)

Condições de exemplo:

@Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'prod-'
@Resource[Microsoft.KeyVault/vaults:name] StringEquals 'sample-vault'
@Resource[Microsoft.KeyVault/vaults:name] StringLike 'team-*-prod'

Nome secreto (Recurso)

Use este atributo quando o segredo já existir na altura da avaliação.

Property Value
Nome de exibição Nome secreto
Description O nome do segredo estava a ser acedido.
Attribute Microsoft.KeyVault/vaults/secrets:name
Origem do atributo Resource
Tipo de atributo Cordão
Ações aplicáveis getSecret/action, readMetadata/action, update/action, delete, backup/action, recover/action, purge/action

Condições de exemplo:

@Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'
@Resource[Microsoft.KeyVault/vaults/secrets:name] StringLike 'api-key-*'

Nome secreto (Pedido)

Use este atributo quando o segredo ainda não exista na altura da avaliação, como durante a criação ou restauração.

Property Value
Nome de exibição Nome secreto (Pedido)
Description O nome de um ser secreto solicitado.
Attribute Microsoft.KeyVault/vaults/secrets:name
Origem do atributo Pedido
Tipo de atributo Cordão
Ações aplicáveis setSecret/action, restore/action

Condições de exemplo:

@Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'
@Request[Microsoft.KeyVault/vaults/secrets:name] StringLike 'config-*'

Funções que apoiam as condições ABAC

Podes aplicar condições ABAC a qualquer função que inclua o Key Vault secretdataActions. Funções que contêm apenas ações no plano de controlo (como Proprietário ou Administrador de Políticas) não suportam condições ABAC porque o Azure avalia as condições exclusivamente com base nas operações no plano de dados. Nesta pré-visualização, nenhum papel incorporado inclui uma condição ABAC pré-atribuída no Key Vault – você cria a condição ao criar a atribuição do papel.

Os seguintes papéis incorporados incluem ações secretas de dados e suporte a condições ABAC nesta pré-visualização. Para as definições completas de papéis e IDs, veja Azure built-in roles para operações no Key Vault data plane.

Função Description ID Suporte de condição
Administrador do Key Vault Realizar todas as operações do plano de dados num cofre de chaves e em todos os objetos nele. 00482a5a-887f-4fb3-b363-3b7fe8e74483 Atributos de Recursos e Pedidos em operações secretas
Agente de Segredos do Key Vault Realiza qualquer ação sobre segredos. b86a8fe4-44ce-4948-aee5-eccb2c155cd7 Atributos de recursos em operações de leitura e ciclo de vida; Atributos do pedido em setSecret e restore operações
Utilizador do Key Vault Secrets Leia conteúdos secretos. 4633458b-17de-408a-b874-0445c86b69e6 Atributos de recursos em operações de leitura secreta
Leitor do Key Vault Leia metadados dos cofres e dos seus objetos. 21090545-7ca7-4776-b22c-e363652d74d2 Atributos de recurso ativados readMetadata/action para um único segredo. Uma condição de nome secreto bloqueia aqui chamadas de lista; ver o aviso em Ler metadados secretos.
Usuário do certificado do Key Vault Leia o conteúdo do certificado. db79e9a7-68ee-4b58-9aeb-b90e7c24fcba Atributos de recurso em getSecret e readMetadata (os certificados são recuperados através do endpoint secreto - o nome do segredo é igual ao nome do certificado)
Funções personalizadas Qualquer definição de função personalizada que inclua segredo dataActions para o Key Vault. - Depende de quais segredos dataActions estão incluídos

Note

Apenas os papéis atribuídos através do Azure RBAC (não políticas legadas de acesso ao vault) suportam condições ABAC. O cofre de chaves deve ter o seu modelo de permissões definido para controlo de acesso baseado em funções no Azure. A partir da versão API 2026-02-01, o Azure RBAC é o padrão para os cofres recém-criados. Para mais informações, consulte Prepare para Key Vault versão da API 2026-02-01 e posteriores.

Exemplos de condição

Os exemplos seguintes mostram padrões ABAC comuns para segredos do Key Vault. Para mais informações sobre a sintaxe das condições, veja Azure role assignment condition format and syntax.

Exemplo: Restringir o acesso de leitura a segredos com prefixo de nome

Permitir que um principal leia apenas segredos cujos nomes começam com test-app:

  • Função: Utilizador de Segredos do Key Vault
  • Âmbito: Recurso do cofre-chave
  • Condição:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'})
  OR
  (
    @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'
  )
)

Comportamento:

  • Permitido: Leitura test-app-secret1.
  • Negado (ForbiddenByRbac): Leitura test-db-password.

Exemplo: Restringir o acesso a segredos em cofres específicos pelo prefixo do nome do cofre

Permitir que um principal leia segredos apenas em cofres cujos nomes comecem por kv-prod:

  • Função: Utilizador de Segredos do Key Vault
  • Âmbito: Subscrição
  • Condição:
@Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'kv-prod'

Comportamento:

  • Permitido: Acesso a kv-prod-1.
  • Negado: Acesso a test-kv.

Exemplo: Restringir segredos recém-criados a um prefixo de nome

Permitir que um principal crie segredos apenas quando o nome do segredo começar por app-. Como o segredo ainda não existe na altura da avaliação, use o atributo Request:

  • Função: Oficial de Segredos Key Vault
  • Âmbito: Recurso do cofre-chave
  • Condição:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'})
  OR
  (
    @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'
  )
)

Exemplo: Combinar condições de cofre e nome secreto

Restringa um principal a ler apenas segredos que começam por api- em cofres cujos nomes começam por kv-prod:

  • Função: Utilizador de Segredos do Key Vault
  • Âmbito: Subscrição
  • Condição:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'})
  OR
  (
    @Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'kv-prod'
    AND
    @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'api-'
  )
)