Konfigurowanie kluczy zarządzanych przez klienta na potrzeby szyfrowania danych w usłudze Azure AI Search

Usługa Azure AI Search automatycznie szyfruje dane magazynowane przy użyciu kluczy zarządzanych przez usługę. Jeśli potrzebna jest większa ochrona, możesz uzupełnić szyfrowanie domyślne inną warstwą szyfrowania przy użyciu kluczy tworzonych i zarządzanych w usłudze Azure Key Vault.

W tym artykule opisano kroki konfigurowania klucza zarządzanego przez klienta (CMK) lub "bring-your-own-key" (BYOK). Oto kilka kwestii, o których należy pamiętać:

  • Szyfrowanie CMK jest wprowadzane na poszczególnych obiektach. Jeśli potrzebujesz klucza zarządzanego przez usługę wyszukiwania, ustaw zasady wymuszania.

  • Szyfrowanie klucza zarządzanego przez klienta zależy od usługi Azure Key Vault. Możesz utworzyć własne klucze szyfrowania i przechowywać je w magazynie kluczy lub użyć interfejsów API usługi Azure Key Vault do generowania kluczy szyfrowania. Usługa Azure Key Vault musi znajdować się w tej samej subskrypcji i dzierżawie co usługa Azure AI Search. Usługa Azure AI Search pobiera klucz zarządzany przez połączenie za pośrednictwem tożsamości systemowej lub zarządzanej przez użytkownika. To zachowanie wymaga, aby obie usługi współużytkować tę samą dzierżawę.

  • Szyfrowanie CMK staje się operacyjne po utworzeniu obiektu. Nie można szyfrować obiektów, które już istnieją. Szyfrowanie cmK odbywa się za każdym razem, gdy obiekt jest zapisywany na dysku, dane magazynowane w magazynie długoterminowym lub dane tymczasowe w magazynie krótkoterminowym. W przypadku klucza CMK dysk nigdy nie widzi niezaszyfrowanych danych.

Uwaga

Jeśli indeks jest zaszyfrowany kluczem CMK, jest dostępny tylko wtedy, gdy usługa wyszukiwania ma dostęp do klucza. Jeśli dostęp zostanie odwołany, indeks jest bezużyteczny i nie można skalować usługi do czasu usunięcia indeksu lub przywrócenia dostępu do klucza.

Zaszyfrowane obiekty cmK

Obiekty, które można zaszyfrować, obejmują indeksy, listy synonimów, indeksatory, źródła danych i zestawy umiejętności. Szyfrowanie jest obliczanie kosztowne do odszyfrowywania, więc szyfrowana jest tylko wrażliwa zawartość.

Szyfrowanie odbywa się za pośrednictwem następującej zawartości:

  • Cała zawartość w indeksach i listach synonimów, w tym opisy.

  • W przypadku indeksatorów, źródeł danych i zestawów umiejętności szyfrowane są tylko te pola, które przechowują parametry połączenia, opisy, klucze i dane wejściowe użytkownika. Na przykład zestawy umiejętności mają klucze usług sztucznej inteligencji platformy Azure, a niektóre umiejętności akceptują dane wejściowe użytkownika, takie jak jednostki niestandardowe. W obu przypadkach klucze i dane wejściowe użytkownika w umiejętności są szyfrowane.

Pełne podwójne szyfrowanie

Wprowadzenie szyfrowania CMK powoduje dwukrotne szyfrowanie zawartości. W przypadku obiektów i pól zanotowanych w poprzedniej sekcji zawartość jest najpierw szyfrowana przy użyciu klucza zarządzanego przez firmę Microsoft. Zawartość jest podwójnie szyfrowana na dyskach danych na potrzeby długoterminowego przechowywania i na dyskach tymczasowych używanych do przechowywania krótkoterminowego.

Włączenie szyfrowania CMK zwiększa rozmiar indeksu i obniża wydajność zapytań. Na podstawie obserwacji do tej pory można spodziewać się wzrostu o 30–60 procent w czasie zapytań, chociaż rzeczywista wydajność różni się w zależności od definicji indeksu i typów zapytań. Ponieważ wydajność jest zmniejszona, zalecamy włączenie tej funkcji tylko dla indeksów, które naprawdę tego wymagają.

