Configurar a rotação automática de chave de criptografia no Azure Key Vault

Visão geral

A rotação automática de chave de criptografia no Key Vault permite que os usuários configurem o Key Vault para gerar automaticamente uma nova versão da chave em uma frequência especificada. Para configurar a rotação, você pode usar a política de rotação de chaves, que pode ser definida em cada chave individual.

Nossa recomendação é girar as chaves de criptografia pelo menos a cada dois anos para atender às práticas recomendadas de criptografia.

Para obter mais informações sobre como é feito o controle de versão dos objetos do Key Vault, confira Objetos do Key Vault, identificadores e controle de versão.

Integração com serviços do Azure

Esse recurso habilita a rotação sem toque de ponta a ponta para criptografia em repouso para os serviços do Azure com CMK (chave gerenciada pelo cliente) armazenados no Azure Key Vault. Confira a documentação específica do serviço do Azure para ver se o serviço abrange a rotação de ponta a ponta.

Para obter mais informações sobre a criptografia de dados no Azure, confira:

Preços

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

Permissões necessárias

O recurso de rotação de chave do Key Vault exige permissões de gerenciamento de chaves. Você pode atribuir uma função "Responsável pela Criptografia do Key Vault" para gerenciar a política de rotação e a rotação sob demanda.

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

Observação

Se você usar um modelo de permissão de políticas de acesso, será necessário definir permissões de chave "Girar", "Definir Política de Rotação" e "Obter Política de Rotação" para gerenciar a política de rotação de chaves.

Política de rotação de chaves

A política de rotação de chaves permite que os usuários configurem notificações de rotação e de Grade de Eventos próximas à notificação de expiração.

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

  • Tempo de expiração: intervalo de expiração da chave. Ele é usado para definir a data de expiração na chave girada recentemente. Isso não afeta uma chave atual.
  • Habilitado/desabilitado: sinalizador para habilitar ou desabilitar a rotação da chave
  • Tipos de rotação:
    • Renovar automaticamente em um determinado momento após a criação (padrão)
    • Renovar automaticamente em um determinado momento antes da expiração. Exige que o "Tempo de Expiração" esteja definido na política de rotação e a "Data de Expiração" esteja definida na chave.
  • Tempo de rotação: intervalo de rotação de teclas, o valor mínimo é sete dias após a criação e sete dias a partir do tempo de expiração
  • Tempo de notificação: intervalo do evento de expiração da chave próxima para notificação da Grade de Eventos. Exige que o "Tempo de Expiração" esteja definido na política de rotação e a "Data de Expiração" esteja definida na chave.

Importante

A rotação de chaves gera uma nova versão de uma chave existente com um novo material de chave. Os serviços de destino devem usar o URI de chave sem versão para atualizar automaticamente para a versão mais recente da chave. Verifique se sua solução de criptografia de dados usa o uri de chave com versão para apontar para o mesmo material de chave para operações de descriptografar/desencapsular, como usado em criptografar/encapsular para evitar interrupções em seus serviços. Todos os serviços do Azure estão seguindo esse padrão para a criptografia 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 de chaves.

Configurar a rotação durante a criação de chaves

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

Configurar a rotação em chave existente

CLI do Azure

Salve a política de rotação de chaves em um arquivo. 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 em um arquivo salvo anteriormente usando o comando da CLI do Azure az keyvault key rotation-policy update.

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 usando 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 sob demanda

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

Portal

Clique em "Girar Agora" para invocar uma rotação.

Rotação sob demanda.

CLI do Azure

Use o coando az keyvault key rotate da CLI do Azure para girar a chave.

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

Azure PowerShell

Use o cmdlet Invoke-AzKeyVaultKeyRotation do Azure PowerShell.

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

Configurar a notificação de expiração da chave próxima

Configuração da notificação de expiração para a chave da Grade de Eventos próxima ao evento de expiração. Caso não seja possível usar a rotação automatizada, como quando uma chave é importada do HSM local, você pode configurar a notificação de expiração próxima como um lembrete para rotação manual ou como um gatilho para rotação automatizada personalizada por meio da integração com a Grade de Eventos. Você pode configurar a notificação com dias, meses e anos antes do vencimento para disparar o evento de expiração próxima.

Configurar Notificação

Para obter mais informações sobre notificações da Grade de Eventos no Key Vault, confira Azure Key Vault como origem da Grade de Eventos

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

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

Observação

Ela exige a função "Colaborador do Cofre de Chaves" no Key Vault configurado com o Azure RBAC para implantar a chave por meio do plano de gerenciamento.

{
    "$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 governança da política de rotação de chaves

Usando o serviço Azure Policy, você pode controlar o ciclo de vida da chave e garantir que todas as chaves sejam configuradas para girar dentro de um número especificado de dias.

Criar e atribuir uma definição de política

  1. Navegue até o recurso de Política
  2. Selecione Atribuições em Criação no lado esquerdo da página Azure Policy.
  3. Selecione Atribuir política no topo da página. Esse botão abre a página Atribuição de política.
  4. Insira as seguintes informações:
  5. Preencha todos os campos adicionais. Navegue pelas guias clicando nos botões Anterior e Avançar na parte inferior da página.
  6. Selecione Examinar + criar
  7. Escolha Criar

Depois que política interna é atribuída, pode levar até 24 horas para que a verificação seja concluída. Depois que a verificação for concluída, você verá os resultados de conformidade, conforme abaixo.

Captura de tela da conformidade com a política de rotação de chaves.

Recursos