Ações e atributos para Azure Key Vault condições abac (versão prévia)

Note

Azure ABAC para Key Vault está em versão prévia. Alguns aspectos podem mudar antes da disponibilidade geral. Para consultar os termos de versão prévia, consulte os termos de uso complementares.

Este artigo descreve as ações, atributos e operadores com suporte que você pode usar em condições em Azure atribuições de função para Azure Key Vault. Para obter uma visão geral de como as condições de atribuição de função funcionam, consulte O que é Azure controle de acesso baseado em atributo (Azure ABAC)?. Para obter a lista de ações de dados Key Vault que uma permissão específica afeta, consulte o Azure guia de operações do RBAC para Key Vault plano de dados.

Visão geral

Azure ABAC para Key Vault se baseia em Azure RBAC adicionando condições a atribuições de função. Azure avalia cada condição em runtime em relação aos atributos do recurso que está sendo acessado ou à solicitação de entrada e permite ou nega a solicitação com base em operadores de comparação.

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

  • Acesso mais refinado a segredos. Restrinja uma entidade de segurança a segredos cujos nomes correspondem a um padrão específico (por exemplo, app-* ou team-prod-*), ou a cofres de chaves específicos pelo nome do cofre.
  • Menos atribuições de função a serem gerenciadas. Use uma única atribuição de função fechada 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 você a dimensionar o gerenciamento de funções– ele não concede permissões que uma atribuição de função ainda não concede.
  • Estende o RBAC Azure existente. Camadas ABAC sobre suas atribuições de função existentes. Você não precisa substituir o RBAC para usá-lo.

Nesta versão prévia, o ABAC para Key Vault se aplica apenas a ações de dados secretas e dá suporte a dois atributos: o nome do cofre e o nome do segredo. Ações de dados importantes, ações de dados de certificado, atributos baseados em marca, atributos de token e condições internas Key Vault ABAC em qualquer função não estão incluídas.

Para usar condições ABAC, o modelo de permissão do cofre de chaves deve ser definido como Azure RBAC. Para obter informações em segundo plano, consulte Azure rbac vs. políticas de acesso e preparar para Key Vault API versão 2026-02-01 e posterior.

Formato da condição

As condições usam o seguinte formato geral:

@Resource[<ResourceType>:<AttributeName>] <Operator> '<Value>'
Componente Description
@Resource Refere-se a um atributo do recurso que está sendo acessado. Use @Request quando o atributo descreve a solicitação de entrada (por exemplo, o nome de um segredo que ainda não existe).
ResourceType O tipo de recurso Azure Resource Manager. Para Key Vault nesta versão prévia ou Microsoft.KeyVault/vaultsMicrosoft.KeyVault/vaults/secrets.
AttributeName O atributo específico a ser avaliado. Nesta versão prévia, name é o único atributo com suporte.
Operator O operador de comparação. Consulte operadores com suporte.
Value O valor literal com o qual comparar.

A versão da condição deve ser definida como 2.0. Para obter a gramática completa, consulte Azure formato de condição de atribuição de função e sintaxe.

Operadores suportados

Azure Key Vault condições ABAC dão suporte a todos os operadores de comparação de cadeia de caracteres definidos no formato de condição ABAC Azure. Para obter a lista completa de operadores e seu comportamento, consulte operadores de comparação de cadeia de caracteres.

Note

Azure operadores de comparação de cadeia de caracteres ABAC incluem variantes que diferenciam maiúsculas de minúsculas, mas Key Vault nomes de cofre e nomes de objeto não diferenciam maiúsculas de minúsculas e são normalizados em letras minúsculas. Como resultado, a correspondência que diferencia maiúsculas de minúsculas não se aplica a Key Vault condições abac. Use valores minúsculos em suas condições - um valor que contém caracteres maiúsculos não corresponderá a nenhum cofre ou nome secreto.

ações de Azure Key Vault

Você pode aplicar condições ABAC às seguintes ações de dados secretos Key Vault. Cada subseção descreve a ação, o DataAction subjacente, a fonte de atributo que ele avalia (Recurso ou Solicitação) e uma condição de exemplo.

Obter segredo

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

Ler metadados secretos

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

Aviso

Ela readMetadata/action abrange a recuperação de propriedades de um único segredo (que carrega um nome secreto) e a listagem de segredos em um cofre (uma chamada de coleção sem nome por segredo). O ABAC avalia uma condição por ação, não linha por linha em relação aos resultados da lista, portanto, uma condição de nome secreto falha na readMetadata/action chamada de lista com um erro 403 - o name atributo não está presente na solicitação de coleção e não pode corresponder. Esse comportamento aparece na folha Segredos do portal como uma lista em branco.

Se você quiser que uma entidade de segurança veja cada nome secreto na lista, mas abra apenas os valores que correspondem a um padrão, não abra readMetadata/action. Em vez disso, conceda readMetadata/action incondicionalmente e aplique a condição de nome secreto a getSecret/action. Consulte o exemplo restringir o acesso de leitura a segredos com um exemplo de prefixo de nome .

Definir segredo

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

Atualizar segredo

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

Excluir segredo

Property Valor
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 do segredo
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/delete'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'temp-'

Segredo de backup

Property Valor
Nome de exibição Segredo de backup
Description Cria o arquivo de backup de um segredo. O arquivo pode ser usado para restaurar o segredo em um cofre de chaves da mesma assinatura. Restrições podem ser aplicadas.
DataAction Microsoft.KeyVault/vaults/secrets/backup/action
Atributos de recursos Nome do segredo
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/backup/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'critical-'

Restaurar segredo

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

Recuperar segredo