Mimo że podwójne szyfrowanie jest teraz dostępne we wszystkich regionach, obsługa została wdrożona w dwóch fazach:

  • Pierwsze wdrożenie miało miejsce 1 sierpnia 2020 r. i obejmowało pięć regionów wymienionych poniżej. usługa wyszukiwania utworzone w następujących regionach obsługują klucz cmK dla dysków danych, ale nie dysków tymczasowych:

    • Zachodnie stany USA 2
    • Wschodnie stany USA
    • South Central US
    • US Gov Wirginia
    • US Gov Arizona
  • Drugie wdrożenie 13 maja 2021 r. dodało szyfrowanie dysków tymczasowych i rozszerzone szyfrowanie cmK we wszystkich obsługiwanych regionach.

    Jeśli używasz klucza cmK z usługi utworzonej podczas pierwszego wdrożenia, a także chcesz szyfrować kluczami cmK na dyskach tymczasowych, musisz utworzyć nową usługę wyszukiwania w wybranym regionie i ponownie wdrożyć zawartość.

Wymagania wstępne

W tym scenariuszu są używane następujące narzędzia i usługi.

Powinien istnieć klient wyszukiwania, który może utworzyć zaszyfrowany obiekt. W tym kodzie odwołujesz się do klucza magazynu kluczy i informacji o rejestracji aplikacji. Ten kod może być działającą aplikacją lub prototypowym kodem, takim jak przykładowy kod C# DotNetHowToEncryptionUsingCMK.

Napiwek

Za pomocą klienta REST lub programu Azure PowerShell można tworzyć indeksy i mapy synonimów, które zawierają parametr klucza szyfrowania. Możesz również użyć zestawów SDK platformy Azure. Obsługa portalu dodawania klucza do indeksów lub map synonimów nie jest obsługiwana.

Porady dotyczące usługi Key Vault

Jeśli dopiero zaczynasz korzystać z usługi Azure Key Vault, zapoznaj się z tym przewodnikiem Szybki start, aby dowiedzieć się więcej o podstawowych zadaniach: Ustawianie i pobieranie wpisu tajnego z usługi Azure Key Vault przy użyciu programu PowerShell. Poniżej przedstawiono kilka wskazówek dotyczących korzystania z usługi Key Vault:

  • Użyj jak najwięcej magazynów kluczy, ile potrzebujesz. Klucze zarządzane mogą znajdować się w różnych magazynach kluczy. Usługa wyszukiwania może mieć wiele zaszyfrowanych obiektów, z których każdy jest szyfrowany przy użyciu innego klucza szyfrowania zarządzanego przez klienta, przechowywanych w różnych magazynach kluczy.

  • Włącz rejestrowanie w usłudze Key Vault, aby można było monitorować użycie klucza.

  • Pamiętaj, aby postępować zgodnie ze ścisłymi procedurami podczas rutynowej rotacji kluczy magazynu kluczy i wpisów tajnych aplikacji usługi Active Directory oraz rejestracji. Zawsze aktualizuj całą zaszyfrowaną zawartość , aby używać nowych wpisów tajnych i kluczy przed usunięciem starych. Jeśli przegapisz ten krok, nie można odszyfrować zawartości.

1 — Włączanie ochrony przed przeczyszczaniem

W pierwszym kroku upewnij się, że w magazynie kluczy włączono ochronę usuwania nietrwałego i przeczyszczania. Ze względu na charakter szyfrowania za pomocą kluczy zarządzanych przez klienta nikt nie może pobrać danych, jeśli klucz usługi Azure Key Vault zostanie usunięty.

Aby zapobiec utracie danych spowodowanych przypadkowymi usunięciami kluczy usługi Key Vault, należy włączyć ochronę przed usuwaniem nietrwałym i przeczyszczeniem w magazynie kluczy. Usuwanie nietrwałe jest domyślnie włączone, więc napotkasz problemy tylko wtedy, gdy celowo je wyłączysz. Ochrona przed przeczyszczaniem nie jest domyślnie włączona, ale jest wymagana do szyfrowania kluczy zarządzanych przez klienta w usłudze Azure AI Search.

Obie właściwości można ustawić przy użyciu portalu, programu PowerShell lub poleceń interfejsu wiersza polecenia platformy Azure.

  1. Zaloguj się do witryny Azure Portal i otwórz stronę przeglądu magazynu kluczy.

  2. Na stronie Przegląd w obszarze Podstawy włącz ochronę przed usuwaniem nietrwałym i przeczyszczanie.

