Automatische rotatie van cryptografische sleutels configureren in Azure Key Vault

Overzicht

Met geautomatiseerde rotatie van cryptografische sleutels in Key Vault kunnen gebruikers Key Vault configureren om automatisch een nieuwe sleutelversie te genereren met een opgegeven frequentie. Als u rotatie wilt configureren, kunt u beleid voor sleutelrotatie gebruiken, dat voor elke afzonderlijke sleutel kan worden gedefinieerd.

We raden u aan om versleutelingssleutels ten minste om de twee jaar te roteren om te voldoen aan cryptografische best practices.

Zie Key Vault objecten, id's en versiebeheer voor meer informatie over de wijze waarop voor objecten in Key Vault versiebeheer wordt gebruikt.

Integratie met Azure-services

Deze functie maakt end-to-end zero-touch rotatie mogelijk voor versleuteling at rest voor Azure-services met cmk (door de klant beheerde sleutel) die zijn opgeslagen in Azure Key Vault. Raadpleeg de specifieke documentatie van de Azure-service om te zien of de service end-to-end-rotatie omvat.

Zie voor meer informatie over gegevensversleuteling in Azure:

Prijzen

Er zijn extra kosten per geplande sleutelrotatie. Zie de pagina prijzen van Azure Key Vault voor meer informatie

Machtigingen vereist

Key Vault functie voor sleutelrotatie vereist machtigingen voor sleutelbeheer. U kunt de rol 'Key Vault Crypto Officer' toewijzen om rotatiebeleid en rotatie op aanvraag te beheren.

Zie Een Azure RBAC gebruiken om de toegang tot sleutels, certificaten en geheimen te beheren voor meer informatie over het gebruik van Key Vault RBAC-machtigingsmodel en het toewijzen van Azure-rollen

Notitie

Als u een machtigingsmodel voor toegangsbeleid gebruikt, moet u sleutelmachtigingen 'Roteren', 'Rotatiebeleid instellen' en 'Rotatiebeleid ophalen' instellen om rotatiebeleid voor sleutels te beheren.

Beleid voor sleutelrotatie

Met het beleid voor sleutelrotatie kunnen gebruikers rotatie- en Event Grid-meldingen bij het bijna verlopen configureren.

Beleidsinstellingen voor sleutelrotatie:

  • Verlooptijd: verloopinterval van sleutel. Deze wordt gebruikt om de vervaldatum in te stellen op de zojuist gedraaide sleutel. Dit heeft geen invloed op een huidige sleutel.
  • Ingeschakeld/uitgeschakeld: vlag om rotatie voor de sleutel in of uit te schakelen
  • Rotatietypen:
    • Automatisch verlengen op een bepaald moment na het maken (standaard)
    • Automatisch verlengen op een bepaald tijdstip voordat de vervaldatum verloopt. Hiervoor moet 'Verlooptijd' zijn ingesteld op het rotatiebeleid en 'Vervaldatum' voor de sleutel zijn ingesteld.
  • Rotatietijd: sleutelrotatie-interval, de minimumwaarde is zeven dagen na het maken en zeven dagen vanaf de verlooptijd
  • Meldingstijd: sleutel bijna verlopen gebeurtenisinterval voor Event Grid-melding. Hiervoor moet 'Verlooptijd' zijn ingesteld op het rotatiebeleid en 'Vervaldatum' voor de sleutel zijn ingesteld.

Belangrijk

Sleutelrotatie genereert een nieuwe sleutelversie van een bestaande sleutel met nieuw sleutelmateriaal. Doelservices moeten gebruikmaken van versieloze sleutel-URI om automatisch te vernieuwen naar de nieuwste versie van de sleutel. Zorg ervoor dat uw oplossing voor gegevensversleuteling versie-URI-sleutels opslaat met gegevens die verwijzen naar hetzelfde sleutelmateriaal voor ontsleutelen/uitpakken als is gebruikt voor versleutelings-/wrapbewerkingen om onderbreking van uw services te voorkomen. Alle Azure-services volgen momenteel dat patroon voor gegevensversleuteling.

Configuratie van rotatiebeleid

Beleid voor sleutelrotatie configureren

Beleid voor sleutelrotatie configureren tijdens het maken van de sleutel.

Rotatie configureren tijdens het maken van de sleutel

Configureer rotatiebeleid voor bestaande sleutels.

Rotatie voor bestaande sleutel configureren

Azure CLI

Sla het sleutelrotatiebeleid op in een bestand. Voorbeeld van beleid voor sleutelrotatie:

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

Stel rotatiebeleid in voor een sleutel die een eerder opgeslagen bestand doorgeeft met de Azure CLI-opdracht 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

Stel het rotatiebeleid in met behulp van de cmdlet Set-AzKeyVaultKeyRotationPolicy van Azure Powershell.

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

Rotatie op aanvraag

Sleutelrotatie kan handmatig worden aangeroepen.

Portal

Klik op Nu draaien om de rotatie aan te roepen.

Rotatie op aanvraag

Azure CLI

Gebruik de Azure CLI-opdracht az keyvault key rotate om de sleutel te roteren.

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

Azure PowerShell

Gebruik Azure PowerShell cmdlet Invoke-AzKeyVaultKeyRotation.

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

Melding over het bijna verlopen van de sleutel configureren

Configuratie van verlopen melding voor event grid sleutel bijna verlopen gebeurtenis. Als automatische rotatie niet kan worden gebruikt, zoals wanneer een sleutel wordt geïmporteerd uit een lokale HSM, kunt u een melding over bijna verlopen configureren als herinnering voor handmatige rotatie of als trigger voor aangepaste geautomatiseerde rotatie via integratie met Event Grid. U kunt meldingen configureren met dagen, maanden en jaren vóór de vervaldatum om een bijna-verloop-gebeurtenis te activeren.

Melding configureren

Zie Azure Key Vault als Event Grid-bron voor meer informatie over Event Grid-meldingen in Key Vault

Sleutelrotatie configureren met ARM-sjabloon

Sleutelrotatiebeleid kan ook worden geconfigureerd met ARM-sjablonen.

Notitie

Hiervoor is de rol 'Key Vault Inzender' vereist op Key Vault geconfigureerd met Azure RBAC om de sleutel via het beheervlak te implementeren.

{
    "$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')]"
                    }
                }
            }
        }
    ]
}

Beleidsgovernance voor sleutelrotatie configureren

Met behulp van de Azure Policy-service kunt u de levenscyclus van de sleutel beheren en ervoor zorgen dat alle sleutels zijn geconfigureerd om binnen een opgegeven aantal dagen te roteren.

Beleidsdefinitie maken en toewijzen

  1. Navigeer naar beleidsresource
  2. Selecteer Toewijzingen onder Ontwerpen aan de linkerkant van de pagina Azure Policy.
  3. Selecteer Beleid toewijzen bovenaan de pagina. Deze knop wordt geopend op de pagina Beleidstoewijzing.
  4. Voer de volgende informatie in:
  5. Vul eventuele extra velden in. Navigeer door de tabbladen door te klikken op de knoppen Vorige en Volgende onder aan de pagina.
  6. Selecteer Controleren en maken.
  7. Selecteer Maken

Zodra het ingebouwde beleid is toegewezen, kan het tot 24 uur duren voordat de scan is voltooid. Nadat de scan is voltooid, kunt u nalevingsresultaten zien, zoals hieronder.

Schermopname van naleving van beleid voor sleutelrotatie.

Resources