Zarządzanie tożsamościami i kluczami na potrzeby szyfrowania TDE przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych

Dotyczy:Azure SQL Database

Uwaga

  • Klucz cmK TDE na poziomie bazy danych jest dostępny dla usługi Azure SQL Database (wszystkie wersje usługi SQL Database). Nie jest ona dostępna dla usługi Azure SQL Managed Instance, lokalnych programu SQL Server, maszyn wirtualnych platformy Azure i usługi Azure Synapse Analytics (dedykowane pule SQL (dawniej SQL DW)).
  • Ten sam przewodnik można zastosować do konfigurowania kluczy zarządzanych przez klienta na poziomie bazy danych w tej samej dzierżawie, wykluczając parametr identyfikatora klienta federacyjnego. Aby uzyskać więcej informacji na temat kluczy zarządzanych przez klienta na poziomie bazy danych, zobacz Transparent Data Encryption (TDE) z kluczami zarządzanymi przez klienta na poziomie bazy danych.

W tym przewodniku przedstawiono kroki tworzenia, aktualizowania i pobierania bazy danych Azure SQL Database z użyciem przezroczystego szyfrowania danych (TDE) i kluczy zarządzanych przez klienta (CMK) na poziomie bazy danych przy użyciu tożsamości zarządzanej przypisanej przez użytkownika w celu uzyskania dostępu do usługi Azure Key Vault. Usługa Azure Key Vault znajduje się w innej dzierżawie firmy Microsoft niż usługa Azure SQL Database. Aby uzyskać więcej informacji, zobacz Cross-tenant-customer-managed keys with transparent data encryption (Klucze zarządzane przez klienta między dzierżawami z przezroczystym szyfrowaniem danych).

Uwaga

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Wymagania wstępne

  • W tym przewodniku założono, że masz dwie dzierżawy firmy Microsoft Entra.
    • Pierwszy składa się z zasobu usługi Azure SQL Database, wielodostępnej aplikacji Firmy Microsoft Entra i tożsamości zarządzanej przypisanej przez użytkownika.
    • Druga dzierżawa zawiera usługę Azure Key Vault.
  • Aby uzyskać kompleksowe instrukcje dotyczące konfigurowania klucza zarządzanego przez wielu dzierżawców i uprawnień RBAC niezbędnych do konfigurowania aplikacji firmy Microsoft Entra i usługi Azure Key Vault, zapoznaj się z jednym z następujących przewodników:
  • Interfejs wiersza polecenia platformy Azure w wersji 2.52.0 lub nowszej.
  • Moduł Az programu PowerShell w wersji 10.3.0 lub nowszej.
  • Uprawnienia kontroli dostępu opartej na rolach niezbędne dla klucza cmK na poziomie bazy danych są tymi samymi uprawnieniami, które są wymagane dla klucza zarządzanego na poziomie serwera. W szczególności te same uprawnienia kontroli dostępu opartej na rolach, które mają zastosowanie w przypadku korzystania z usługi Azure Key Vault, tożsamości zarządzanych i wielodostępnych kluczy cmK dla funkcji TDE na poziomie serwera, mają zastosowanie na poziomie bazy danych. Aby uzyskać więcej informacji na temat zarządzania kluczami i zasad dostępu, zobacz Zarządzanie kluczami.

Wymagane zasoby w pierwszej dzierżawie

Na potrzeby tego samouczka zakładamy, że pierwsza dzierżawa należy do niezależnego dostawcy oprogramowania (ISV), a druga dzierżawa pochodzi z klienta. Aby uzyskać więcej informacji na temat tego scenariusza, zobacz Cross-tenant-customer-managed keys with transparent data encryption (Klucze zarządzane przez klienta między dzierżawami z przezroczystym szyfrowaniem danych).

