Konfigurowanie automatycznego obracania klucza kryptograficznego w usłudze Azure Key Vault

Omówienie

Automatyczna rotacja kluczy kryptograficznych w Key Vault umożliwia użytkownikom konfigurowanie Key Vault automatycznego generowania nowej wersji klucza z określoną częstotliwością. Aby skonfigurować obracanie, można użyć zasad obracania kluczy, które można zdefiniować dla poszczególnych, pojedynczych kluczy.

Naszą rekomendacją jest obracanie kluczy szyfrowania co najmniej co dwa lata w celu spełnienia najlepszych rozwiązań kryptograficznych.

Aby uzyskać więcej informacji na temat sposobu przechowywania wersji obiektów w usłudze Key Vault, zobacz Obiekty, identyfikatory i przechowywanie wersji w usłudze Key Vault.

Integracja z usługami Azure

Ta funkcja umożliwia kompleksową rotację bezobsługową szyfrowania danych magazynowanych dla usług platformy Azure przy użyciu klucza zarządzanego przez klienta (CMK) przechowywanego w usłudze Azure Key Vault. Zapoznaj się z dokumentacją konkretnej usługi platformy Azure, aby sprawdzić, czy usługa obejmuje kompleksowe obracanie.

Aby uzyskać więcej informacji na temat szyfrowania danych na platformie Azure, zobacz:

Cennik

Za zaplanowane obracanie klucza jest naliczany dodatkowy koszt. Aby uzyskać więcej informacji, zobacz stronę Cennik usługi Azure Key Vault

Wymagane uprawnienia

Key Vault funkcja rotacji kluczy wymaga uprawnień do zarządzania kluczami. Rolę "Key Vault Crypto Officer" można przypisać do zarządzania zasadami rotacji i rotacją na żądanie.

Aby uzyskać więcej informacji na temat używania modelu uprawnień RBAC Key Vault i przypisywania ról platformy Azure, zobacz Używanie kontroli dostępu opartej na rolach platformy Azure w celu kontrolowania dostępu do kluczy, certyfikatów i wpisów tajnych

Uwaga

Jeśli używasz modelu uprawnień zasad dostępu, wymagane jest ustawienie uprawnień "Obróć", "Ustaw zasady rotacji" i "Pobierz zasady rotacji", aby zarządzać zasadami rotacji kluczy.

Zasady rotacji kluczy

Zasady rotacji kluczy umożliwiają użytkownikom konfigurowanie powiadomień dotyczących rotacji i usługi Event Grid w pobliżu wygaśnięcia.

Ustawienia zasad rotacji kluczy:

  • Czas wygaśnięcia: interwał wygaśnięcia klucza. Służy do ustawiania daty wygaśnięcia dla nowo obrócoowanego klucza. Nie ma to wpływu na bieżący klucz.
  • Włączone/wyłączone: flaga włączania lub wyłączania rotacji klucza
  • Typy rotacji:
    • Automatyczne odnawianie w danym momencie po utworzeniu (ustawienie domyślne)
    • Automatyczne odnawianie w danym momencie przed wygaśnięciem. Wymaga ono ustawienia "Czas wygaśnięcia" dla zasad rotacji i wartości "Data wygaśnięcia" ustawionego na kluczu.
  • Czas rotacji: interwał rotacji klucza, minimalna wartość wynosi siedem dni od utworzenia i siedem dni od czasu wygaśnięcia
  • Czas powiadomienia: interwał zdarzenia klucza bliskiego wygaśnięcia dla powiadomienia usługi Event Grid. Wymaga ono ustawienia "Czas wygaśnięcia" dla zasad rotacji i wartości "Data wygaśnięcia" ustawionego na kluczu.

Ważne

Rotacja kluczy generuje nową wersję klucza istniejącego klucza z nowym materiałem klucza. Usługi docelowe powinny używać identyfikatora URI klucza bez wersji, aby automatycznie odświeżać do najnowszej wersji klucza. Upewnij się, że rozwiązanie do szyfrowania danych przechowuje identyfikator URI klucza w wersji z danymi, aby wskazać ten sam materiał klucza do odszyfrowywania/odpakowywania, co zostało użyte do operacji szyfrowania/zawijania, aby uniknąć zakłóceń w usługach. Wszystkie usługi platformy Azure są obecnie następujące zgodnie ze wzorcem szyfrowania danych.

