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:

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. Captura de tela que mostra um exemplo de Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. 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.

  4. 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