Aby można było skonfigurować funkcję TDE dla usługi Azure SQL Database przy użyciu wielodostępnego klucza zarządzanego, musimy mieć wielodostępną aplikację Firmy Microsoft Entra skonfigurowaną z przypisaną przez użytkownika tożsamością zarządzaną przypisaną jako poświadczenie tożsamości federacyjnej dla aplikacji. Postępuj zgodnie z jednym z przewodników w sekcji Wymagania wstępne.

  1. W pierwszej dzierżawie, w której chcesz utworzyć usługę Azure SQL Database, utwórz i skonfiguruj wielodostępną aplikację firmy Microsoft Entra.

  2. Utwórz tożsamość zarządzaną przypisaną przez użytkownika.

  3. Skonfiguruj tożsamość zarządzaną przypisaną przez użytkownika jako poświadczenia tożsamości federacyjnej dla aplikacji z wieloma dzierżawami.

  4. Zarejestruj nazwę aplikacji i identyfikator aplikacji. Można to znaleźć w witrynie Azure Portal>Microsoft Entra ID>Dla przedsiębiorstw aplikacji i wyszukać utworzoną aplikację.

Wymagane zasoby w drugiej dzierżawie

Uwaga

Moduły usług Azure AD i MSOnline programu PowerShell są przestarzałe od 30 marca 2024 r. Aby dowiedzieć się więcej, przeczytaj aktualizację o wycofaniu. Po tej dacie obsługa tych modułów jest ograniczona do pomocy dotyczącej migracji do zestawu MICROSOFT Graph PowerShell SDK i poprawek zabezpieczeń. Przestarzałe moduły będą nadal działać do 30 marca 2025 r.

Zalecamy migrację do programu Microsoft Graph PowerShell w celu interakcji z identyfikatorem Entra firmy Microsoft (dawniej Azure AD). W przypadku typowych pytań dotyczących migracji zapoznaj się z często zadawanymi pytaniami dotyczącymi migracji. Uwaga: wersje 1.0.x usługi MSOnline mogą wystąpić zakłócenia po 30 czerwca 2024 r.

  1. W drugiej dzierżawie, w której znajduje się usługa Azure Key Vault, utwórz jednostkę usługi (aplikację) przy użyciu identyfikatora aplikacji z zarejestrowanej aplikacji z pierwszej dzierżawy. Oto kilka przykładów rejestrowania aplikacji wielodostępnej. Zastąp <TenantID> wartości i <ApplicationID> identyfikatorem dzierżawy klienta z identyfikatora entra firmy Microsoft i identyfikatorem aplikacji z aplikacji wielodostępnej, odpowiednio:

    • PowerShell:

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • Interfejs wiersza polecenia platformy Azure:

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Przejdź do witryny Azure Portal>w witrynie Microsoft Entra ID>Dla przedsiębiorstw aplikacji i wyszukaj utworzoną aplikację.

  3. Utwórz usługę Azure Key Vault , jeśli jej nie masz, i utwórz klucz.

  4. Utwórz lub ustaw zasady dostępu.

    1. Wybierz uprawnienia Pobierz, Zawijaj klucz, Odpakuj klucz w obszarze Uprawnienia klucza podczas tworzenia zasad dostępu.
    2. Wybierz aplikację wielodostępną utworzoną w pierwszym kroku w opcji Podmiot zabezpieczeń podczas tworzenia zasad dostępu.

    Zrzut ekranu przedstawiający menu zasad dostępu magazynu kluczy w witrynie Azure Portal.

  5. Po utworzeniu zasad dostępu i klucza pobierz klucz z usługi Key Vault i zapisz identyfikator klucza.

Tworzenie nowej bazy danych Azure SQL Database z kluczami zarządzanymi przez klienta na poziomie bazy danych

