Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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-*outeam-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): Leituratest-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-'
)
)
Conteúdo relacionado
- Adicionar condições de atribuição de funções para segredos do Key Vault usando CLI do Azure (pré-visualização)
- Adicionar condições de atribuição de role para Key Vault secrets usando Azure PowerShell (prévisualização)
- O que é o controle de acesso baseado em atributos do Azure (Azure ABAC)?
- Formato e sintaxe das condições de atribuição de funções do Azure
- Fornecer acesso às chaves, certificados e segredos do Key Vault com o Azure RBAC
- Solucionar problemas de condições de atribuição de função do Azure
- Resolver problemas de acesso ao Key Vault
- Prepare-se para a versão 2026-02-02-01 da API Key Vault e posteriores