Configurar a rotação automática de chaves criptográficas no Azure Key Vault

Descrição Geral

A rotação automatizada de chaves criptográficas no Key Vault permite que os utilizadores configurem Key Vault para gerar automaticamente uma nova versão de chave com uma frequência especificada. Para configurar a rotação, pode utilizar a política de rotação de chaves, que pode ser definida em cada chave individual.

A nossa recomendação é rodar as chaves de encriptação, pelo menos, de dois em dois anos para cumprir as melhores práticas criptográficas.

Para obter mais informações sobre como os objetos no Key Vault são criados, veja Objetos, identificadores e controlo de versões do Key Vault.

Integração com os serviços do Azure

Esta funcionalidade permite a rotação ponto a ponto do toque zero para encriptação inativa para serviços do Azure com a chave gerida pelo cliente (CMK) armazenada no Azure Key Vault. Veja a documentação do serviço do Azure específico para ver se o serviço abrange a rotação ponto a ponto.

Para obter mais informações sobre a encriptação de dados no Azure, veja:

Preços

Existe um custo adicional por rotação de chaves agendada. Para obter mais informações, veja a página de preços do Azure Key Vault

Permissões necessárias

Key Vault funcionalidade de rotação de chaves requer permissões de gestão de chaves. Pode atribuir uma função "Key Vault Crypto Officer" para gerir a política de rotação e a rotação a pedido.

Para obter mais informações sobre como utilizar Key Vault modelo de permissão RBAC e atribuir funções do Azure, veja Utilizar um RBAC do Azure para controlar o acesso a chaves, certificados e segredos

Nota

Se utilizar um modelo de permissão de políticas de acesso, é necessário definir as permissões de chave "Rodar", "Definir Política de Rotação" e "Obter Política de Rotação" para gerir a política de rotação nas chaves.

Política de rotação de chaves

A política de rotação de chaves permite aos utilizadores configurar a rotação e as notificações do Event Grid perto da notificação de expiração.

Definições da política de rotação de chaves:

  • Tempo de expiração: intervalo de expiração da chave. É utilizado para definir a data de expiração na chave recentemente rodada. Não afeta uma chave atual.
  • Ativado/desativado: sinalizador para ativar ou desativar a rotação da chave
  • Tipos de rotação:
    • Renovar automaticamente num determinado momento após a criação (predefinição)
    • Renovar automaticamente num determinado momento antes de expirar. Requer a definição "Tempo de Expiração" na política de rotação e a "Data de Expiração" definidas na chave.
  • Tempo de rotação: intervalo de rotação da chave, o valor mínimo é sete dias após a criação e sete dias após o tempo de expiração
  • Tempo de notificação: chave perto do intervalo de eventos de expiração para notificação do Event Grid. Requer a definição "Tempo de Expiração" na política de rotação e a "Data de Expiração" definidas na chave.

Importante

A rotação de chaves gera uma nova versão chave de uma chave existente com material de chave novo. Os serviços de destino devem utilizar o URI da chave sem versão para atualizar automaticamente para a versão mais recente da chave. Certifique-se de que a solução de encriptação de dados armazena o URI da chave com versões com dados para apontar para o mesmo material chave para desencriptar/desencriptar conforme foi utilizado para operações de encriptação/encapsulamento para evitar interrupções nos seus serviços. Todos os serviços do Azure estão atualmente a seguir esse padrão para encriptação de dados.

Configuração da política de rotação

Configurar a política de rotação de chaves

Configure a política de rotação de chaves durante a criação da chave.

Configurar a rotação durante a criação da chave

Configurar a política de rotação em chaves existentes.

Configurar a rotação na chave existente

CLI do Azure

Guarde a política de rotação de chaves num ficheiro. Exemplo de política de rotação de chaves:

{
  "lifetimeActions": [
    {
      "trigger": {
        "timeAfterCreate": "P18M",
        "timeBeforeExpiry": null
      },
      "action": {
        "type": "Rotate"
      }
    },
    {
      "trigger": {
        "timeBeforeExpiry": "P30D"
      },
      "action": {
        "type": "Notify"
      }
    }
  ],
  "attributes": {
    "expiryTime": "P2Y"
  }
}

Defina a política de rotação numa chave que transmite o ficheiro guardado anteriormente com o comando az keyvault key rotation-policy update da CLI do Azure.

az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>

Azure PowerShell

Defina a política de rotação com o cmdlet Set-AzKeyVaultKeyRotationPolicy do Azure Powershell.

