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 Cofre de Chaves permite que os usuários configurem o Cofre de Chaves para gerar automaticamente uma nova versão de chave em 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

Esse recurso permite a rotação de toque zero de ponta a ponta para criptografia em repouso para serviços do Azure com chave gerenciada pelo cliente (CMK) armazenada no Cofre de Chaves do Azure. 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 criptografia de dados no Azure, consulte:

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

O recurso de rotação de chaves do Cofre de Chaves requer permissões de gerenciamento de chaves. Você pode atribuir uma função de "Key Vault Crypto Officer" 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 Cofre da Chave e atribuir funções do Azure, consulte Usar um RBAC do Azure para controlar o acesso a chaves, certificados e segredos

Nota

Se você usar um modelo de permissão de políticas de acesso, será necessário definir as permissões de chave 'Rodar', 'Definir política de rotação' e 'Obter política de rotação' para gerenciar a política de rotação em 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 grade de eventos perto da 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 validade na chave recém-girada. Isso não afeta uma chave atual.
  • Ativado/desativado: sinalizador para ativar ou desativar 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 do vencimento. Requer 'Tempo de expiração' definido na política de rotação e 'Data de validade' definido na chave.
  • Tempo de rotação: intervalo de rotação da chave, o valor mínimo é de sete dias a partir da criação e sete dias a partir do tempo de expiração
  • Tempo de notificação: chave perto do intervalo de eventos de expiração para notificação de grade de eventos. Requer 'Tempo de expiração' definido na política de rotação e 'Data de validade' definido na chave.

Importante

A rotação de chaves gera uma nova versão de chave de uma chave existente com 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. Certifique-se de que sua solução de criptografia de dados armazene o uri de chave versionado com dados para apontar para o mesmo material de chave para descriptografar/desempacotar que foi usado para operações de criptografia/encapsulamento para evitar interrupções em seus serviços. Todos os serviços do Azure estão atualmente seguindo esse padrão para criptografia de dados.

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

Configurar 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 da chave

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

Configurar a rotação na 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 uma chave que passa o arquivo salvo anteriormente usando o comando Azure CLI 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 a rotação.

Rotação sob demanda

CLI do Azure

Use o comando Azure CLI az keyvault key rotate para girar a chave.

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

Azure PowerShell

Use o cmdlet Azure PowerShell Invoke-AzKeyVaultKeyRotation .

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

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

Configuração da notificação de expiração para a chave da Grade de Eventos perto do evento de expiração. Caso a rotação automatizada não possa ser usada, como quando uma chave é importada do HSM local, você pode configurar a notificação de quase expiração 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 da expiração para acionar o evento de quase expiração.

Configurar notificação

Para obter mais informações sobre notificações de Grade de Eventos no Cofre de Chaves, consulte Azure Key Vault como fonte de Grade de Eventos

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

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

Nota

Ele requer a função 'Key Vault Contributor' 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 definição de política

  1. Navegue até Recurso de política
  2. Selecione Atribuições em Criação no lado esquerdo da página Política do Azure.
  3. Selecione Atribuir política na parte superior da página. Este botão é aberto na página Atribuição de políticas.
  4. Insira as seguintes informações:
  5. Preencha todos os 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 que a política interna é atribuída, pode levar até 24 horas para concluir a verificação. Depois que a verificação for concluída, você poderá ver os resultados de conformidade como abaixo.

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

Recursos