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.
Habilite as permissões do RBAC do Azure no novo cofre de chaves:
Habilite as permissões do RBAC do Azure no cofre de chaves 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
Valide a adição de novo segredo sem a função "Key Vault Secrets Officer" no nível do cofre de chaves.
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.
Navegue até o segredo criado anteriormente. Você pode ver todas as propriedades secretas.
Criar novo segredo ( Segredos > +Gerar/Importar) deve mostrar este erro:
Valide a edição secreta sem a função "Key Vault Secret Officer" no nível secreto.
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.
Navegue até o segredo criado anteriormente. Você pode ver propriedades secretas.
Valide segredos lidos sem a função de leitor no nível do cofre de chaves.
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".
Navegar até a guia Segredos do cofre de chaves deve mostrar este 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.