Set-AzKeyVaultKeyRotationPolicy -VaultName <vault-name> -KeyName <key-name> -ExpiresIn (New-TimeSpan -Days 720) -KeyRotationLifetimeAction @{Action="Rotate";TimeAfterCreate= (New-TimeSpan -Days 540)}

Rotação a pedido

A rotação de chaves pode ser invocada manualmente.

Portal

Clique em "Rodar Agora" para invocar a rotação.

Rotação a pedido

CLI do Azure

Utilize o comando rotação da chave az keyvault da CLI do Azure para rodar a chave.

az keyvault key rotate --vault-name <vault-name> --name <key-name>

Azure PowerShell

Utilize Azure PowerShell cmdlet Invoke-AzKeyVaultKeyRotation.

Invoke-AzKeyVaultKeyRotation -VaultName <vault-name> -Name <key-name>

Configurar a chave perto da notificação de expiração

Configuração da notificação de expiração da chave do Event Grid perto do evento de expiração. Caso não seja possível utilizar a rotação automatizada, como quando uma chave é importada do HSM local, pode configurar a notificação de quase expiração como um lembrete para rotação manual ou como um acionador para a rotação automatizada personalizada através da integração com o Event Grid. Pode configurar a notificação com dias, meses e anos antes da expiração para acionar um evento de quase expiração.

Configurar Notificação

Para obter mais informações sobre as notificações do Event Grid no Key Vault, veja Azure Key Vault como origem do Event Grid

Configurar a rotação de chaves com o modelo do ARM

A política de rotação de chaves também pode ser configurada com modelos do ARM.

Nota

Requer a função "Contribuidor Key Vault" no Key Vault configurado com o RBAC do Azure para implementar a chave através do plano de gestão.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vaultName": {
            "type": "String",
            "metadata": {
                "description": "The name of the key vault to be created."
            }
        },
        "keyName": {
            "type": "String",
            "metadata": {
                "description": "The name of the key to be created."
            }
        },
        "rotatationTimeAfterCreate": {
            "defaultValue": "P18M",
            "type": "String",
            "metadata": {
                "description": "Time duration to trigger key rotation. i.e. P30D, P1M, P2Y"
            }
        },
        "expiryTime": {
            "defaultValue": "P2Y",
            "type": "String",
            "metadata": {
                "description": "The expiry time for new key version. i.e. P90D, P2M, P3Y"
            }
        },
        "notifyTime": {
            "defaultValue": "P30D",
            "type": "String",
            "metadata": {
                "description": "Near expiry Event Grid notification. i.e. P30D"
            }
        }

    },
    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults/keys",
            "apiVersion": "2021-06-01-preview",
            "name": "[concat(parameters('vaultName'), '/', parameters('keyName'))]",
            "location": "[resourceGroup().location]",
            "properties": {
                "vaultName": "[parameters('vaultName')]",
                "kty": "RSA",
                "rotationPolicy": {
                    "lifetimeActions": [
                        {
                            "trigger": {
                                "timeAfterCreate": "[parameters('rotatationTimeAfterCreate')]",
                                "timeBeforeExpiry": ""
                            },
                            "action": {
                                "type": "Rotate"
                            }
                        },
                        {
                            "trigger": {
                                "timeBeforeExpiry": "[parameters('notifyTime')]"
                            },
                            "action": {
                                "type": "Notify"
                            }
                        }

                    ],
                    "attributes": {
                        "expiryTime": "[parameters('expiryTime')]"
                    }
                }
            }
        }
    ]
}

Configurar a governação da política de rotação de chaves

Com o serviço Azure Policy, pode governar o ciclo de vida da chave e garantir que todas as chaves estão configuradas para rodar dentro de um número especificado de dias.

Criar e atribuir definição de política

  1. Navegue para Recurso de política
  2. Selecione Atribuições em Criação no lado esquerdo da página Azure Policy.
  3. Selecione Atribuir política na parte superior da página. Este botão é aberto na página Atribuição de políticas.
  4. Introduza as seguintes informações:
  5. Preencha quaisquer campos adicionais. Navegue pelos separadores clicando nos botões Anterior e Seguinte na parte inferior da página.
  6. Selecione Rever + criar
  7. Selecione Criar

Depois de atribuída a política incorporada, pode demorar até 24 horas a concluir a análise. Após a conclusão da análise, pode ver os resultados de compatibilidade, como abaixo.

Captura de ecrã a mostrar a conformidade da política de rotação de chaves.

Recursos