Property Valor
Nome de exibição Recuperar segredo
Description Recupera um segredo excluído. A operação executa a reversão da operação Delete e é aplicável em cofres habilitados para exclusão reversível.
DataAction Microsoft.KeyVault/vaults/secrets/recover/action
Atributos de recursos Nome do segredo
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/recover/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Limpar segredo

Property Valor
Nome de exibição Limpar segredo
Description Limpa um segredo excluído, tornando-o irrecuperável.
DataAction Microsoft.KeyVault/vaults/secrets/purge/action
Atributos de recursos Nome do segredo
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/purge/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'old-'

Fontes de atributo

Os atributos descrevem as propriedades avaliadas no momento da solicitação. Os atributos de recurso descrevem o recurso que está sendo acessado. Os atributos de solicitação descrevem a solicitação de entrada quando o recurso pode ainda não existir (por exemplo, durante setSecret ou restore).

Nome do cofre

Use esse atributo para definir o escopo do acesso a cofres de chaves cujos nomes correspondem a um determinado padrão. Quando você aplica uma condição no escopo da assinatura ou do grupo de recursos, Azure avalia o nome do cofre para cada cofre que a entidade de segurança tenta acessar.

Property Valor
Nome de exibição Nome do cofre
Description O nome do cofre de chaves que está sendo acessado.
Attribute Microsoft.KeyVault/vaults:name
Origem do atributo Resource
Tipo de atributo String
Ações aplicáveis Todos os Key Vault ações de dados secretos (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 do segredo (Recurso)

Use esse atributo quando o segredo já existir no momento da avaliação.

Property Valor
Nome de exibição Nome do segredo
Description O nome do segredo que está sendo acessado.
Attribute Microsoft.KeyVault/vaults/secrets:name
Origem do atributo Resource
Tipo de atributo String
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 do segredo (Solicitação)

Use esse atributo quando o segredo ainda não existir no momento da avaliação, como durante a criação ou restauração.

Property Valor
Nome de exibição Nome do segredo (Solicitação)
Description O nome de um segredo que está sendo solicitado.
Attribute Microsoft.KeyVault/vaults/secrets:name
Origem do atributo Solicitação
Tipo de atributo String
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 dão suporte a condições abac

Você pode aplicar condições ABAC a qualquer função que inclua Key Vault segredodataActions. As funções que contêm apenas ações do plano de controle (como Proprietário ou Administrador de Política) não dão suporte a condições abac porque Azure avalia as condições exclusivamente em operações de plano de dados. Nesta versão prévia, nenhuma função interna inclui uma condição ABAC de Key Vault pré-atribuída– você cria a condição ao criar a atribuição de função.

As funções internas a seguir incluem ações de dados secretos e dão suporte a condições ABAC nesta versão prévia. Para obter as definições de função e as IDs completas, consulte Azure funções internas para operações de plano de dados Key Vault.

Função Description ID Suporte à condição
Administrador do Key Vault Realize todas as operações do plano de dados em um cofre de chaves e todos os objetos nele contidos. 00482a5a-887f-4fb3-b363-3b7fe8e74483 Atributos de recurso e solicitação em operações secretas
Responsável pelos segredos do Key Vault Execute qualquer ação em segredos. b86a8fe4-44ce-4948-aee5-eccb2c155cd7 Atributos de recurso em operações de leitura e ciclo de vida; Solicitar atributos e setSecretrestore operações
Usuário de segredos do Key Vault Lê o conteúdo do segredo. 4633458b-17de-408a-b874-0445c86b69e6 Atributos de recurso em operações de leitura secreta
Leitor do Key Vault Leia metadados de cofres e seus objetos. 21090545-7ca7-4776-b22c-e363652d74d2 Atributos de recurso ativados readMetadata/action para um único segredo. Uma condição de nome secreto aqui bloqueia chamadas de lista; consulte o aviso em Metadados do segredo de leitura.
Usuário do Certificado do Key Vault Lê o conteúdo do certificado. db79e9a7-68ee-4b58-9aeb-b90e7c24fcba Atributos de recurso ativados getSecret e readMetadata (os certificados são recuperados por meio do ponto de extremidade 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 Key Vault. - Depende de qual segredo dataActions está incluído

Note

Somente as funções atribuídas por meio de Azure RBAC (não as políticas de acesso do cofre herdado) dão suporte a condições ABAC. O cofre de chaves deve ter seu modelo de permissão definido para Azure controle de acesso baseado em função. Começando com a API versão 2026-02-01, Azure RBAC é o padrão para cofres recém-criados. Para obter mais informações, consulte Prepare for Key Vault API versão 2026-02-01 e posterior.

Exemplos de condição

Os exemplos a seguir mostram padrões ABAC comuns para segredos Key Vault. Para obter mais informações sobre a sintaxe de condição, consulte Azure formato e sintaxe da condição de atribuição de função.

Exemplo: restringir o acesso de leitura a segredos com um prefixo de nome

Permitir que uma entidade de segurança leia somente os segredos cujos nomes começam com test-app:

  • Função: Usuário de Segredos do Key Vault
  • Escopo: recurso do cofre de chaves
  • 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 por prefixo de nome do cofre

Permitir que uma entidade de segurança leia segredos somente em cofres cujos nomes começam com kv-prod:

  • Função: Usuário de Segredos do Key Vault
  • Escopo: Assinatura
  • 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 uma entidade de segurança crie segredos somente quando o nome do segredo começar com app-. Como o segredo ainda não existe no momento da avaliação, use o atributo Request:

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

Exemplo: combinar condições de nome de cofre e segredo

Restrinja uma entidade de segurança para ler somente os segredos que começam em api- cofres cujos nomes começam com kv-prod:

  • Função: Usuário de Segredos do Key Vault
  • Escopo: Assinatura
  • 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-'
  )
)