Condividi tramite


Configurare la rotazione automatica della chiave crittografica in Azure Key Vault

Automatizzando la rotazione delle chiavi crittografiche in Key Vault, è possibile configurare Key Vault per creare automaticamente una nuova versione della chiave a una frequenza scelta. Per configurare la rotazione, usare i criteri di rotazione delle chiavi, che è possibile definire per ogni singola chiave.

Per seguire le procedure consigliate per la crittografia, ruotare le chiavi di crittografia almeno ogni due anni.

Per ulteriori informazioni su come Key Vault gestisce la versione degli oggetti, vedere Oggetti Key Vault, identificatori e versioni. Per una comprensione approfondita dei concetti di autorotazione in diversi tipi di asset in Azure Key Vault, vedere Comprendere l'autorotazione in Azure Key Vault.

Integrazione con i servizi di Azure

Questa funzionalità consente la rotazione senza tocco end-to-end per la crittografia di dati inattivi per i servizi Azure con chiave gestita dal cliente (CMK) archiviata in Azure Key Vault. Controllare la documentazione specifica del servizio Azure per verificare se il servizio supporta la rotazione end-to-end.

Annotazioni

Quando si ruotano le chiavi gestite dal cliente che Azure servizi usano, il tempo necessario per ogni servizio per rilevare e applicare la nuova versione della chiave varia (da un'ora a 24 ore o più). Consultare la documentazione specifica del servizio Azure per indicazioni su quando è possibile disabilitare in modo sicuro la versione precedente della chiave dopo la rotazione.

Per altre informazioni sulla crittografia dei dati in Azure, vedere:

Tariffazione

È previsto un costo aggiuntivo per ogni rotazione pianificata delle chiavi. Per altre informazioni, vedere la pagina dei prezzi Azure Key Vault.

Autorizzazioni necessarie

La funzionalità di rotazione delle chiavi Key Vault richiede autorizzazioni di gestione delle chiavi. Assegnare il ruolo Key Vault Crypto Officer per gestire i criteri di rotazione e la rotazione su richiesta.

Per altre informazioni su come usare Azure RBAC (controllo degli accessi in base al ruolo) per Key Vault e assegnare ruoli di Azure, vedere Usare un Azure RBAC per controllare l'accesso a chiavi, certificati e segreti.

Annotazioni

Se si usa il modello di autorizzazione dei criteri di accesso, impostare le autorizzazioni chiave 'Rotate', 'Set Rotation Policy' e 'Get Rotation Policy' per gestire i criteri di rotazione sulle chiavi.

Criterio di rotazione delle chiavi

I criteri di rotazione delle chiavi consentono di configurare la rotazione e le notifiche di Griglia di eventi per le notifiche di scadenza imminente.

Impostazioni dei criteri di rotazione delle chiavi:

  • Scadenza: intervallo di scadenza della chiave. Imposta la data di scadenza sulla chiave appena ruotata. Non influisce sulla chiave corrente.
  • Abilitato/disabilitato: flag per abilitare o disabilitare la rotazione per la chiave.
  • Tipi di rotazione:
    • Rinnovo automatico in un determinato momento dopo la creazione (impostazione predefinita).
    • Rinnovo automatico in un determinato momento prima della scadenza. Richiede l'impostazione "Scadenza" nei criteri di rotazione e "Data di scadenza" impostata sulla chiave.
  • Tempo di rotazione: intervallo di rotazione delle chiavi. Il valore minimo è di sette giorni dalla creazione e sette giorni dalla scadenza.
  • Tempo di notifica: intervallo di eventi di scadenza vicino alla scadenza per la notifica di Griglia di eventi. Richiede l'impostazione "Scadenza" nei criteri di rotazione e "Data di scadenza" impostata sulla chiave.

Importante

La rotazione delle chiavi genera una nuova versione chiave di una chiave esistente con nuovo materiale della chiave. I servizi di destinazione devono usare l'URI della chiave senza versione per eseguire automaticamente l'aggiornamento alla versione più recente della chiave. Verificare che la soluzione di crittografia dei dati archivi l'URI della chiave con versione con dati che puntano allo stesso materiale della chiave per le operazioni di decrittografia/decompressione, al fine di evitare interruzioni dei servizi. Tutti i servizi Azure attualmente seguono questo modello per la crittografia dei dati.

La rotazione delle chiavi esegue di nuovo il wrapping delle chiavi DEK con la nuova versione della chiave, ma non effettua di nuovo la crittografa i dati sottostanti. Entrambe le versioni della chiave, vecchia e nuova, devono rimanere attive fino al completamento del processo del nuovo wrapping poiché i dati esistenti rimangono crittografati con DEK sottoposte a wrapping dalla vecchia versione della chiave.

Configurazione dei criteri di rotazione

Configurare i criteri di rotazione delle chiavi

Configurare i criteri di rotazione delle chiavi durante la creazione della chiave.

Configurare la rotazione durante la creazione della chiave

Configurare i criteri di rotazione sulle chiavi esistenti.

Configurare la rotazione sulla chiave esistente

interfaccia della riga di comando di Azure

Salvare i criteri di rotazione delle chiavi in un file. Ecco un esempio di politica di rotazione delle chiavi:

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

Impostare i criteri di rotazione su una chiave che passa un file salvato in precedenza usando il comando dell'interfaccia della riga di comando di 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

Impostare i criteri di rotazione usando il cmdlet Azure PowerShell Set-AzKeyVaultKeyRotationPolicy.

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

Rotazione su richiesta

È possibile richiamare manualmente la rotazione delle chiavi.

Portale

Selezionare Ruota ora per avviare il processo di rotazione.

Rotazione su richiesta

interfaccia della riga di comando di Azure

Usare il comando interfaccia della riga di comando di Azure az keyvault key rotate per ruotare una chiave.

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

Azure PowerShell

Usare il cmdlet Azure PowerShell Invoke-AzKeyVaultKeyRotation per ruotare una chiave.

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

Configurare la notifica relativa alla scadenza della chiave

È possibile configurare una notifica di scadenza per la chiave di Griglia di eventi in prossimità dell'evento di scadenza. Se non è possibile usare la rotazione automatica, ad esempio quando una chiave viene importata da un modulo di protezione hardware locale, è possibile configurare la notifica di prossima scadenza come promemoria per la rotazione manuale o come attivazione per la rotazione automatica personalizzata tramite l'integrazione con Event Grid. È possibile impostare la notifica per attivare l'evento di prossima scadenza in giorni, mesi o anni prima della scadenza della chiave.

Configurare la notifica

Per ulteriori informazioni sulle notifiche di Event Grid in Key Vault, vedere Azure Key Vault come origine Event Grid.

Configurare la rotazione delle chiavi usando il modello ARM

È possibile configurare i criteri di rotazione delle chiavi usando i modelli di ARM.

Annotazioni

Per distribuire una chiave tramite il piano di controllo, è necessario il ruolo di Collaboratore di Key Vault nell'insieme di credenziali delle chiavi (Key Vault) configurato con il controllo degli accessi in base al ruolo di Controllo degli accessi in base al ruolo di Azure.

{
    "$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."
            }
        },
        "rotationTimeAfterCreate": {
            "defaultValue": "P18M",
            "type": "String",
            "metadata": {
                "description": "Time duration to trigger key rotation, for example, P30D, P1M, P2Y."
            }
        },
        "expiryTime": {
            "defaultValue": "P2Y",
            "type": "String",
            "metadata": {
                "description": "The expiry time for new key version, for example, P90D, P2M, P3Y."
            }
        },
        "notifyTime": {
            "defaultValue": "P30D",
            "type": "String",
            "metadata": {
                "description": "Near expiry Event Grid notification, for example, P30D."
            }
        }

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

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