2 — Tworzenie klucza w usłudze Key Vault

Pomiń generowanie kluczy, jeśli masz już klucz w usłudze Azure Key Vault, którego chcesz użyć, ale zbierz identyfikator klucza. Te informacje są potrzebne podczas tworzenia zaszyfrowanego obiektu.

  1. Zaloguj się do witryny Azure Portal i otwórz stronę przeglądu magazynu kluczy.

  2. Wybierz pozycję Klucze po lewej stronie, a następnie wybierz pozycję + Generuj/Importuj.

  3. W okienku Tworzenie klucza z listy Opcje wybierz metodę, której chcesz użyć do utworzenia klucza. Możesz wygenerować nowy klucz, przekazaćistniejący klucz lub użyć opcji Przywróć kopię zapasową, aby wybrać kopię zapasową klucza.

  4. Wprowadź nazwę klucza i opcjonalnie wybierz inne właściwości klucza.

  5. Wybierz pozycję Utwórz , aby rozpocząć wdrażanie.

  6. Wybierz klucz, wybierz bieżącą wersję, a następnie zanotuj identyfikator klucza. Składa się z identyfikatora URI wartości klucza, nazwy klucza i wersji klucza. Potrzebny jest identyfikator do zdefiniowania zaszyfrowanego indeksu w usłudze Azure AI Search.

    Tworzenie nowego klucza magazynu kluczy

3 — Tworzenie podmiotu zabezpieczeń

Istnieje kilka opcji uzyskiwania dostępu do klucza szyfrowania w czasie wykonywania. Najprostszym podejściem jest pobranie klucza przy użyciu tożsamości zarządzanej i uprawnień usługi wyszukiwania. Możesz użyć tożsamości systemowej lub zarządzanej przez użytkownika. Dzięki temu można pominąć kroki rejestracji aplikacji i wpisów tajnych aplikacji oraz uprościć definicję klucza szyfrowania.

Alternatywnie możesz utworzyć i zarejestrować aplikację Firmy Microsoft Entra. Usługa wyszukiwania udostępnia identyfikator aplikacji dla żądań.

Tożsamość zarządzana umożliwia usłudze wyszukiwania uwierzytelnianie w usłudze Azure Key Vault bez przechowywania poświadczeń (ApplicationID lub ApplicationSecret) w kodzie. Cykl życia tej tożsamości zarządzanej jest powiązany z cyklem życia usługi wyszukiwania, który może mieć tylko jedną tożsamość zarządzaną. Aby uzyskać więcej informacji na temat sposobu działania tożsamości zarządzanych, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure.

  1. Ustaw usługę wyszukiwania jako zaufaną usługę.

    Włączanie tożsamości zarządzanej przypisanej przez system

Warunki, które uniemożliwiają wdrożenie tego podejścia, obejmują:

  • Nie można bezpośrednio udzielić uprawnień dostępu usługi wyszukiwania do magazynu kluczy (na przykład jeśli usługa wyszukiwania znajduje się w innej dzierżawie identyfikatora Entra firmy Microsoft niż usługa Azure Key Vault).

  • Pojedyncza usługa wyszukiwania jest wymagana do hostowania wielu zaszyfrowanych indeksów lub map synonimów, z których każdy korzysta z innego klucza niż inny magazyn kluczy, w którym każdy magazyn kluczy musi używać innej tożsamości do uwierzytelniania. Ponieważ usługa wyszukiwania może mieć tylko jedną tożsamość zarządzaną, wymaganie dotyczące wielu tożsamości wyklucza uproszczone podejście dla danego scenariusza.

4 — Udzielanie uprawnień

W tym kroku utworzysz zasady dostępu w usłudze Key Vault. Te zasady umożliwiają aplikacji zarejestrowanej w usłudze Microsoft Entra ID uprawnienie do korzystania z klucza zarządzanego przez klienta.

Uprawnienia dostępu można odwołać w dowolnym momencie. Po odwołaniu dowolny indeks usługi wyszukiwania lub mapa synonimów używająca tego magazynu kluczy stają się bezużyteczne. Przywracanie uprawnień dostępu do magazynu kluczy w późniejszym czasie przywraca dostęp do indeksu i synonimów mapy. Aby uzyskać więcej informacji, zobacz Bezpieczny dostęp do magazynu kluczy.

  1. Nadal w witrynie Azure Portal otwórz stronę Przegląd magazynu kluczy.

  2. Wybierz zasady dostępu po lewej stronie, a następnie wybierz pozycję + Utwórz, aby uruchomić kreatora Tworzenie zasad dostępu.

    Utwórz zasady dostępu.

  3. Na stronie Uprawnienia wybierz pozycję Pobierz dla pozycji Uprawnienia klucza, Uprawnienia wpisu tajnego i Uprawnienia certyfikatu. Wybierz pozycję Odpakuj klucz i Zawij klucz dla ** operacji kryptograficznych na kluczu.

    Wybierz uprawnienia na stronie Uprawnienia.

  4. Wybierz Dalej.

  5. Na stronie Zasada znajdź i wybierz jednostkę zabezpieczeń używaną przez usługę wyszukiwania w celu uzyskania dostępu do klucza szyfrowania. Będzie to tożsamość zarządzana przez system lub tożsamość zarządzana przez użytkownika usługi wyszukiwania albo zarejestrowana aplikacja.

  6. Wybierz pozycję Dalej i Utwórz.

Ważne

Zaszyfrowana zawartość w usłudze Azure AI Search jest skonfigurowana do używania określonego klucza usługi Azure Key Vault z określoną wersją. Jeśli zmienisz klucz lub wersję, przed usunięciem poprzedniego indeksu lub mapy synonimów należy ją zaktualizować. Nie można to zrobić, spowoduje renderowanie indeksu lub mapy synonimów bezużytecznych. Nie będzie można odszyfrować zawartości, jeśli klucz zostanie utracony.

5 — Szyfrowanie zawartości

Klucze szyfrowania są dodawane podczas tworzenia obiektu. Aby dodać klucz zarządzany przez klienta na indeksie, mapie synonimów, indeksatorze, źródle danych lub zestawie umiejętności, użyj interfejsu API REST wyszukiwania lub zestawu Azure SDK, aby utworzyć obiekt z włączonym szyfrowaniem. Portal nie zezwala na właściwości szyfrowania podczas tworzenia obiektu.

  1. Wywołaj interfejsy API tworzenia, aby określić właściwość encryptionKey :

  2. Wstaw konstrukcję encryptionKey do definicji obiektu. Ta właściwość jest właściwością pierwszego poziomu na tym samym poziomie co nazwa i opis. W poniższych przykładach REST pokazano umieszczanie właściwości. Jeśli używasz tego samego magazynu, klucza i wersji, możesz wkleić tę samą konstrukcję "encryptionKey" do każdej definicji obiektu.

    Pierwszy przykład przedstawia wartość "encryptionKey" dla usługi wyszukiwania, która łączy się przy użyciu tożsamości zarządzanej:

    {
      "encryptionKey": {
        "keyVaultUri": "https://demokeyvault.vault.azure.net",
        "keyVaultKeyName": "myEncryptionKey",
        "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660"
      }
    }
    

    Drugi przykład obejmuje "accessCredentials", co jest konieczne, jeśli zarejestrowano aplikację w identyfikatorze Entra firmy Microsoft:

    {
      "encryptionKey": {
        "keyVaultUri": "https://demokeyvault.vault.azure.net",
        "keyVaultKeyName": "myEncryptionKey",
        "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
        "accessCredentials": {
          "applicationId": "00000000-0000-0000-0000-000000000000",
          "applicationSecret": "myApplicationSecret"
        }
      }
    }
    

Po utworzeniu zaszyfrowanego obiektu w usłudze wyszukiwania można go użyć tak samo jak dowolny inny obiekt tego typu. Szyfrowanie jest niewidoczne dla użytkownika i dewelopera.

Uwaga

Żadne z tych szczegółów magazynu kluczy nie są uznawane za tajne i można je łatwo pobrać, przechodząc do odpowiedniej strony usługi Azure Key Vault w witrynie Azure Portal.

6 — Konfigurowanie zasad

Zasady platformy Azure pomagają wymuszać standardy organizacyjne i oceniać zgodność na dużą skalę. Usługa Azure AI Search ma opcjonalne wbudowane zasady wymuszania klucza zarządzanego przez całą usługę.

W tej sekcji ustawisz zasady definiujące standard CMK dla usługi wyszukiwania. Następnie skonfigurujesz usługę wyszukiwania, aby wymusić te zasady.

  1. Przejdź do wbudowanych zasad w przeglądarce internetowej. Wybierz pozycję Przypisz

    Zrzut ekranu przedstawiający przypisywanie wbudowanych zasad cmk.

  2. Skonfiguruj zakres zasad. W sekcji Parametry usuń zaznaczenie pola wyboru Pokaż tylko parametry... i ustaw wartość Efekt na Odmów.

    Podczas oceny żądania żądanie zgodne z definicją zasad odmowy jest oznaczone jako niezgodne. Zakładając, że standardem dla usługi jest szyfrowanie CMK, "odmów" oznacza, że żądania, które nie określają szyfrowania CMK, są niezgodne.

    Zrzut ekranu przedstawiający zmianę wbudowanego efektu zasad cmK na odmowę.

  3. Zakończ tworzenie zasad.

  4. Wywołaj interfejs API aktualizacji usług, aby włączyć wymuszanie zasad cmK na poziomie usługi.

PATCH https://management.azure.com/subscriptions/[subscriptionId]/resourceGroups/[resourceGroupName]/providers/Microsoft.Search/searchServices/[serviceName]?api-version=2022-11-01

{
    "properties": {
        "encryptionWithCmk": {
            "enforcement": "Enabled",
            "encryptionComplianceStatus": "Compliant"
        }
    }
}

Przykłady rest

W tej sekcji przedstawiono kod JSON dla kilku obiektów, aby zobaczyć, gdzie zlokalizować wartość "encryptionKey" w definicji obiektu.

Szyfrowanie indeksu

Szczegóły tworzenia nowego indeksu za pośrednictwem interfejsu API REST można znaleźć w artykule Create Index (REST API), gdzie jedyną różnicą jest określenie szczegółów klucza szyfrowania w ramach definicji indeksu:

{
 "name": "hotels",
 "fields": [
  {"name": "HotelId", "type": "Edm.String", "key": true, "filterable": true},
  {"name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": true, "facetable": false},
  {"name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.lucene"},
  {"name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.lucene"},
  {"name": "Category", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true},
  {"name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "sortable": false, "facetable": true},
  {"name": "ParkingIncluded", "type": "Edm.Boolean", "filterable": true, "sortable": true, "facetable": true},
  {"name": "LastRenovationDate", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true, "facetable": true},
  {"name": "Rating", "type": "Edm.Double", "filterable": true, "sortable": true, "facetable": true},
  {"name": "Location", "type": "Edm.GeographyPoint", "filterable": true, "sortable": true}
 ],
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

Teraz możesz wysłać żądanie utworzenia indeksu, a następnie zacząć normalnie korzystać z indeksu.

Szyfrowanie mapy synonimów

Utwórz zaszyfrowaną mapę synonimów przy użyciu interfejsu API REST tworzenia mapy synonimów usługi Azure AI Search. Użyj właściwości "encryptionKey", aby określić klucz szyfrowania do użycia.

{
  "name" : "synonymmap1",
  "format" : "solr",
  "synonyms" : "United States, United States of America, USA\n
  Washington, Wash. => WA",
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

Teraz możesz wysłać żądanie utworzenia mapy synonimów, a następnie zacząć go normalnie używać.

Szyfrowanie źródła danych

Utwórz zaszyfrowane źródło danych przy użyciu interfejsu API REST (Create Data Source). Użyj właściwości "encryptionKey", aby określić klucz szyfrowania do użycia.

{
  "name" : "datasource1",
  "type" : "azureblob",
  "credentials" :
  { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=datasource;AccountKey=accountkey;EndpointSuffix=core.windows.net"
  },
  "container" : { "name" : "containername" },
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

Teraz możesz wysłać żądanie utworzenia źródła danych, a następnie zacząć go normalnie używać.

Szyfrowanie zestawu umiejętności

Utwórz zaszyfrowany zestaw umiejętności przy użyciu interfejsu API REST tworzenia zestawu umiejętności. Użyj właściwości "encryptionKey", aby określić klucz szyfrowania do użycia.

{
    "name": "skillset1",
    "skills":  [ omitted for brevity ],
    "cognitiveServices": { omitted for brevity },
      "knowledgeStore":  { omitted for brevity  },
    "encryptionKey": (optional) { 
        "keyVaultKeyName": "myEncryptionKey",
        "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
        "keyVaultUri": "https://demokeyvault.vault.azure.net",
        "accessCredentials": {
            "applicationId": "00000000-0000-0000-0000-000000000000",
            "applicationSecret": "myApplicationSecret"}
    }
}

Teraz możesz wysłać żądanie utworzenia zestawu umiejętności, a następnie zacząć go normalnie używać.

Szyfrowanie indeksatora

Utwórz zaszyfrowany indeksator przy użyciu interfejsu API REST tworzenia indeksatora. Użyj właściwości "encryptionKey", aby określić klucz szyfrowania do użycia.

{
  "name": "indexer1",
  "dataSourceName": "datasource1",
  "skillsetName": "skillset1",
  "parameters": {
      "configuration": {
          "imageAction": "generateNormalizedImages"
      }
  },
  "encryptionKey": {
    "keyVaultUri": "https://demokeyvault.vault.azure.net",
    "keyVaultKeyName": "myEncryptionKey",
    "keyVaultKeyVersion": "eaab6a663d59439ebb95ce2fe7d5f660",
    "accessCredentials": {
      "applicationId": "00000000-0000-0000-0000-000000000000",
      "applicationSecret": "myApplicationSecret"
    }
  }
}

Teraz możesz wysłać żądanie utworzenia indeksatora, a następnie zacząć go normalnie używać.

Ważne

Chociaż "encryptionKey" nie można dodać do istniejących indeksów wyszukiwania lub map synonimów, może zostać zaktualizowana przez podanie różnych wartości dla dowolnego z trzech szczegółów magazynu kluczy (na przykład zaktualizowanie wersji klucza). W przypadku zmiany na nowy klucz usługi Key Vault lub nowej wersji klucza przed usunięciem poprzedniego klucza należy najpierw zaktualizować dowolny indeks wyszukiwania lub mapę synonimów używającą klucza, aby używać nowego klucza\wersji. Nie można to zrobić, spowoduje, że indeks lub mapa synonimów będzie bezużyteczna, ponieważ nie będzie można odszyfrować zawartości po utracie dostępu do klucza. Chociaż przywracanie uprawnień dostępu do magazynu kluczy w późniejszym czasie spowoduje przywrócenie dostępu do zawartości.

Praca z zaszyfrowaną zawartością

W przypadku szyfrowania kluczy zarządzanych przez klienta można zauważyć opóźnienie zarówno dla indeksowania, jak i zapytań z powodu dodatkowego działania szyfrowania/odszyfrowywania. Usługa Azure AI Search nie rejestruje aktywności szyfrowania, ale można monitorować dostęp do klucza za pomocą rejestrowania magazynu kluczy. Zalecamy włączenie rejestrowania w ramach konfiguracji magazynu kluczy.

Oczekuje się, że rotacja kluczy nastąpi w czasie. Za każdym razem, gdy obracasz klucze, ważne jest, aby postępować zgodnie z tą sekwencją:

  1. Określ klucz używany przez indeks lub mapę synonimów.
  2. Utwórz nowy klucz w magazynie kluczy, ale pozostaw dostępny oryginalny klucz.
  3. Zaktualizuj właściwości encryptionKey na mapie indeksu lub synonimu, aby użyć nowych wartości. W celu użycia innej wartości można zaktualizować tylko obiekty, które zostały pierwotnie utworzone za pomocą tej właściwości.
  4. Wyłącz lub usuń poprzedni klucz w magazynie kluczy. Monitoruj dostęp do klucza, aby sprawdzić, czy nowy klucz jest używany.

Ze względu na wydajność usługa wyszukiwania buforuje klucz przez maksymalnie kilka godzin. Jeśli wyłączysz lub usuniesz klucz bez podawania nowego, zapytania będą nadal działać tymczasowo do momentu wygaśnięcia pamięci podręcznej. Jednak gdy usługa wyszukiwania nie może już odszyfrować zawartości, zostanie wyświetlony następujący komunikat: "Dostęp zabroniony. Użyty klucz zapytania mógł zostać odwołany — ponów próbę".

Następne kroki

Jeśli nie znasz architektury zabezpieczeń platformy Azure, zapoznaj się z dokumentacją zabezpieczeń platformy Azure, a w szczególności w tym artykule: