Tożsamości zarządzane na potrzeby przezroczystego szyfrowania danych przy użyciu klucza zarządzanego przez klienta
Dotyczy: Azure SQL Database Azure SQL Managed Instance
Microsoft Entra ID, dawniej Azure Active Directory, udostępnia automatycznie zarządzaną tożsamość do uwierzytelniania w dowolnej usłudze platformy Azure, która obsługuje uwierzytelnianie firmy Microsoft Entra, takie jak Azure Key Vault, bez ujawniania poświadczeń w kodzie. Aby uzyskać więcej informacji, zobacz Typy tożsamości zarządzanych na platformie Azure.
Tożsamości zarządzane mogą mieć dwa typy:
- Przypisana przez system
- Przypisana przez użytkownika
Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane w usłudze Microsoft Entra ID dla usługi Azure SQL.
W przypadku funkcji TDE z kluczem zarządzanym przez klienta (CMK) w usłudze Azure SQL tożsamość zarządzana na serwerze jest używana do zapewniania praw dostępu do serwera w magazynie kluczy. Na przykład tożsamość zarządzana przypisana przez system serwera powinna być dostarczana z uprawnieniami magazynu kluczy przed włączeniem funkcji TDE z kluczem CMK na serwerze.
Oprócz tożsamości zarządzanej przypisanej przez system, która jest już obsługiwana w przypadku funkcji TDE z kluczem cmK, tożsamość zarządzana przypisana przez użytkownika (UMI) przypisana do serwera może służyć do zezwalania serwerowi na dostęp do magazynu kluczy. Warunkiem wstępnym włączenia dostępu do magazynu kluczy jest upewnienie się, że tożsamość zarządzana przypisana przez użytkownika została zapewniona przy użyciu uprawnień Get, wrapKey i unwrapKey w magazynie kluczy. Ponieważ tożsamość zarządzana przypisana przez użytkownika jest zasobem autonomicznym, który można utworzyć i udzielić dostępu do magazynu kluczy, funkcja TDE z kluczem zarządzanym przez klienta może być teraz włączona podczas tworzenia serwera lub bazy danych.
Uwaga
Aby przypisać tożsamość zarządzaną przypisaną przez użytkownika do serwera logicznego lub wystąpienia zarządzanego, użytkownik musi mieć rolę Współautor programu SQL Server lub Współautor RBAC wystąpienia zarządzanego SQL wraz z inną rolą RBAC platformy Azure zawierającą rolę Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action.
Korzyści wynikające z używania usługi UMI na potrzeby funkcji TDE zarządzanej przez klienta
Umożliwia wstępnie autoryzowanie dostępu do magazynu kluczy dla serwerów logicznych usługi Azure SQL lub wystąpień zarządzanych przez utworzenie tożsamości zarządzanej przypisanej przez użytkownika i przyznanie jej dostępu do magazynu kluczy, nawet przed utworzeniem serwera lub bazy danych
Umożliwia tworzenie serwera logicznego usługi Azure SQL z włączoną funkcją TDE i kluczem CMK
Umożliwia przypisanie tej samej tożsamości zarządzanej przypisanej przez użytkownika do wielu serwerów, eliminując konieczność indywidualnego włączenia przypisanej przez system tożsamości zarządzanej dla każdego serwera logicznego usługi Azure SQL lub wystąpienia zarządzanego oraz zapewnienia mu dostępu do magazynu kluczy
Zapewnia możliwość wymuszania klucza zarządzanego przez klienta w czasie tworzenia serwera za pomocą dostępnych wbudowanych zasad platformy Azure
Zagadnienia dotyczące korzystania z interfejsu użytkownika dla funkcji TDE zarządzanej przez klienta
- Domyślnie funkcja TDE w usłudze Azure SQL używa podstawowej tożsamości zarządzanej przypisanej przez użytkownika na serwerze na potrzeby dostępu do magazynu kluczy. Jeśli do serwera nie przypisano tożsamości przypisanych przez użytkownika, tożsamość zarządzana przypisana przez system serwera jest używana do uzyskiwania dostępu do magazynu kluczy.
- W przypadku korzystania z tożsamości zarządzanej przypisanej przez użytkownika dla funkcji TDE z kluczem cmK przypisz tożsamość do serwera i ustaw ją jako podstawową tożsamość serwera
- Tożsamość zarządzana przypisana przez użytkownika podstawowa wymaga ciągłego dostępu do magazynu kluczy (get, wrapKey, unwrapKey ). Jeśli dostęp tożsamości do magazynu kluczy zostanie odwołany lub nie podano wystarczających uprawnień, baza danych zostanie przeniesiona do stanu Niedostępny
- Jeśli tożsamość zarządzana przypisana przez użytkownika podstawowa jest aktualizowana do innej tożsamości zarządzanej przypisanej przez użytkownika, nowa tożsamość musi mieć wymagane uprawnienia do magazynu kluczy przed zaktualizowaniem podstawowego
- Aby przełączyć serwer z przypisanej przez użytkownika do przypisanej przez system tożsamości zarządzanej na potrzeby dostępu do magazynu kluczy, podaj tożsamość zarządzaną przypisaną przez system z wymaganymi uprawnieniami magazynu kluczy, a następnie usuń wszystkie tożsamości zarządzane przypisane przez użytkownika z serwera
Ważne
Podstawowa tożsamość zarządzana przypisana przez użytkownika używana na potrzeby funkcji TDE z kluczem cmK nie powinna być usuwana z platformy Azure. Usunięcie tej tożsamości doprowadzi do utraty dostępu do magazynu kluczy i baz danych staje się niedostępny.
Ograniczenia i znane problemy
- Jeśli magazyn kluczy znajduje się za siecią wirtualną korzystającą z zapory, opcja Zezwalaj zaufanym usługom firmy Microsoft na obejście tej zapory musi być włączona w menu Sieć magazynu kluczy, jeśli chcesz użyć tożsamości zarządzanej przypisanej przez użytkownika lub tożsamości zarządzanej przypisanej przez system. Po włączeniu tej opcji dostępne klucze nie mogą być wyświetlane w menu TDE programu SQL Server w witrynie Azure Portal. Aby ustawić pojedynczy klucz zarządzania kluczami, należy użyć identyfikatora klucza. Jeśli opcja Zezwalaj zaufanym usługom firmy Microsoft na obejście tej zapory nie jest włączona, zwracany jest następujący błąd:
Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subsriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
- Jeśli wystąpi powyższy błąd, sprawdź, czy magazyn kluczy znajduje się za siecią wirtualną lub zaporą, i upewnij się, że opcja Zezwalaj zaufanym usługom firmy Microsoft na obejście tej zapory jest włączona.
- Tożsamość zarządzana przypisana przez użytkownika dla usługi SQL Managed Instances jest obecnie obsługiwana tylko w magazynach kluczy z włączonymi dostępem publicznym ze wszystkich sieci. Nie jest obsługiwana, gdy zapora usługi AKV filtruje określone sieci wirtualne i adresy IP lub używa połączeń prywatnych punktów końcowych.
- Jeśli wiele tożsamości zarządzanych przypisanych przez użytkownika jest przypisanych do serwera lub wystąpienia zarządzanego, jeśli pojedyncza tożsamość zostanie usunięta z serwera przy użyciu okienka Tożsamość w witrynie Azure Portal, operacja zakończy się pomyślnie, ale tożsamość nie zostanie usunięta z serwera. Usunięcie wszystkich tożsamości zarządzanych przypisanych przez użytkownika ze sobą z witryny Azure Portal działa pomyślnie.
- Po skonfigurowaniu serwera lub wystąpienia zarządzanego przy użyciu funkcji TDE zarządzanej przez klienta, a tożsamości zarządzane przypisane przez system i przypisane przez użytkownika są włączone na serwerze, usunięcie tożsamości zarządzanych przypisanych przez użytkownika z serwera bez uprzedniego udzielenia przypisanej przez system tożsamości zarządzanej do magazynu kluczy powoduje wystąpienie nieoczekiwanego komunikatu o błędzie . Upewnij się, że tożsamość zarządzana przypisana przez system została udostępniona przed usunięciem podstawowej tożsamości zarządzanej przypisanej przez użytkownika (i wszystkich innych tożsamości zarządzanych przypisanych przez użytkownika) z serwera.