Udostępnij za pośrednictwem


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).

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

Szyfrowanie CMK jest stosowane do poszczególnych obiektów. Jeśli potrzebujesz klucza zarządzanego przez usługę wyszukiwania, ustaw zasady wymuszania.

Szyfrowanie cmK jest stosowane podczas tworzenia obiektu, co oznacza, że nie można zaszyfrować obiektów, które już istnieją. Szyfrowanie cmK odbywa się za każdym razem, gdy obiekt jest zapisywany na dysku, zarówno dla danych magazynowanych (długoterminowego magazynu) lub tymczasowych danych buforowanych (magazyn krótkoterminowy). W przypadku klucza CMK dysk nigdy nie widzi niezaszyfrowanych danych.

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.

  • Zawartość wrażliwa w indeksatorach, źródłach danych, zestawach umiejętności i wektoryzatorach. Ta zawartość składa się tylko z tych pól, które przechowują parametry połączenia, opisy, tożsamości, 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. Wszelkie odwołania do zasobów zewnętrznych (takich jak źródła danych platformy Azure lub modele usługi Azure OpenAI) są również 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 w obiektach, 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ść. Aby określić datę utworzenia usługi, zobacz Jak sprawdzić datę utworzenia usługi.

Wymagania wstępne

Ograniczenia

  • Brak obsługi modelu zabezpieczeń sprzętu zarządzanego usługi Azure Key Vault (HSM).

  • Brak obsługi między subskrypcjami. Usługi Azure Key Vault i Azure AI Search muszą znajdować się w tej samej subskrypcji.

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.

  • Użyj tej samej dzierżawy, aby można było pobrać klucz zarządzany, łącząc się 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ę. Aby uzyskać więcej informacji na temat tworzenia dzierżawy, zobacz Konfigurowanie nowej dzierżawy.

  • Włącz ochronę przed przeczyszczaniem i usuwanie nietrwałe. 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 będziesz napotykać problemy tylko wtedy, gdy celowo go 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.

  • Włącz rejestrowanie w magazynie kluczy, aby można było monitorować użycie kluczy.

  • Włącz autorotytację kluczy lub postępuj zgodnie ze ścisłymi procedurami podczas rutynowej rotacji kluczy magazynu kluczy i wpisów tajnych aplikacji 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.

Krok 1. 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.

Przed dodaniem klucza upewnij się, że przypisano ci rolę administratora kryptograficznego usługi Key Vault.

Szyfrowanie usługi Azure AI Search obsługuje klucze RSA o rozmiarach 2048, 3072 i 4096. Aby uzyskać więcej informacji na temat obsługiwanych typów kluczy, zobacz About keys (Informacje o kluczach).

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

  2. Wybierz pozycję Klucze obiektów>po lewej stronie, a następnie wybierz pozycję Generuj/Importuj.

  3. W okienku Tworzenie klucza z listy Opcje wybierz pozycję Generuj , aby utworzyć nowy klucz.

  4. Wprowadź nazwę klucza i zaakceptuj wartości domyślne innych właściwości klucza.

  5. Opcjonalnie ustaw zasady rotacji kluczy, aby włączyć automatyczne obracanie.

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

  7. 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

Krok 2. Tworzenie podmiotu zabezpieczeń

Istnieje kilka opcji konfigurowania dostępu usługi Azure AI Search do klucza szyfrowania w czasie wykonywania. Najprostszym podejściem jest pobranie klucza przy użyciu tożsamości zarządzanej 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. Alternatywnie możesz utworzyć i zarejestrować aplikację Firmy Microsoft Entra i udostępnić identyfikator aplikacji dla żądań.

Zalecamy używanie tożsamości zarządzanej. 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ą przypisaną przez system. 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.

Włącz tożsamość zarządzaną przypisaną przez system dla usługi wyszukiwania.

Zrzut ekranu przedstawiający włączanie tożsamości zarządzanej przypisanej przez system.

Krok 3. Udzielanie uprawnień

Usługa Azure Key Vault obsługuje autoryzację przy użyciu kontroli dostępu opartej na rolach. Zalecamy takie podejście w przypadku zasad dostępu do magazynu kluczy. Aby uzyskać więcej informacji, zobacz Zapewnianie dostępu do kluczy, certyfikatów i wpisów tajnych usługi Key Vault przy użyciu ról platformy Azure.

