Fornecer acesso a chaves, certificados e segredos do Cofre da Chave com um controle de acesso baseado em função do Azure

Nota

O provedor de recursos do Key Vault suporta dois tipos de recursos: vaults e HSMs gerenciados. O controle de acesso descrito neste artigo só se aplica a cofres. Para saber mais sobre o controle de acesso para HSM gerenciado, consulte Controle de acesso HSM gerenciado.

Nota

A configuração de certificado do Serviço de Aplicativo do Azure por meio do Portal do Azure não oferece suporte ao modelo de permissão RBAC do Cofre da Chave. Você pode usar implantações de modelo do Azure PowerShell, CLI do Azure e ARM com atribuição de função de usuário de certificado do Cofre de Chaves para identidade global do Serviço de Aplicativo, por exemplo, Serviço de Aplicativo do Microsoft Azure na nuvem pública.

O controle de acesso baseado em função do Azure (Azure RBAC) é um sistema de autorização criado no Azure Resource Manager que fornece gerenciamento de acesso centralizado de recursos do Azure.

O RBAC do Azure permite que os usuários gerenciem chaves, segredos e permissões de certificados e fornece um local para gerenciar todas as permissões em todos os cofres de chaves.

O modelo RBAC do Azure permite que os usuários definam permissões em diferentes níveis de escopo: grupo de gerenciamento, assinatura, grupo de recursos ou recursos individuais. O RBAC do Azure para cofre de chaves também permite que os usuários tenham permissões separadas em chaves, segredos e certificados individuais.

Para obter mais informações, consulte Controle de acesso baseado em função do Azure (Azure RBAC).

Práticas recomendadas para atribuições de função de chaves, segredos e certificados individuais

Nossa recomendação é usar um cofre por aplicativo e por ambiente (Desenvolvimento, Pré-produção e Produção) com funções atribuídas no escopo do cofre principal.

A atribuição de funções em chaves, segredos e certificados individuais deve ser evitada. Uma exceção é um cenário em que segredos individuais devem ser compartilhados entre vários aplicativos; por exemplo, quando um aplicativo precisa acessar dados de outro aplicativo.

Mais informações sobre as diretrizes de gerenciamento do Cofre de Chaves do Azure, consulte:

Funções internas do Azure para operações do plano de dados do Cofre da Chave

Nota

A Key Vault Contributor função é para operações de plano de gerenciamento apenas para gerenciar cofres de chaves. Não permite o acesso a chaves, segredos e certificados.

Função incorporada Description ID
Administrador do Cofre de Chaves Execute todas as operações do plano de dados em um cofre de chaves e todos os objetos nele, incluindo certificados, chaves e segredos. Não é possível gerenciar recursos do cofre de chaves ou gerenciar atribuições de função. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 00482a5a-887f-4fb3-b363-3b7fe8e74483
Leitor Key Vault Leia metadados de cofres de chaves e seus certificados, chaves e segredos. Não é possível ler valores confidenciais, como conteúdo secreto ou material de chave. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 21090545-7CA7-4776-B22C-E363652D74D2
Operador de limpeza do cofre de chaves Permite a exclusão permanente de cofres excluídos por software. a68e7c17-0ab2-4c09-9a58-125dae29748c
Oficial de Certificados do Cofre de Chaves Execute qualquer ação nos certificados de um cofre de chaves, excluindo a leitura das partes secretas e de chaves e o gerenciamento de permissões. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. A4417E6F-FECD-4DE8-B567-7B0420556985
Usuário do certificado do Key Vault Leia todo o conteúdo do certificado, incluindo a parte secreta e a parte da chave. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. db79e9a7-68ee-4b58-9aeb-b90e7c24fcba
Responsável pela criptografia do Key Vault Execute qualquer ação nas chaves de um cofre de chaves, exceto gerenciar permissões. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 14B46E9E-C2B7-41B4-B07B-48A6EBF60603
Usuário de criptografia do Key Vault Crypto Service Leia metadados de chaves e execute operações de encapsulamento/desempacotamento. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. E147488a-f6f5-4113-8e2d-b22465e65bf6
Key Vault Crypto Usuário Execute operações criptográficas usando chaves. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 12338AF0-0E69-4776-BEA7-57AE8D297424
Usuário do Key Vault Crypto Service Release Chaves de lançamento para a Computação Confidencial do Azure e ambientes equivalentes. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'.
Oficial de Segredos do Cofre de Chaves Execute qualquer ação nos segredos de um cofre de chaves, exceto gerenciar permissões. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. B86A8FE4-44CE-4948-AEE5-ECCB2C155CD7
Usuário do Key Vault Secrets Leia conteúdo secreto, incluindo parte secreta de um certificado com chave privada. Só funciona para cofres de chaves que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 4633458b-17de-408a-b874-0445c86b69e6

Para obter mais informações sobre definições de funções internas do Azure, consulte Funções internas do Azure.

Gerenciando atribuições de função do plano de dados do Key Vault integrado

Função incorporada Description ID
Administrador de Acesso a Dados do Key Vault Gerencie o acesso ao Cofre de Chaves do Azure adicionando ou removendo atribuições de função para as funções de Administrador do Cofre de Chaves, Oficial de Certificados do Cofre de Chaves, Oficial de Criptografia do Cofre de Chaves, Usuário de Criptografia do Serviço de Criptografia do Cofre de Chaves, Usuário de Criptografia do Cofre de Chaves, Leitor de Cofre de Chaves, Oficial de Segredos do Cofre de Chaves ou Usuário de Segredos do Cofre de Chaves. Inclui uma condição ABAC para restringir atribuições de função. 8B54135C-B56D-4D72-A534-26097CFDC8D8

Usando permissões de segredo, chave e certificado do RBAC do Azure com o Cofre da Chave

O novo modelo de permissão RBAC do Azure para o cofre de chaves fornece alternativa ao modelo de permissões de política de acesso ao cofre.

Pré-requisitos

Precisa de uma subscrição do Azure. Se não o fizer, pode criar uma conta gratuita antes de começar.

Para gerenciar atribuições de função, você deve ter Microsoft.Authorization/roleAssignments/write e Microsoft.Authorization/roleAssignments/delete permissões, como Administrador de Acesso a Dados do Cofre de Chaves (com permissões restritas para atribuir/remover apenas funções específicas do Cofre de Chaves), Administrador de Acesso de Usuário ou Proprietário.

Habilitar permissões do RBAC do Azure no Cofre da Chave

Nota

A alteração do modelo de permissão requer a permissão irrestrita 'Microsoft.Authorization/roleAssignments/write', que faz parte das funções de Proprietário e Administrador de Acesso de Usuário . Funções clássicas de administrador de assinatura, como 'Administrador de Serviço' e 'Coadministrador', ou restritas 'Administrador de Acesso a Dados do Cofre de Chaves' não podem ser usadas para alterar o modelo de permissão.

  1. Habilite as permissões do RBAC do Azure no novo cofre de chaves:

    Habilitar permissões do RBAC do Azure - novo cofre

  2. Habilite as permissões do RBAC do Azure no cofre de chaves existente:

    Habilitar permissões do Azure RBAC - cofre existente

Importante

A definição do modelo de permissão do RBAC do Azure invalida todas as permissões de políticas de acesso. Pode causar interrupções quando funções equivalentes do Azure não são atribuídas.

Atribuir função

Nota

É recomendável usar o ID de função exclusivo em vez do nome da função em scripts. Portanto, se uma função for renomeada, seus scripts continuarão a funcionar. Neste documento, o nome da função é usado para facilitar a leitura.

Para criar uma atribuição de função usando a CLI do Azure, use o comando az role assignment :

