Konfigurera automatisk rotation av kryptografiska nycklar i Azure Key Vault
Översikt
Automatiserad krypteringsnyckelrotation i Key Vault gör det möjligt för användare att konfigurera Key Vault för att automatiskt generera en ny nyckelversion med en angiven frekvens. Om du vill konfigurera rotation kan du använda en princip för nyckelrotation, som kan definieras för varje enskild nyckel.
Vi rekommenderar att du roterar krypteringsnycklar minst vartannat år (bästa praxis).
Mer information om hur versionshanteringen av objekt i Key Vault fungerar finns i Key Vault-objekt, identifierare och versionshantering.
Integrering med Azure-tjänster
Den här funktionen möjliggör nolltouchrotering från slutpunkt till slutpunkt för kryptering i vila för Azure-tjänster med kundhanterad nyckel (CMK) lagrad i Azure Key Vault. Se specifik dokumentation om Azure-tjänsten för att se om tjänsten omfattar rotation från slutpunkt till slutpunkt.
Mer information om datakryptering i Azure finns i:
Prissättning
Det tillkommer en extra kostnad per schemalagd nyckelrotation. Mer information finns på sidan med Azure Key Vault-priser
Behörigheter som krävs
Nyckelroteringsfunktionen i Key Vault kräver nyckelhanteringsbehörigheter. Du kan tilldela rollen "Key Vault Crypto Officer" för att hantera rotationsprincip och rotation på begäran.
Mer information om hur du använder Key Vault RBAC-behörighetsmodellen och tilldelar Azure-roller finns i Använda en Azure RBAC för att styra åtkomsten till nycklar, certifikat och hemligheter
Kommentar
Om du använder en behörighetsmodell för åtkomstprinciper måste du ange nyckelbehörigheterna "Rotera", "Ange rotationsprincip" och "Hämta rotationsprincip" för att hantera rotationsprincip för nycklar.
Princip för nyckelrotation
Med nyckelrotationsprincipen kan användare konfigurera rotations- och Event Grid-meddelanden nära förfalloavisering.
Principinställningar för nyckelrotation:
- Förfallotid: nyckel förfallointervall. Den används för att ange förfallodatum för den nyligen roterade nyckeln. Det påverkar inte en aktuell nyckel.
- Aktiverad/inaktiverad: flagga för att aktivera eller inaktivera rotation för nyckeln
- Rotationstyper:
- Förnya automatiskt vid en viss tidpunkt efter skapandet (standard)
- Förnya automatiskt vid en viss tidpunkt innan den upphör att gälla. Det kräver "Förfallotid" som angetts för rotationsprincipen och "Förfallodatum" som angetts för nyckeln.
- Rotationstid: nyckelrotationsintervall, minimivärdet är sju dagar från skapandet och sju dagar från förfallotiden
- Meddelandetid: nyckel nära utgångshändelseintervall för Event Grid-meddelande. Det kräver "Förfallotid" som angetts för rotationsprincipen och "Förfallodatum" som angetts för nyckeln.
Viktigt!
Nyckelrotation genererar en ny nyckelversion av en befintlig nyckel med nytt nyckelmaterial. Måltjänster bör använda versionslös nyckel-URI för att automatiskt uppdatera till den senaste versionen av nyckeln. Se till att din datakrypteringslösning lagrar versionsnyckel-URI med data för att peka på samma nyckelmaterial för dekryptering/avskrivning som användes för krypterings-/wrap-åtgärder för att undvika avbrott i dina tjänster. Alla Azure-tjänster följer för närvarande det mönstret för datakryptering.
Konfigurera princip för nyckelrotation
Konfigurera nyckelroteringsprincip när nyckeln skapas.
Konfigurera rotationsprincip för befintliga nycklar.
Azure CLI
Spara nyckelroteringsprincipen i en fil. Exempel på nyckelroteringsprincip:
{
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "P18M",
"timeBeforeExpiry": null
},
"action": {
"type": "Rotate"
}
},
{
"trigger": {
"timeBeforeExpiry": "P30D"
},
"action": {
"type": "Notify"
}
}
],
"attributes": {
"expiryTime": "P2Y"
}
}
Ange rotationsprincip för en nyckel som skickar tidigare sparad fil med azure CLI az keyvault key rotation-policy update command .
az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>
Azure PowerShell
Ange rotationsprincip med hjälp av cmdleten 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)}
Rotation på begäran
Nyckelrotation kan anropas manuellt.
Portalen
Klicka på Rotera nu för att anropa rotation.
Azure CLI
Använd azure CLI az keyvault key rotate command för att rotera nyckeln.
az keyvault key rotate --vault-name <vault-name> --name <key-name>
Azure PowerShell
Använd cmdleten Invoke-AzKeyVaultKeyRotation i Azure PowerShell.
Invoke-AzKeyVaultKeyRotation -VaultName <vault-name> -Name <key-name>
Konfigurera meddelande om att nyckeln snart upphör att gälla
Konfiguration av meddelande om förfallodatum för Event Grid-nyckel nära förfallohändelse. Om automatiserad rotation inte kan användas, till exempel när en nyckel importeras från lokal HSM, kan du konfigurera nästan förfallomeddelande som en påminnelse om manuell rotation eller som en utlösare för anpassad automatiserad rotation via integrering med Event Grid. Du kan konfigurera aviseringar med dagar, månader och år före förfallodatum för att utlösa händelse nära förfallodatum.
Mer information om Event Grid-meddelanden i Key Vault finns i Azure Key Vault som Event Grid-källa
Konfigurera nyckelrotation med ARM-mall
Nyckelroteringsprincipen kan också konfigureras med ARM-mallar.
Kommentar
Det kräver rollen "Key Vault-deltagare" i Key Vault som konfigurerats med Azure RBAC för att distribuera nyckeln via hanteringsplanet.
{
"$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')]"
}
}
}
}
]
}
Konfigurera principstyrning för nyckelrotation
Med hjälp av Azure Policy-tjänsten kan du styra nyckellivscykeln och se till att alla nycklar är konfigurerade att rotera inom ett angivet antal dagar.
Skapa och tilldela principdefinition
- Gå till Principresurs
- Välj Tilldelningar under Redigering till vänster på sidan Azure Policy.
- Välj Tilldela princip överst på sidan. Den här knappen öppnas på sidan Principtilldelning.
- Ange följande information:
- Definiera omfånget för principen genom att välja den prenumeration och resursgrupp som principen ska tillämpas på. Välj genom att klicka på trepunktsknappen i fältet Omfång .
- Välj namnet på principdefinitionen: "Nycklar ska ha en rotationsprincip som säkerställer att rotationen schemaläggs inom det angivna antalet dagar efter skapandet. "
- Gå till fliken Parametrar överst på sidan.
- Ange Maximalt antal dagar för att rotera parametern till önskat antal dagar, till exempel 730.
- Definiera den önskade effekten av principen (Granskning eller Inaktiverad).
- Fyll i eventuella ytterligare fält. Navigera i flikarna och klicka på knapparna Föregående och Nästa längst ned på sidan.
- Välj Granska + skapa
- Välj Skapa
När den inbyggda principen har tilldelats kan det ta upp till 24 timmar att slutföra genomsökningen. När genomsökningen är klar kan du se efterlevnadsresultat som nedan.