Configurare la governance del criterio di rotazione delle chiavi

Usando il servizio Criteri di Azure, è possibile gestire il ciclo di vita delle chiavi e assicurarsi che tutte le chiavi siano configurate per ruotare entro un numero specificato di giorni.

Creare e assegnare la definizione del criterio

  1. Andare alla risorsa Criteri.
  2. Selezionare Assegnazioni in Authoring sul lato sinistro della pagina Criteri di Azure.
  3. Selezionare Assegna criteri nella parte superiore della pagina. Questo pulsante viene aperto nella pagina Assegnazione dei criteri.
  4. Immettere le seguenti informazioni:
  5. Compilare eventuali campi aggiuntivi. Esplorare le schede facendo clic sui pulsanti Indietro e Avanti nella parte inferiore della pagina.
  6. Selezionare Rivedi e crea.
  7. Fare clic su Crea.

Dopo aver assegnato i criteri predefiniti, il completamento dell'analisi può richiedere fino a 24 ore. Al termine dell'analisi, è possibile visualizzare risultati di conformità simili ai seguenti.

Screenshot della conformità dei criteri di rotazione delle chiavi.

Usare l'AI per personalizzare i criteri di rotazione delle chiavi

GitHub Copilot può aiutarti a creare criteri di rotazione delle chiavi personalizzati per requisiti di conformità specifici o integrazioni del servizio Azure.

I need to configure a key rotation policy for my Azure Key Vault key that's used for Azure Storage encryption. Help me create the rotation policy with these requirements:
- Key vault name: my-storage-kv
- Key name: storage-encryption-key
- Rotate the key every 180 days
- Send a notification 30 days before expiry
- Set key expiration to 2 years
Provide both Azure CLI commands and a JSON policy file I can use with the Azure CLI.

GitHub Copilot è basato sull'IA, quindi sono possibili sorprese ed errori. Per altre informazioni, vedere Copilot domande frequenti.

Risorse