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

Observação

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

Observação

A configuração do certificado do Serviço de Aplicativo do Azure por meio do Portal do Azure não dá suporte ao modelo de permissão do RBAC do Key Vault. Você pode usar o Azure PowerShell, a CLI do Azure, implantações de modelo do ARM com a atribuição de função de Usuário de certificado do Key Vault para a identidade global do Serviço de Aplicativo, por exemplo, o Serviço de Aplicativo do Microsoft Azure na nuvem pública.

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

O RBAC do Azure permite que os usuários gerenciem permissões de chave, segredos e certificados. Com ele, você gerencia todas as permissões de todos os Key Vaults em um só lugar.

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 o Key Vault também permite que os usuários tenham permissões separadas em chaves, segredos e certificados individuais

Para saber mais, consulte RBAC (controle de acesso baseado em função) do Azure.

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

Recomenda-se usar um cofre por aplicativo por ambiente (desenvolvimento, pré-produção e produção) com funções atribuídas no escopo do Key Vault.

A atribuição de funções em chaves, segredos e certificados individuais deve ser evitada. Exceções às diretrizes gerais:

  • Cenários em que segredos individuais devem ser compartilhados entre vários aplicativos, por exemplo, um aplicativo precisar acessar dados do outro aplicativo

Para saber mais sobre as diretrizes de gerenciamento do Azure Key Vault, consulte:

Funções internas do Azure para operações do plano de dados do Key Vault

Observação

A função Key Vault Contributor destina-se apenas às operações do plano de gerenciamento para gerenciar cofres de chaves. Ela não permite acessar chaves, segredos e certificados.

Função interna Descrição ID
Administrador do Key Vault Executa todas as operações do plano de dados em um cofre de chaves e em todos os objetos nele, incluindo certificados, chaves e segredos. Não pode gerenciar os recursos do Key Vault nem gerenciar atribuições de função. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 00482a5a-887f-4fb3-b363-3b7fe8e74483
Leitor do Key Vault Lê metadados de Key Vaults de seus certificados, chaves e segredos. Não é possível ler valores confidenciais, como conteúdo secreto ou material de chave. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 21090545-7ca7-4776-b22c-e363652d74d2
Responsável pelos certificados do Key Vault Execute qualquer ação nos certificados de um Key Vault, exceto gerenciar permissões. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. a4417e6f-fecd-4de8-b567-7b0420556985
Usuário de certificado do Key Vault Leia todo o conteúdo do certificado, incluindo o segredo e a parte da chave. Trabalha apenas para Key Vaults 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 Executa qualquer ação nas chaves de um Key Vault, exceto gerenciar permissões. Trabalha apenas para Key Vaults 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 serviço de criptografia do Key Vault Lê metadados de chaves e executa operações de quebra de linha/cancelamento de quebra de linha. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. e147488a-f6f5-4113-8e2d-b22465e65bf6
Usuário de criptografia do Key Vault Executa operações criptográficas com chaves. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 12338af0-0e69-4776-bea7-57ae8d297424
Usuário da versão do Serviço Key Vault Crypto Chaves de versão para Computação Confidencial do Azure e ambientes equivalentes. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'.
Responsável pelos segredos do Key Vault Executa qualquer ação nos segredos de um Key Vault, exceto gerenciar permissões. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. b86a8fe4-44ce-4948-aee5-eccb2c155cd7
Usuário de segredos do Key Vault Leia conteúdos secretos, incluindo parte secreta de um certificado com chave privada. Trabalha apenas para Key Vaults que usam o modelo de permissão 'Controle de acesso baseado em função do Azure'. 4633458b-17de-408a-b874-0445c86b69e6

Para saber mais sobre funções internas do Azure, consulte Funções internas do Azure.

Gerenciamento das atribuições de função do plano de dados do Azure Key Vault interno

Função interna Descrição ID
Administrador de Acesso a Dados do Key Vault Gerencie o acesso ao Azure Key Vault ao adicionar ou remover atribuições de função para o Administrador do Key Vault, o Diretor de Certificados do Key Vault, o Usuário de Criptografia do Serviço Criptográfico do Key Vault, o Usuário de Criptografia do Key Vault, o Leitor do Key Vault, o Key Vault Secrets Officer ou as funções de usuário de segredos do Key Vault. Inclui uma condição ABAC para restringir atribuições de função. 8b54135c-b56d-4d72-a534-26097cfdc8d8