Konfiguracja zasad rotacji

Konfigurowanie zasad rotacji kluczy

Skonfiguruj zasady rotacji kluczy podczas tworzenia klucza.

Konfigurowanie rotacji podczas tworzenia klucza

Skonfiguruj zasady rotacji dla istniejących kluczy.

Konfigurowanie rotacji na istniejącym kluczu

Interfejs wiersza polecenia platformy Azure

Zapisz zasady rotacji kluczy w pliku. Przykład zasad rotacji kluczy:

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

Ustaw zasady rotacji dla klucza przekazującego wcześniej zapisany plik przy użyciu polecenia az keyvault key rotation-policy update interfejsu wiersza polecenia platformy Azure.

az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>

Azure PowerShell

Ustaw zasady rotacji przy użyciu polecenia cmdlet Set-AzKeyVaultKeyRotationPolicy programu Azure PowerShell.

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

Rotacja na żądanie

Rotację kluczy można wywołać ręcznie.

Portal

Kliknij pozycję "Obróć teraz", aby wywołać rotację.

Rotacja na żądanie

Interfejs wiersza polecenia platformy Azure

Użyj polecenia az keyvault key rotate interfejsu wiersza polecenia platformy Azure, aby obrócić klucz.

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

Azure PowerShell

Użyj polecenia cmdlet Azure PowerShell Invoke-AzKeyVaultKeyRotation.

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

Konfigurowanie powiadomienia o bliskiej wygaśnięciu klucza

Konfiguracja powiadomienia o wygaśnięciu klucza usługi Event Grid w pobliżu zdarzenia wygaśnięcia. Jeśli nie można użyć zautomatyzowanego obracania, na przykład w przypadku importowania klucza z lokalnego modułu HSM, możesz skonfigurować powiadomienie o zbliżaniu się wygaśnięcia jako przypomnienie dotyczące rotacji ręcznej lub jako wyzwalacz niestandardowej automatycznej rotacji za pomocą integracji z usługą Event Grid. Możesz skonfigurować powiadomienie z dniami, miesiącami i latami przed wygaśnięciem, aby wyzwolić zdarzenie bliskie wygaśnięcia.

Konfigurowanie powiadomienia

Aby uzyskać więcej informacji na temat powiadomień usługi Event Grid w Key Vault, zobacz Azure Key Vault as Event Grid source (Usługa Azure Key Vault jako źródło usługi Event Grid)

Konfigurowanie rotacji kluczy przy użyciu szablonu usługi ARM

Zasady rotacji kluczy można również skonfigurować przy użyciu szablonów usługi ARM.

Uwaga

Wymaga ona roli "Key Vault Współautor" w Key Vault skonfigurowanej przy użyciu kontroli dostępu opartej na rolach platformy Azure w celu wdrożenia klucza za pośrednictwem płaszczyzny zarządzania.

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

Konfigurowanie ładu zasad rotacji kluczy

Korzystając z usługi Azure Policy, można zarządzać cyklem życia klucza i upewnić się, że wszystkie klucze są skonfigurowane do rotacji w ciągu określonej liczby dni.

Tworzenie i przypisywanie definicji zasad

  1. Przejdź do zasobu zasad
  2. Wybierz pozycję Przypisania w obszarze Tworzenie po lewej stronie Azure Policy.
  3. Wybierz pozycję Przypisz zasady w górnej części strony. Ten przycisk zostanie otwarty na stronie Przypisywanie zasad.
  4. Wprowadź następujące informacje:
  5. Wypełnij wszystkie dodatkowe pola. Przejdź do kart, klikając przyciski Wstecz i Dalej w dolnej części strony.
  6. Wybierz pozycję Przejrzyj i utwórz
  7. Wybierz pozycję Utwórz

Po przypisaniu wbudowanych zasad skanowanie może potrwać do 24 godzin. Po zakończeniu skanowania można zobaczyć wyniki zgodności, takie jak poniżej.

Zrzut ekranu przedstawiający zgodność zasad rotacji kluczy.

Zasoby