W tym kroku przypisz rolę użytkownika szyfrowania usługi Kryptograficznej usługi Key Vault do usługi wyszukiwania. Jeśli testujesz lokalnie, przypisz tę rolę do siebie.

  1. Zaloguj się do witryny Azure Portal i znajdź magazyn kluczy.

  2. Wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami) i wybierz pozycję Dodaj przypisanie roli.

  3. Wybierz pozycję Użytkownik szyfrowania usługi kryptograficznej usługi Key Vault, a następnie wybierz przycisk Dalej.

  4. Wybierz pozycję Tożsamości zarządzane, wybierz członków, a następnie wybierz tożsamość zarządzaną usługi wyszukiwania.

  5. Wybierz pozycję Przejrzyj + przypisz.

Poczekaj kilka minut, aż przypisanie roli stanie się operacyjne.

Krok 4. 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 witryny Azure Portal, interfejsu API REST wyszukiwania lub zestawu Azure SDK, aby utworzyć obiekt z włączonym szyfrowaniem. Aby dodać szyfrowanie przy użyciu zestawu Azure SDK, zobacz przykład języka Python w tym artykule.

  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. Jeśli używasz tego samego magazynu, klucza i wersji, możesz wkleić tę samą konstrukcję encryptionKey do każdej definicji obiektu.

    W pierwszym przykładzie przedstawiono klucz szyfrowania dla usługi wyszukiwania, która łączy się przy użyciu tożsamości zarządzanej:

    {
      "encryptionKey": {
        "keyVaultUri": "<YOUR-KEY-VAULT-URI>",
        "keyVaultKeyName": "<YOUR-ENCRYPTION-KEY-NAME>",
        "keyVaultKeyVersion": "<YOUR-ENCRYPTION-KEY-VERSION>"
      }
    }
    

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

    {
      "encryptionKey": {
        "keyVaultUri": "<YOUR-KEY-VAULT-URI>",
        "keyVaultKeyName": "<YOUR-ENCRYPTION-KEY-NAME>",
        "keyVaultKeyVersion": "<YOUR-ENCRYPTION-KEY-VERSION>",
        "accessCredentials": {
          "applicationId": "<YOUR-APPLICATION-ID>",
          "applicationSecret": "<YOUR-APPLICATION-SECRET>"
        }
      }
    }
    
  3. Sprawdź, czy klucz szyfrowania istnieje, wydając get na obiekcie.

  4. Sprawdź, czy obiekt działa, wykonując zadanie, takie jak wykonywanie zapytania względem indeksu, który został zaszyfrowany.

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.

Ż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.

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ę, obiekt musi zostać zaktualizowany, aby był używany przed usunięciem poprzedniego. Nie można tego zrobić, powoduje, że obiekt jest bezużyteczny. Nie będzie można odszyfrować zawartości, jeśli klucz zostanie utracony.

Krok 5. Testowanie szyfrowania

Aby sprawdzić, czy szyfrowanie działa, odwołaj klucz szyfrowania, wykonaj zapytanie względem indeksu (powinno być bezużyteczne), a następnie przywrócić klucz szyfrowania.

W tym zadaniu użyj witryny Azure Portal.

  1. Na stronie Azure Key Vault wybierz pozycję Klucze obiektów>.

  2. Wybierz właśnie utworzony klucz, a następnie wybierz pozycję Usuń.

  3. Na stronie Azure AI Search wybierz pozycję Indeksy zarządzania wyszukiwaniem>.

  4. Wybierz indeks i użyj Eksploratora wyszukiwania, aby uruchomić zapytanie. Powinien zostać wyświetlony błąd.

  5. Wróć do strony Klucze obiektów>usługi Azure Key Vault.

  6. Wybierz pozycję Zarządzaj usuniętymi kluczami.

  7. Wybierz klucz, a następnie wybierz pozycję Odzyskaj.

  8. Wróć do indeksu w usłudze Azure AI Search i uruchom ponownie zapytanie. Powinny zostać wyświetlone wyniki wyszukiwania. Jeśli nie widzisz natychmiastowych wyników, poczekaj minutę i spróbuj ponownie.

Konfigurowanie zasad w celu wymuszania zgodności klucza zarządzanego przez klienta

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/<your-subscription-Id>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Search/searchServices/<your-search-service-name>?api-version=2023-11-01

{
    "properties": {
        "encryptionWithCmk": {
            "enforcement": "Enabled"
        }
    }
}

Obracanie lub aktualizowanie kluczy szyfrowania

Zalecamy korzystanie z funkcji autorotacji usługi Azure Key Vault, ale możesz również ręcznie wymieniać klucze.

W przypadku zmiany klucza lub jego wersji każdy obiekt używający klucza musi najpierw zostać zaktualizowany, aby można było użyć nowych wartości przed usunięciem starych wartości. W przeciwnym razie obiekt staje się bezużyteczny, ponieważ nie można go odszyfrować.

  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ę".

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.

  1. Utwórz obszar roboczy usługi Log Analytics.

  2. Dodaj ustawienie diagnostyczne w magazynie kluczy, które używa obszaru roboczego do przechowywania danych.

  3. Wybierz pozycję audit lub allLogs dla kategorii, nadaj ustawieniu diagnostycznemu nazwę, a następnie zapisz ją.

Przykład konfiguracji klucza szyfrowania w języku Python

W tej sekcji przedstawiono reprezentację encryptionKey języka Python w definicji obiektu. Ta sama definicja dotyczy indeksów, źródeł danych, zestawów umiejętności, indeksatorów i map synonimów. Aby wypróbować ten przykład w usłudze wyszukiwania i magazynie kluczy, pobierz notes z witryny azure-search-python-samples.

Zainstaluj niektóre pakiety.

! pip install python-dotenv
! pip install azure-core
! pip install azure-search-documents==11.5.1
! pip install azure-identity

Utwórz indeks z kluczem szyfrowania.

from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    SimpleField,
    SearchFieldDataType,
    SearchableField,
    SearchIndex,
    SearchResourceEncryptionKey
)
from azure.identity import DefaultAzureCredential

endpoint="<PUT YOUR AZURE SEARCH SERVICE ENDPOINT HERE>"
credential = DefaultAzureCredential()

index_name = "test-cmk-index"
index_client = SearchIndexClient(endpoint=endpoint, credential=credential)  
fields = [
        SimpleField(name="Id", type=SearchFieldDataType.String, key=True),
        SearchableField(name="Description", type=SearchFieldDataType.String)
    ]

scoring_profiles = []
suggester = []
encryption_key = SearchResourceEncryptionKey(
    key_name="<PUT YOUR KEY VAULT NAME HERE>",
    key_version="<PUT YOUR ALPHANUMERIC KEY VERSION HERE>",
    vault_uri="<PUT YOUR KEY VAULT ENDPOINT HERE>"
)

index = SearchIndex(name=index_name, fields=fields, encryption_key=encryption_key)
result = index_client.create_or_update_index(index)
print(f' {result.name} created')

Pobierz definicję indeksu, aby sprawdzić, czy istnieje konfiguracja klucza szyfrowania.

index_name = "test-cmk-index-qs"
index_client = SearchIndexClient(endpoint=AZURE_SEARCH_SERVICE, credential=credential)  

result = index_client.get_index(index_name)  
print(f"{result}")  

Załaduj indeks z kilkoma dokumentami. Cała zawartość pola jest uważana za poufne i jest szyfrowana na dysku przy użyciu klucza zarządzanego przez klienta.

from azure.search.documents import SearchClient

# Create a documents payload
documents = [
    {
    "@search.action": "upload",
    "Id": "1",
    "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities."
    },
    {
    "@search.action": "upload",
    "Id": "2",
    "Description": "The hotel is situated in a  nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts."
    },
    {
    "@search.action": "upload",
    "Id": "3",
    "Description": "The hotel stands out for its gastronomic excellence under the management of William Dough, who advises on and oversees all of the Hotel's restaurant services."
    },
    {
    "@search.action": "upload",
    "Id": "4",
    "Description": "The hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Palace is part of a lovingly restored 1800 palace."
    }
]

search_client = SearchClient(endpoint=AZURE_SEARCH_SERVICE, index_name=index_name, credential=credential)
try:
    result = search_client.upload_documents(documents=documents)
    print("Upload of new document succeeded: {}".format(result[0].succeeded))
except Exception as ex:
    print (ex.message)

    index_client = SearchClient(endpoint=AZURE_SEARCH_SERVICE, credential=credential)

Uruchom zapytanie, aby potwierdzić, że indeks działa.

from azure.search.documents import SearchClient

query = "historic"  

search_client = SearchClient(endpoint=AZURE_SEARCH_SERVICE, credential=credential, index_name=index_name)
  
results = search_client.search(  
    query_type='simple',
    search_text=query, 
    select=["Id", "Description"],
    include_total_count=True
    )
  
for result in results:  
    print(f"Score: {result['@search.score']}")
    print(f"Id: {result['Id']}")
    print(f"Description: {result['Description']}")

Dane wyjściowe zapytania powinny generować wyniki podobne do poniższego przykładu.

Score: 0.6130029
Id: 4
Description: The hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Palace is part of a lovingly restored 1800 palace.
Score: 0.26286605
Id: 1
Description: The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.

Ponieważ zaszyfrowana zawartość jest odszyfrowywane przed odświeżaniem danych lub zapytaniami, nie zobaczysz wizualnych dowodów szyfrowania. Aby sprawdzić, czy szyfrowanie działa, sprawdź dzienniki zasobów.

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: