Gestão de funções do HSM Gerido
Nota
O Key Vault suporta dois tipos de recursos: cofres e HSMs gerenciados. Este artigo é sobre HSM gerenciado. Se você quiser saber como gerenciar um cofre, consulte Gerenciar cofre de chaves usando a CLI do Azure.
Para obter uma visão geral do HSM gerenciado, consulte O que é o HSM gerenciado?. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Este artigo mostra como gerenciar funções para um plano de dados HSM gerenciado. Para saber mais sobre o modelo de controle de acesso HSM gerenciado, consulte Controle de acesso HSM gerenciado.
Para permitir que uma entidade de segurança (como um usuário, uma entidade de serviço, um grupo ou uma identidade gerenciada) execute operações gerenciadas do plano de dados HSM, deve ser-lhes atribuída uma função que permita executar essas operações. Por exemplo, se você quiser permitir que um aplicativo execute uma operação de assinatura usando uma chave, deverá ser atribuída uma função que contenha "Microsoft.KeyVault/managedHSM/keys/sign/action" como uma das ações de dados. Uma função pode ser atribuída em um escopo específico. O RBAC local do HSM gerenciado suporta dois escopos, HSM em todo (/
ou /keys
) e por chave (/keys/<keyname>
).
Para obter uma lista de todas as funções internas do HSM gerenciado e as operações permitidas, consulte Funções internas do HSM gerenciado.
Pré-requisitos
Para usar os comandos da CLI do Azure neste artigo, você deve ter os seguintes itens:
- Uma subscrição do Microsoft Azure. Se não tiver uma, pode inscrever-se numa avaliação gratuita.
- A CLI do Azure versão 2.25.0 ou posterior. Executar
az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure. - Um HSM gerenciado em sua assinatura. Consulte Guia de início rápido: provisionar e ativar um HSM gerenciado usando a CLI do Azure para provisionar e ativar um HSM gerenciado.
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção | Exemplo/Ligação |
---|---|
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. | |
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. | |
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou comando.
Iniciar sessão no Azure
Para entrar no Azure usando a CLI, você pode digitar:
az login
Para obter mais informações sobre as opções de logon por meio da CLI, consulte Entrar com a CLI do Azure
Criar uma nova atribuição de função
Atribuir funções para todas as teclas
Use az keyvault role assignment create
o comando para atribuir uma função de Usuário de Criptografia HSM Gerenciado ao usuário identificado pelo nome user2@contoso.com principal do usuário para todas as chaves (escopo /keys
) no ContosoHSM.
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com --scope /keys
Atribuir função a uma chave específica
Use az keyvault role assignment create
o comando para atribuir uma função de Usuário de Criptografia HSM Gerenciado ao usuário identificado pelo nome user2@contoso.com principal do usuário para uma chave específica chamada myrsakey.
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com --scope /keys/myrsakey
Listar atribuições de função existentes
Use az keyvault role assignment list
para listar atribuições de função.
Todas as atribuições de função no escopo / (padrão quando nenhum --scope é especificado) para todos os usuários (padrão quando nenhum --cessionário é especificado)
az keyvault role assignment list --hsm-name ContosoMHSM
Todas as atribuições de função no nível HSM para um usuário user1@contoso.comespecífico.
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user@contoso.com
Nota
Quando o escopo é / (ou /keys), o comando list lista apenas todas as atribuições de função no nível superior e não mostra as atribuições de função no nível de chave individual.
Todas as atribuições de função para um usuário user2@contoso.com específico para uma chave específica myrsakey.
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey
Uma atribuição de função específica para a função Managed HSM Crypto Officer para um usuário user2@contoso.com específico para uma chave específica myrsakey
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey --role "Managed HSM Crypto Officer"
Excluir uma atribuição de função
Use az keyvault role assignment delete
o comando para excluir uma função de Managed HSM Crypto Officer atribuída ao usuário user2@contoso.com para a chave myrsakey2.
az keyvault role assignment delete --hsm-name ContosoMHSM --role "Managed HSM Crypto Officer" --assignee user2@contoso.com --scope /keys/myrsakey2
Listar todas as definições de função disponíveis
Use az keyvault role definition list
o comando para listar todas as definições de função.
az keyvault role definition list --hsm-name ContosoMHSM
Criar uma nova definição de função
O HSM gerenciado tem várias funções internas (predefinidas) que são úteis para os cenários de uso mais comuns. Você pode definir sua própria função com uma lista de ações específicas que a função tem permissão para executar. Em seguida, você pode atribuir essa função aos principais para conceder-lhes a permissão para as ações especificadas.
Use az keyvault role definition create
o comando para uma função chamada Minha Função Personalizada usando uma cadeia de caracteres JSON.
az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
"roleName": "My Custom Role",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action"
],
"notDataActions": []
}'
Use az keyvault role definition create
o comando para uma função de um arquivo chamado my-custom-role-definition.json que contém a cadeia de caracteres JSON para uma definição de função. Ver exemplo acima.
az keyvault role definition create --hsm-name ContosoMHSM --role-definition @my-custom-role-definition.json
Mostrar detalhes de uma definição de função
Use az keyvault role definition show
o comando para ver detalhes de uma definição de função específica usando name (um GUID).
az keyvault role definition show --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Atualizar uma definição de função personalizada
Use az keyvault role definition update
o comando para atualizar uma função chamada Minha Função Personalizada usando uma cadeia de caracteres JSON.
az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
"roleName": "My Custom Role",
"name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action",
"Microsoft.KeyVault/managedHsm/keys/write/action",
"Microsoft.KeyVault/managedHsm/keys/backup/action",
"Microsoft.KeyVault/managedHsm/keys/create"
],
"notDataActions": []
}'
Eliminar definição de função personalizada
Use az keyvault role definition delete
o comando para ver detalhes de uma definição de função específica usando name (um GUID).
az keyvault role definition delete --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Nota
As funções internas não podem ser excluídas. Quando as funções personalizadas são excluídas, todas as atribuições de função que usam essa função personalizada são extintas.
Próximos passos
- Veja uma visão geral do controle de acesso baseado em função do Azure (Azure RBAC).
- Veja um tutorial sobre o gerenciamento de funções do HSM gerenciado
- Saiba mais sobre o modelo de controle de acesso HSM gerenciado
- Veja todas as funções internas para RBAC local do HSM gerenciado