Poniżej przedstawiono przykłady tworzenia bazy danych w usłudze Azure SQL Database przy użyciu tożsamości zarządzanej przypisanej przez użytkownika oraz sposobu ustawiania klucza zarządzanego przez klienta między dzierżawami na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.

  1. Przejdź do strony Wybierz wdrożenie SQL w witrynie Azure Portal.

  2. Jeśli jeszcze nie zalogowano się do witryny Azure Portal, zaloguj się po wyświetleniu monitu.

  3. W obszarze Bazy danych SQL pozostaw wartość Typ zasobu ustawioną na Pojedyncza baza danych, a następnie wybierz pozycję Utwórz.

  4. Na karcie Podstawy formularza Tworzenie bazy danych SQL Database w obszarze Szczegóły projektu wybierz odpowiednią subskrypcję platformy Azure, grupę zasobów i serwer dla bazy danych. Następnie użyj unikatowej nazwy bazy danych. Jeśli nie utworzono serwera logicznego dla usługi Azure SQL Database, zobacz Tworzenie serwera skonfigurowanego przy użyciu funkcji TDE z kluczem zarządzanym przez klienta (CMK) między dzierżawami, aby uzyskać informacje.

  5. Po wyświetleniu karty Zabezpieczenia wybierz pozycję Konfiguruj przezroczyste szyfrowanie danych.

    Zrzut ekranu witryny Azure Portal i menu Zabezpieczenia podczas tworzenia bazy danych Azure SQL Database.

  6. W menu Transparent Data Encryption wybierz pozycję Klucz zarządzany przez klienta (CMK) na poziomie bazy danych.

    Zrzut ekranu przedstawiający menu Transparent Data Encryption w witrynie Azure Portal.

  7. W obszarze Tożsamość zarządzana przypisana przez użytkownika wybierz pozycję Konfiguruj , aby włączyć tożsamość bazy danych i dodaj tożsamość zarządzaną przypisaną przez użytkownika do zasobu, jeśli żądana tożsamość nie jest wyświetlana w menu Tożsamość . Następnie wybierz pozycję Zastosuj.

    Zrzut ekranu przedstawiający menu Tożsamość witryny Azure Portal.

    Uwaga

    Tożsamość klienta federacyjnego można skonfigurować tutaj, jeśli konfigurujesz wielodostępny klucz zarządzania certyfikatami klienta dla funkcji TDE.

  8. W menu Transparent Data Encryption wybierz pozycję Zmień klucz. Wybierz odpowiednią subskrypcję, magazyn kluczy, klucz i wersję klucza zarządzanego przez klienta, która ma być używana na potrzeby funkcji TDE. Wybierz przycisk Wybierz. Po wybraniu klucza możesz również dodać dodatkowe klucze bazy danych zgodnie z potrzebami przy użyciu identyfikatora URI usługi Azure Key Vault (identyfikatora obiektu) w menu Transparent Data Encryption .

    Automatyczne obracanie kluczy można również włączyć na poziomie bazy danych przy użyciu pola wyboru Automatycznie obracanie klucza w menu Transparent Data Encryption .

    Zrzut ekranu przedstawiający menu przezroczystego szyfrowania danych w witrynie Azure Portal odwołujące się do dodawania dodatkowych kluczy.

  9. Wybierz pozycję Zastosuj , aby kontynuować tworzenie bazy danych.

  10. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony

  11. Na stronie Przeglądanie i tworzenie po przejrzeniu wybierz pozycję Utwórz.

Uwaga

Tworzenie bazy danych zakończy się niepowodzeniem, jeśli tożsamość zarządzana przypisana przez użytkownika nie ma odpowiednich uprawnień w magazynie kluczy. Tożsamość zarządzana przypisana przez użytkownika będzie potrzebować uprawnień Get, wrapKey i unwrapKey w magazynie kluczy. Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane na potrzeby przezroczystego szyfrowania danych przy użyciu klucza zarządzanego przez klienta.

Aktualizowanie istniejącej bazy danych Azure SQL Database przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych

Poniżej przedstawiono przykłady aktualizowania istniejącej bazy danych w usłudze Azure SQL Database przy użyciu tożsamości zarządzanej przypisanej przez użytkownika oraz sposobu ustawiania klucza zarządzanego przez klienta między dzierżawami na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.

  1. W witrynie Azure Portal przejdź do zasobu bazy danych SQL, który chcesz zaktualizować przy użyciu klucza zarządzanego przez klienta na poziomie bazy danych.

  2. W obszarze Zabezpieczenia wybierz pozycję Tożsamość. Dodaj tożsamość zarządzaną przypisaną przez użytkownika dla tej bazy danych, a następnie wybierz pozycję Zapisz

  3. Teraz przejdź do menu Szyfrowanie danych w obszarze Zabezpieczenia dla bazy danych. Wybierz pozycję Klucz zarządzany przez klienta (CMK) na poziomie bazy danych. Tożsamość bazy danych dla bazy danych powinna być już włączona, ponieważ tożsamość została skonfigurowana w ostatnim kroku.

  4. Wybierz pozycję Zmień klucz. Wybierz odpowiednią subskrypcję, magazyn kluczy, klucz i wersję klucza zarządzanego przez klienta, która ma być używana na potrzeby funkcji TDE. Wybierz przycisk Wybierz. Po wybraniu klucza możesz również dodać dodatkowe klucze bazy danych w razie potrzeby przy użyciu identyfikatora URI usługi Azure Key Vault (identyfikatora obiektu) w menu Szyfrowanie danych .

    Zaznacz pole wyboru Automatyczne obracanie klucza, jeśli chcesz włączyć automatyczną rotację kluczy na poziomie bazy danych.

    Zrzut ekranu przedstawiający menu Transparent Data Encryption w witrynie Azure Portal podczas aktualizowania istniejącej bazy danych.

  5. Wybierz pozycję Zapisz.

