Usługa SQL Managed Instance z kluczami zarządzanymi przez klienta

Azure SQL Managed Instance
Azure Key Vault
Azure Private Link

W tym artykule opisano sposób zarządzania własnymi kluczami funkcji Transparent Data Encryption (TDE) dla wystąpień zarządzanych SQL w grupie automatycznego trybu failover między regionami przy użyciu usługi Azure Key Vault.

Architektura

Diagram that shows an architecture for managing TDE keys.

Pobierz plik programu Visio z tą architekturą.

Aby uzyskać większą nadmiarowość kluczy TDE, usługa Azure SQL Managed Instance jest skonfigurowana do używania magazynu kluczy we własnym regionie jako podstawowego i magazynu kluczy w regionie zdalnym jako pomocniczego.

Wystąpienie pomocniczego magazynu kluczy, w regionie zdalnym, ma prywatny punkt końcowy w tym samym regionie co wystąpienie zarządzane SQL. Tak więc, jeśli chodzi o wystąpienie zarządzane SQL, żądania wysyłane do magazynów kluczy podstawowych i pomocniczych są logicznie w tej samej sieci wirtualnej i regionie. Ten projekt umożliwia łatwiejsze reguły zapory lub sieciowej grupy zabezpieczeń. Wiele organizacji używa prywatnego punktu końcowego zamiast uzyskiwać dostęp do publicznego punktu końcowego. Zalecamy użycie prywatnego punktu końcowego.

Przepływ danych

  1. Co 10 minut usługa SQL Managed Instance sprawdza, czy może uzyskać dostęp do otoki TDE w magazynie kluczy zdefiniowanym jako podstawowy.

  2. Jeśli podstawowy magazyn kluczy usługi SQL Managed Instance stanie się niedostępny, to wystąpienie sprawdza magazyn kluczy ustawiony jako pomocniczy. Jeśli ten magazyn kluczy jest również niedostępny, usługa SQL Managed Instance oznaczy bazy danych jako "niedostępne".

Elementy

  • Usługa Key Vault to usługa w chmurze do przechowywania i uzyskiwania dostępu do wpisów tajnych z rozszerzonymi zabezpieczeniami. W tej architekturze jest używana do przechowywania kluczy używanych przez funkcję TDE. Można go również użyć do tworzenia kluczy.
  • Sql Managed Instance to wystąpienie zarządzane na platformie Azure oparte na najnowszej stabilnej wersji programu SQL Server. W tej architekturze proces zarządzania kluczami jest stosowany do danych przechowywanych w usłudze SQL Managed Instance.
  • Usługa Azure Private Link umożliwia dostęp do usług PaaS platformy Azure i usług hostowanych na platformie Azure za pośrednictwem prywatnego punktu końcowego w sieci wirtualnej.

Alternatywy

  • Zamiast używać kluczy TDE zarządzanych przez klienta, można użyć kluczy TDE zarządzanych przez usługę. Gdy używasz kluczy zarządzanych przez usługę, firma Microsoft obsługuje zabezpieczanie i rotację kluczy. Cały proces jest abstrahowany od Ciebie.

  • Alternatywą dla magazynów kluczy w dwóch regionach jest posiadanie tylko jednego w jednym regionie. Usługa SQL Managed Instance może uzyskiwać dostęp do kluczy z magazynu, który znajduje się w innym regionie. Nadal można używać prywatnego punktu końcowego. Ruch do usługi Key Vault jest niski i rzadko, więc każde opóźnienie nie jest zauważalne. Usługa SQL Managed Instance wysyła zapytanie tylko do magazynu, aby sprawdzić, czy klucz istnieje. Nie kopiuje materiału.

Szczegóły scenariusza

W przypadku korzystania z kluczy zarządzanych przez klienta (CMK) określanych również jako bring your own key (BYOK) odpowiadasz za bezpieczeństwo, dostępność i opcjonalną rotację kluczy. Te obowiązki mają kluczowe znaczenie, ponieważ jeśli klucz zostanie utracony, bazy danych i kopie zapasowe również zostaną trwale utracone. W tym artykule opisano proces zarządzania kluczami i przedstawiono opcje umożliwiające podjęcie świadomej decyzji dotyczącej najlepszego procesu biznesowego.

Potencjalne przypadki użycia

Wiele organizacji ma zasady, które wymagają, aby certyfikaty lub klucze szyfrowania zostały utworzone i zarządzane wewnętrznie. Jeśli Twoja organizacja ma podobne zasady, ta architektura może dotyczyć Ciebie. Jeśli klienci wymagają wewnętrznego zarządzania tymi elementami, architektura może być również stosowana do Ciebie. Jeśli żadna z tych sytuacji nie ma zastosowania, rozważ użycie kluczy zarządzanych przez system.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Zalecenia ogólne

Zobacz następujące artykuły:

Zarządzanie kluczami

Metoda rotacji kluczy będzie się różnić w zależności od tego, czego używasz do tworzenia kluczy asymetrycznych TDE. W przypadku korzystania z własnego klucza otoki TDE musisz zdecydować, jak utworzysz ten klucz. Możliwe opcje to:

  • Użyj usługi Key Vault, aby utworzyć klucze. Ta opcja zapewnia, że materiał klucza prywatnego nigdy nie opuszcza usługi Key Vault i nie może być widoczny przez żadnego człowieka lub systemu. Klucze prywatne nie są eksportowalne, ale można ich kopię zapasową i przywrócić do innego magazynu kluczy. Ten punkt jest ważny. Aby mieć ten sam materiał klucza w wielu magazynach kluczy, zgodnie z wymaganiami tego projektu, należy użyć funkcji tworzenia i przywracania kopii zapasowej. Ta opcja ma kilka ograniczeń. Oba magazyny kluczy muszą znajdować się w tej samej lokalizacji geograficznej i subskrypcji platformy Azure. Jeśli tak nie jest, przywracanie nie będzie działać. Jedynym sposobem obejścia tego ograniczenia jest przechowywanie magazynów kluczy w osobnych subskrypcjach i przenoszenie jednej subskrypcji do innego regionu.

  • Wygeneruj klucze asymetryczne w trybie offline przy użyciu narzędzia takiego jak OpenSSL, a następnie zaimportuj klucze do usługi Key Vault. Podczas importowania klucza do usługi Key Vault możesz oznaczyć go jako możliwy do wyeksportowania. Jeśli to zrobisz, możesz wyrzucić klucze po zaimportowaniu ich do usługi Key Vault lub przechowywać je w innym miejscu, na przykład lokalnie lub w innym magazynie kluczy. Ta opcja zapewnia największą elastyczność. Jednak może to być najmniej bezpieczne, jeśli nie upewnisz się, że klucze nie wchodzą w niewłaściwe ręce. System generujący klucze i metodę używaną do umieszczania kluczy w usłudze Key Vault nie są kontrolowane przez platformę Azure. Ten proces można zautomatyzować przy użyciu usług Azure DevOps, Azure Automation lub innego narzędzia aranżacji.

  • Użyj obsługiwanego lokalnego sprzętowego modułu zabezpieczeń (HSM), aby wygenerować klucze. Korzystając z obsługiwanego modułu HSM, można importować klucze do usługi Key Vault z ulepszonymi zabezpieczeniami. Opisane wcześniej ograniczenie dotyczące lokalizacji geograficznej nie ma zastosowania podczas korzystania z modułu HSM. Ta opcja zapewnia wysoki poziom bezpieczeństwa kluczy, ponieważ materiał klucza znajduje się w trzech oddzielnych miejscach (dwa magazyny kluczy na platformie Azure i lokalnie). Ta opcja zapewnia również ten sam poziom elastyczności, jeśli używasz obsługiwanego modułu HSM.

Dostępność

Dodanie usługi Key Vault do architektury staje się krytycznym składnikiem. Co najmniej jeden z magazynów kluczy w projekcie musi być dostępny. Ponadto klucze niezbędne dla funkcji TDE muszą być dostępne. Usługa Azure Monitor Szczegółowe informacje zapewnia kompleksowe monitorowanie usługi Key Vault. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi magazynu kluczy.

Doskonałość operacyjna

Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Omówienie filaru doskonałości operacyjnej.

Po przeniesieniu z kluczy zarządzanych przez usługę do kluczy zarządzanych przez klienta operacje będą:

DevOps

Za pomocą usługi Azure Pipelines w usłudze Azure DevOps można zautomatyzować proces rotacji kluczy.

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

Grupy automatycznego trybu failover usługi SQL Managed Instance działają znacznie lepiej podczas korzystania z sparowanych regionów.

Usługa SQL Managed Instance sprawdza tylko, czy klucz istnieje, i wykonuje to tylko co 10 minut. W związku z tym usługa SQL Managed Instances nie wymaga koligacji regionu z usługą Key Vault. Lokalizacja kluczy TDE nie ma wpływu na wydajność.

Skalowalność

Jeśli chodzi o zarządzanie kluczami TDE, skalowanie nie jest problemem. Rozmiar i częstotliwość żądań są tak małe, że nie trzeba ich skalować.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Największym problemem zabezpieczeń jest zapewnienie bezpieczeństwa klucza otoki TDE i zawsze dostępnego dla usługi SQL Managed Instances. Każda baza danych zaszyfrowana za pośrednictwem funkcji TDE jest niedostępna, jeśli nie może uzyskać dostępu do wymaganego klucza w usłudze Key Vault. Jeśli używasz kluczy zarządzanych przez usługę, nie musisz martwić się o tę kwestie.

Odporność

Każde wystąpienie zarządzane SQL jest skonfigurowane do używania dwóch magazynów kluczy. Jeśli podstawowy klucz TDE wystąpienia zarządzanego SQL jest niedostępny lub niedostępny, wystąpienie próbuje znaleźć klucz z pasującym odciskiem palca w pomocniczym magazynie kluczy.

Optymalizacja kosztów

Aby uzyskać informacje o dodatkowych kosztach zarządzania własnymi kluczami TDE poza dodatkowymi kosztami operacyjnymi, zobacz następujące zasoby:

Aby uzyskać informacje na temat składników opcjonalnych, zobacz następujące zasoby:

Wdrażanie tego scenariusza

Ten scenariusz można wdrożyć przy użyciu następujących szablonów usługi ARM:

Współautorzy

Ten artykuł jest aktualizowany i obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

  • Ahmet Arsan | Starszy architekt rozwiązań w chmurze

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki