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 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 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 cofre de chaves.
A atribuição de funções em chaves, segredos e certificados individuais deve ser evitada. Uma exceção é um cenário em que os segredos individuais devem ser compartilhados entre vários aplicativos; por exemplo, em que um aplicativo precisa acessar dados de 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 |
Operador de limpeza do Key Vault | Permite a exclusão permanente de cofres com exclusão reversível: | a68e7c17-0ab2-4c09-9a58-125dae29748c |
Responsável pelos certificados do Key Vault | Execute qualquer ação nos certificados de um cofre de chaves, excluindo a leitura do segredo e das partes de chave e o gerenciamento de 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 gerenciar as atribuições de função, você precisa ter as permissões Microsoft.Authorization/roleAssignments/write
e Microsoft.Authorization/roleAssignments/delete
, como Administrador de Acesso a Dados do Cofre de Chaves (com permissões restritas para atribuir/remover apenas funções específicas do cofre 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 exige a permissão irrestrita ''Microsoft.Authorization/roleAssignments/write'', que faz parte das funções Proprietário e Administrador de Acesso do Usuário. As funções de administrador de assinatura clássicas, como ‘Administrador de Serviços’ e ‘Coadministrador’ ou ‘Administrador de Acesso a Dados do Cofre de Chaves’ restrito, não podem ser usadas para alterar o modelo de permissão.
Habilite as permissões do RBAC do Azure no novo Key Vault:
Habilite as permissões do RBAC do Azure no Key Vault 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 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
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.
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.
Acesse o segredo criado anteriormente. Você verá todas as propriedades dele.
Criar um novo segredo (Segredos > + Gerar/Importar) deve mostrar esse erro:
Valide a edição do segredo sem a função "Representante de segredos do Key Vault" no nível do segredo.
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.
Acesse o segredo criado anteriormente. Você verá todas as propriedades dele.
Valide os segredos lidos sem a função de leitor no nível do Key Vault.
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".
Ao acessar a guia Segredos do Key Vault, esse erro deve ser exibido:
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.