Udostępnij za pośrednictwem


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

Omówienie

Automatyczna rotacja kluczy kryptograficznych w usłudze Key Vault umożliwia użytkownikom skonfigurowanie usługi Key Vault w celu 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 magazynowanych 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

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

Aby uzyskać więcej informacji na temat używania modelu uprawnień RBAC usługi 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 "Obróć", "Ustaw zasady rotacji" i "Pobierz zasady rotacji" uprawnienia klucza do zarządzania zasadami rotacji kluczy.

Zasady rotacji kluczy

Zasady rotacji kluczy umożliwiają użytkownikom konfigurowanie powiadomień rotacji i powiadomień 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 na nowo obrócony klucz. 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 to ustawienia "Czas wygaśnięcia" dla zasad rotacji i "Data wygaśnięcia" ustawionego na kluczu.
  • Czas rotacji: interwał rotacji klucza, minimalna wartość to 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 to ustawienia "Czas wygaśnięcia" dla zasad rotacji i "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 do automatycznego odświeżania 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, który został użyty do operacji szyfrowania/zawijania, aby uniknąć zakłóceń w usługach. Wszystkie usługi platformy Azure są obecnie zgodnie z tym 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 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)}

Rotacja na żądanie

Rotacja kluczy może być wywoływana ręcznie.

Portal

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

Rotacja na żądanie

Interfejs wiersza polecenia platformy Azure

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

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

Azure PowerShell

Użyj polecenia cmdlet Invoke-AzKeyVaultKeyRotation dla programu Azure PowerShell.

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

Konfigurowanie powiadomienia o zbliżające się 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 zaimportowania klucza z lokalnego modułu HSM, możesz skonfigurować powiadomienie o niemal wygaśnięciu jako przypomnienie dotyczące rotacji ręcznej lub jako wyzwalacz niestandardowej automatycznej rotacji za pośrednictwem integracji z usługą Event Grid. Możesz skonfigurować powiadomienie z dniami, miesiącami i latami przed wygaśnięciem, aby wyzwolić zdarzenie bliskiego wygaśnięcia.

Konfigurowanie powiadomienia

Aby uzyskać więcej informacji na temat powiadomień usługi Event Grid w usłudze Key Vault, zobacz 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 "Współautor usługi Key Vault" w usłudze 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żesz 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 usługi 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. Nawiguj na kartach 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 wykonanie skanowania 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