az role assignment create --role {role-name-or-id} --assignee {assignee-upn}> --scope {scope}

Para obter detalhes completos, consulte Atribuir funções do Azure usando a CLI do Azure.

Atribuição de função de escopo do grupo de recursos

az role assignment create --role "Key Vault Reader" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}

Para obter detalhes completos, consulte Atribuir funções do Azure usando a CLI do Azure.

A atribuição de função acima fornece a capacidade de listar objetos do cofre de chaves no cofre de chaves.

Atribuição de função de escopo do Key Vault

az role assignment create --role "Key Vault Secrets Officer" --assignee {assignee-upn} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}

Para obter detalhes completos, consulte Atribuir funções do Azure usando a CLI do Azure.

Atribuição de função de escopo secreto

Nota

As atribuições de função de segredo do cofre de chaves, certificados e escopo chave só devem ser usadas para cenários limitados descritos aqui para estar em conformidade com as práticas recomendadas de segurança.

az role assignment create --role "Key Vault Secrets Officer" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}/secrets/RBACSecret

Para obter detalhes completos, consulte Atribuir funções do Azure usando a CLI do Azure.

Testar e verificar

Nota

Os navegadores usam cache e a atualização da página é necessária após a remoção das atribuições de função. Aguarde alguns minutos para que as atribuições de função sejam atualizadas

  1. Valide a adição de novo segredo sem a função "Key Vault Secrets Officer" no nível do cofre de chaves.

    1. Vá para a guia Controle de acesso do cofre de chaves (IAM) e remova a atribuição de função "Key Vault Secrets Officer" para este recurso.

      Remover atribuição - cofre de chaves

    2. Navegue até o segredo criado anteriormente. Você pode ver todas as propriedades secretas.

      Vista secreta com acesso

    3. Criar novo segredo ( Segredos > +Gerar/Importar) deve mostrar este erro:

      Criar novo segredo

  2. Valide a edição secreta sem a função "Key Vault Secret Officer" no nível secreto.

    1. Vá para a guia Controle de Acesso (IAM) secreto criado anteriormente e remova a atribuição de função "Key Vault Secrets Officer" para este recurso.

    2. Navegue até o segredo criado anteriormente. Você pode ver propriedades secretas.

      Vista secreta sem acesso

  3. Valide segredos lidos sem a função de leitor no nível do cofre de chaves.

    1. Vá para a guia Controle de acesso (IAM) do grupo de recursos do cofre de chaves e remova a atribuição de função "Key Vault Reader".

    2. Navegar até a guia Segredos do cofre de chaves deve mostrar este erro:

      Guia secreto - erro

Criação de funções personalizadas

az definição de função create comando

az role definition create --role-definition '{ \
   "Name": "Backup Keys Operator", \
   "Description": "Perform key backup/restore operations", \
    "Actions": [ 
    ], \
    "DataActions": [ \
        "Microsoft.KeyVault/vaults/keys/read ", \
        "Microsoft.KeyVault/vaults/keys/backup/action", \
         "Microsoft.KeyVault/vaults/keys/restore/action" \
    ], \
    "NotDataActions": [ 
   ], \
    "AssignableScopes": ["/subscriptions/{subscriptionId}"] \
}'

Para obter mais informações sobre como criar funções personalizadas, consulte:

Funções personalizadas do Azure

Perguntas Mais Frequentes

Posso usar atribuições de escopo de objeto do modelo de permissão RBAC (controle de acesso baseado em função) do Key Vault para fornecer isolamento para equipes de aplicativos no Key Vault?

N.º O modelo de permissão RBAC permite que você atribua acesso a objetos individuais no Cofre da Chave ao usuário ou aplicativo, mas quaisquer operações administrativas, como controle de acesso à rede, monitoramento e gerenciamento de objetos, exigem permissões no nível do cofre, que exporão informações seguras aos operadores em todas as equipes de aplicativos.

Mais informações