Usando as permissões de segredo, chave e certificado do RBAC do Azure com o Key Vault

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

Pré-requisitos

Você precisa ter uma assinatura do Azure. Caso não tenha, crie uma conta gratuita antes de começar.

Para adicionar atribuições de função, as permissões Microsoft.Authorization/roleAssignments/write e Microsoft.Authorization/roleAssignments/delete são necessárias, como Administrador de Acesso a Dados do Key Vault, Administrador de Acesso do Usuário ou Proprietário.

Habilitar permissões do RBAC do Azure no Key Vault

Observação

A alteração do modelo de permissão requer a permissão 'Microsoft.Authorization/roleAssignments/write', que faz parte das funções de Proprietário e de Administrador de acesso de usuário. Não há suporte para funções de administrador de assinatura clássica como "Administrador de serviços" e "Coadministrador".

  1. Habilite as permissões do RBAC do Azure no novo Key Vault:

    Habilitar permissões do RBAC do Azure - Novo Key Vault

  2. Habilite as permissões do RBAC do Azure no Key Vault existente:

    Habilitar permissões do RBAC do Azure - Cofre existente

Importante

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

Atribuir função

Observação

Recomenda-se usar o ID exclusivo da função em vez do nome da função nos scripts. Assim, se uma função for renomeada, seus scripts continuarão a funcionar. Neste documento, o nome da função é usado apenas 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 conhecer todos os detalhes, confira Atribuir funções do Azure usando a CLI do Azure.

Atribuição de função no 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 conhecer todos os detalhes, confira Atribuir funções do Azure usando a CLI do Azure.

A atribuição de função acima fornece a capacidade de listar no Key Vault os objetos dele.

Atribuição de função no 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 conhecer todos os detalhes, confira Atribuir funções do Azure usando a CLI do Azure.

Atribuição de função no escopo do segredo

Observação

O segredo do cofre de chaves, o certificado, as atribuições de função de escopo de chave só devem ser usadas para cenários limitados descritos aqui para atender às 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 conhecer todos os detalhes, confira Atribuir funções do Azure usando a CLI do Azure.

Testar e verificar

Observação

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

  1. Valide a adição de um novo segredo sem a função de "Representante de segredos do Key Vault" no nível do Key Vault.

    1. Acesse a guia Controle de acesso (IAM) do Key Vault e remova a atribuição de função de "Representante de segredos do Key Vault" para esse recurso.

      Remover atribuição – Key Vault

    2. Acesse o segredo criado anteriormente. Você verá todas as propriedades dele.

      Exibição de segredo com acesso

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

      Criar um novo segredo

  2. Valide a edição do segredo sem a função "Representante de segredos do Key Vault" no nível do segredo.

    1. Acesse a guia Controle de acesso (IAM) do segredo criado anteriormente e remova a atribuição da função de "Representante de segredos do Key Vault" para esse recurso.

    2. Acesse o segredo criado anteriormente. Você verá todas as propriedades dele.

      Exibição de segredo sem acesso

  3. Valide os segredos lidos sem a função de leitor no nível do Key Vault.

    1. Acesse a guia Controle de acesso (IAM) do grupo de recursos do Key Vault e remova a atribuição de função "Leitor do Key Vault".

    2. Ao acessar a guia Segredos do Key Vault, esse erro deve ser exibido:

      Guia Segredo - Erro

Criando funções personalizadas

Comando az role definition create

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 saber mais sobre como criar funções personalizadas, consulte:

Funções personalizadas do Azure

Perguntas frequentes

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

Não. O modelo de permissão RBAC permite atribuir acesso a objetos individuais no Key Vault ao usuário ou aplicativo, mas todas as operações administrativas, como controle de acesso à rede, monitoramento e gerenciamento de objetos, exigem permissões de nível de cofre que exporão informações seguras aos operadores entre equipes de aplicativos.

Saiba mais