Wyświetlanie ustawień klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database

Poniżej przedstawiono przykłady pobierania kluczy zarządzanych przez klienta na poziomie bazy danych dla bazy danych. Zasób usługi Microsoft.Sql/servers/databases ARM domyślnie pokazuje tylko funkcję ochrony TDE i tożsamość zarządzaną skonfigurowaną w bazie danych. Aby rozwinąć pełną listę kluczy, użyj parametru . -ExpandKeyList Ponadto filtry, takie jak -KeysFilter "current" i wartość punktu w czasie (na przykład 2023-01-01), mogą służyć do pobierania bieżących kluczy używanych i kluczy używanych w przeszłości w określonym punkcie w czasie. Te filtry są obsługiwane tylko dla poszczególnych zapytań bazy danych, a nie dla zapytań na poziomie serwera.

Aby wyświetlić klucze zarządzane przez klienta na poziomie bazy danych w witrynie Azure Portal, przejdź do menu Szyfrowanie danych zasobu bazy danych SQL.

Wyświetlanie listy wszystkich kluczy na serwerze logicznym

Aby pobrać listę wszystkich kluczy (a nie tylko podstawowej funkcji ochrony) używanej przez każdą bazę danych na serwerze, musi być indywidualnie odpytywane za pomocą filtrów kluczy. Poniżej przedstawiono przykład zapytania programu PowerShell, aby wyświetlić listę poszczególnych kluczy na serwerze logicznym.

Użyj polecenia cmdlet Get-AzSqlDatabase.

$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}

Zmiana klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database

W przypadku niedostępnej funkcji ochrony TDE zgodnie z opisem w temacie Transparent Data Encryption (TDE) z kluczem CMK po skorygowaniu dostępu do klucza można użyć operacji ponownego udostępnienia bazy danych. Zapoznaj się z poniższymi instrukcjami lub poleceniami, aby zapoznać się z przykładami.

Korzystając z witryny Azure Portal, znajdź zasób bazy danych SQL. Po wybraniu zasobu bazy danych SQL przejdź do karty Transparent Data Encryption w menu Szyfrowanie danych w obszarze Ustawienia zabezpieczeń. Jeśli baza danych utraciła dostęp do usługi Azure Key Vault, zostanie wyświetlony przycisk Odwołuj klucz i będzie dostępna opcja ponownego dopasowania istniejącego klucza, wybierając pozycję Ponów próbę istniejącego klucza lub innego klucza, wybierając pozycję Wybierz klucz kopii zapasowej.

Przywracanie klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database

Bazę danych skonfigurowaną z kluczem cmK na poziomie bazy danych można przywrócić do szyfrowania na poziomie serwera, jeśli serwer jest skonfigurowany przy użyciu klucza zarządzanego przez usługę przy użyciu następujących poleceń.

Aby przywrócić ustawienie klucza zarządzanego przez klienta na poziomie bazy danych na klucz szyfrowania na poziomie serwera w witrynie Azure Portal, przejdź do karty Transparent Data Encryption w menu Szyfrowanie danych zasobu bazy danych SQL. Wybierz pozycję Klucz szyfrowania na poziomie serwera i wybierz pozycję Zapisz , aby zapisać ustawienia.

Uwaga

Aby można było użyć ustawienia Klucz szyfrowania na poziomie serwera dla poszczególnych baz danych, należy skonfigurować serwer logiczny usługi Azure SQL Database do używania klucza zarządzanego przez usługę dla funkcji TDE.

Następne kroki

Zapoznaj się z następującą dokumentacją dotyczącą różnych operacji cmK na poziomie bazy danych: