Compartilhar via


Gerenciamento de função do HSM Gerenciado

Observação

O Key Vault é compatível com dois tipos de recurso: cofres e HSMs Gerenciados. Este artigo é sobre o HSM Gerenciado. Se você quiser aprender como gerenciar um cofre, confira Gerenciar o Key Vault usando a CLI do Azure.

Para obter uma visão geral do HSM Gerenciado, confira O que é o HSM Gerenciado?. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Este artigo mostra como gerenciar funções de um plano de dados do HSM gerenciado. Para aprender sobre o modelo de controle de acesso do HSM Gerenciado, confira Controle de acesso do 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 do plano de dados do HSM Gerenciado, é necessário atribuir a ela uma função que permita a execução dessas operações. Por exemplo, se você quiser permitir que um aplicativo execute uma operação de assinatura usando uma chave, será necessário atribuir a ele 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 é compatível com dois escopos: em todo o HSM (/ ou /keys) e por chave (/keys/<keyname>).

Para obter uma lista com todas as funções internas do HSM Gerenciado e as operações que elas permitem, confira Funções internas do HSM Gerenciado.

Pré-requisitos

Para usar comandos da CLI do Azure neste artigo, você deve ter os seguintes itens:

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Captura de tela que mostra um exemplo de Experimente para o Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito 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 o comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.

  4. Pressione Enter para executar o código ou comando.

Entrar 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, confira Entrar com a CLI do Azure

Criar uma atribuição de função

Atribuir funções para todas as chaves

Use o comando az keyvault role assignment create para atribuir uma função de Usuário da Criptografia do HSM Gerenciado ao usuário identificado pelo nome UPN user2@contoso.com para todas as chaves (escopo /keys) do ContosoHSM.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com  --scope /keys

Atribuir função para uma chave específica

Use o comando az keyvault role assignment create para atribuir a função de Usuário da Criptografia do HSM Gerenciado ao usuário identificado pelo nome UPN user2@contoso.com 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 as atribuições de função existentes

Use az keyvault role assignment list para listar as atribuições de função.

Todas as atribuições de função no escopo/(padrão, quando nenhum --scope for especificado) para todos os usuários (padrão, quando nenhum --assignee for especificado)

az keyvault role assignment list --hsm-name ContosoMHSM

Todas as atribuições de função no nível do HSM para um usuário específico user1@contoso.com .

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user@contoso.com

Observação

Quando o escopo for / (ou /chaves), o comando listará apenas todas as atribuições de função no nível superior e não mostrará as atribuições de função no nível de chave individual.

Todas as atribuições de função para um usuário específico user2@contoso.com para uma chave específica chamada 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 de Responsável pela Criptografia do HSM Gerenciado para um usuário específico user2@contoso.com para uma chave específica chamada 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 o comando az keyvault role assignment delete para excluir a função de Responsável pela Criptografia do HSM Gerenciado 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

Liste todas as definições de função disponíveis

Use o comando az keyvault role definition list para listar todas as definições de função.

az keyvault role definition list --hsm-name ContosoMHSM

Criar uma 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 função com uma lista de ações específicas que ela tem permissão para executar. Em seguida, você pode atribuir essa função a entidades de segurança para conceder a elas permissão para as ações especificadas.

Use o comando az keyvault role definition create 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 o comando az keyvault role definition create para uma função de um arquivo chamado my-custom-role-definition.json contendo a cadeia de caracteres JSON de uma definição de função. Consulte o 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 o comando az keyvault role definition show para ver detalhes de uma definição de função específica usando o nome (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 o comando az keyvault role definition update 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": []
        }'

Excluir definição de função personalizada

Use o comando az keyvault role definition delete para ver detalhes de uma definição de função específica usando o nome (um GUID).

az keyvault role definition delete --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Observação

Funções internas não podem ser excluídas. Quando funções personalizadas são excluídas, todas as atribuições de função que usam essa função personalizada são desabilitadas.

Próximas etapas