Konfigurieren von kundenseitig verwalteten Schlüsseln für die Datenverschlüsselung in Azure AI Search
In Azure AI Search werden ruhende Daten automatisch mit dienstseitig verwalteten Schlüsseln verschlüsselt. Wenn ein weiterer Schutz erforderlich ist, können Sie die Standardverschlüsselung durch eine weitere Verschlüsselungsebene ergänzen, indem Sie Schlüssel verwenden, die Sie in Azure Key Vault erstellen und verwalten.
In diesem Artikel finden Sie die Schritte zum Einrichten der Verschlüsselung mit kundenseitig verwalteten Schlüsseln (Customer-Managed Keys, CMKs) oder BYOK.
Hinweis
Wenn ein Index CMK-verschlüsselt ist, kann nur darauf zugegriffen werden, wenn der Suchdienst Zugriff auf den Schlüssel hat. Wenn der Zugriff auf den Schlüssel widerrufen wird, kann der Index nicht verwendet und der Dienst nicht skaliert werden, bis der Index gelöscht oder der Zugriff auf den Schlüssel wiederhergestellt ist.
CMK-verschlüsselte Objekte
Die CMK-Verschlüsselung wird auf einzelne Objekte angewendet. Wenn Sie CMK für Ihren Suchdienst benötigen, legen Sie eine Erzwingungsrichtlinie fest.
CMK-Verschlüsselung wird angewendet, wenn ein Objekt erstellt wird. Dies bedeutet, dass Sie bereits vorhandene Objekte nicht verschlüsseln können. Die CMK-Verschlüsselung tritt immer dann auf, wenn ein Objekt auf dem Datenträger gespeichert wird,sowohl bei ruhenden Daten (langfristige Speicherung) als auch bei temporären Daten (kurzfristige Speicherung). Mit CMK werden nie unverschlüsselte Daten auf dem Datenträger gespeichert.
Zu den Objekten, die verschlüsselt werden können, gehören Indizes, Synonymlisten, Indexer, Datenquellen und Skillsets. Weil das Entschlüsseln der Verschlüsselung sehr rechenintensiv ist, werden nur sensible Inhalte verschlüsselt.
Die Verschlüsselung wird für die folgenden Inhalte ausgeführt:
Alle Inhalte innerhalb von Indizes und Synonymlisten.
Vertrauliche Inhalte in Indexern, Datenquellen, Skillsets und Vektorisierern. Diese Inhalte bestehen nur aus den Feldern, in denen Verbindungszeichenfolgen, Beschreibungen, Identitäten, Schlüssel und Benutzereingaben gespeichert sind. Skillsets verfügen beispielsweise über Azure KI Services-Schlüssel, und einige Skills akzeptieren Benutzereingaben, z. B. benutzerdefinierte Entitäten. In beiden Fällen werden Schlüssel und Benutzereingaben in Skills verschlüsselt. Alle Verweise auf externe Ressourcen, z. B. Azure-Datenquellen oder Azure OpenAI-Modelle, werden ebenfalls verschlüsselt.
Vollständige Mehrfachverschlüsselung
Wenn Sie CMK-Verschlüsselung einführen, verschlüsseln Sie Inhalte zweimal. Für die im vorherigen Abschnitt aufgeführten Objekte und Felder wird der Inhalt zuerst mit Ihrem CMK und dann als Zweites mit dem von Microsoft verwalteten Schlüssel verschlüsselt. Inhalte werden doppelt verschlüsselt auf Datenträgern für die langfristige Speicherung sowie auf temporären Datenträgern, die für die kurzfristige Speicherung verwendet werden.
Durch aktivieren der CMK-Verschlüsselung wird die Indexgröße erhöht und die Abfrageleistung beeinträchtigt. Basierend auf den bisherigen Beobachtungen können Sie mit einem Anstieg der Abfragezeiten um 30–60 Prozent rechnen, wobei die tatsächliche Leistung je nach Indexdefinition und Art der Abfragen variiert. Aufgrund der Auswirkungen auf die Leistung wird empfohlen, diese Funktion nur für Objekte zu aktivieren, für die sie wirklich erforderlich ist.
Obwohl die Mehrfachverschlüsselung jetzt in allen Regionen verfügbar ist, wurde die Unterstützung in zwei Phasen eingeführt:
Das erste Rollout erfolgte am 1. August 2020 und umfasste die fünf unten aufgeführten Regionen. In den folgenden Regionen erstellte Suchdienste haben CMK für Datenträger unterstützt, aber nicht für temporären Datenträger:
- USA, Westen 2
- East US
- USA Süd Mitte
- US Government, Virginia
- US Gov Arizona
Beim zweiten Rollout am 13. Mai 2021 wurde die Verschlüsselung für temporäre Datenträger und die erweiterte CMK-Verschlüsselung für alle unterstützten Regionen hinzugefügt.
Wenn Sie CMK aus einem Dienst verwenden, der während des ersten Rollouts erstellt wurde und sie auch CMK-Verschlüsselung für temporäre Datenträger wünschen, müssen Sie einen neuen Suchdienst in der Region Ihrer Wahl erstellen und Ihre Inhalte erneut bereitstellen. Informationen zum Ermitteln des Erstellungsdatums Ihres Diensts finden Sie unter Überprüfen des Erstellungsdatums des Diensts.
Voraussetzungen
Azure AI Search in einem abrechenbaren Tarif (mindestens Basic in einer beliebigen Region)
Azure Key Vault im selben Abonnement wie Azure KI Search. Sie können einen Azure Key Vault im Azure-Portal, mit der Azure-Befehlszeilenschnittstelle oder mit Azure PowerShell erstellen. Vorläufiges Löschen und Löschschutz müssen für den Schlüsseltresor aktiviert sein.
Ein Suchclient, der ein verschlüsseltes Objekt erstellen kann, z. B. ein REST-Client, Azure PowerShell, oder ein Azure SDK (Python, .NET, Java, JavaScript).
Begrenzungen
Keine Unterstützung für Verwaltetes Azure Key Vault-Hardwaresicherheitsmodul (Hardware Security Model, HSM).
Keine abonnementübergreifende Unterstützung. Azure Key Vault und Azure KI-Suche müssen sich im selben Abonnement befinden.
Tipps zu Key Vault
Wenn Sie noch nicht mit Azure Key Vault arbeiten, finden Sie in dieser Schnellstartanleitung Informationen zu grundlegenden Aufgaben: Festlegen eines Geheimnisses und Abrufen des Geheimnisses aus Azure Key Vault mithilfe von PowerShell.
Im Folgenden finden Sie einige Tipps zur Verwendung von Key Vault:
Verwenden Sie beliebig viele Schlüsseltresore. Verwaltete Schlüssel können in verschiedenen Schlüsseltresoren gespeichert werden. Ein Suchdienst kann mehrere verschlüsselte Objekte haben, die jeweils mit anderen kundenseitig verwalteten Verschlüsselungsschlüsseln verschlüsselt werden, die in verschiedenen Schlüsseltresoren gespeichert sind.
Verwenden Sie denselben Mandanten, sodass Sie Ihren verwalteten Schlüssel abrufen können, indem sie eine Verbindung über eine vom System oder vom Benutzer verwaltete Identität herstellen. Dieses Verhalten erfordert, dass beide Dienste denselben Mandanten gemeinsam nutzen. Weitere Informationen zum Erstellen eines Mandanten finden Sie unter Einrichten eines neuen Mandanten.
Aktivieren Sie den Löschschutz und vorläufiges Löschen. Aufgrund der Art der Verschlüsselung mit kundenseitig verwalteten Schlüsseln können Ihre Daten nicht abgerufen werden, wenn der Azure Key Vault-Schlüssel gelöscht wird. Um Datenverluste aufgrund versehentlich gelöschter Key Vault-Schlüssel zu vermeiden, müssen im Schlüsseltresor die Optionen „Vorläufiges Löschen“ und „Löschschutz“ aktiviert werden. Vorläufiges Löschen ist standardmäßig aktiviert, sodass nur dann Probleme auftreten, wenn Sie diese Funktion absichtlich deaktiviert haben. Der Löschschutz ist nicht standardmäßig aktiviert, er ist aber für die Verschlüsselung mit kundenseitig verwalteten Schlüsseln in Azure AI Search erforderlich.
Aktivieren Sie die Protokollierung im Schlüsseltresor, um die Schlüsselverwendung überwachen zu können.
Aktivieren Sie die automatische Rotation von Schlüsseln oder halten Sie bei der Routinerotation von Schlüsseltresorschlüsseln und Schlüsseltresorschlüsseln sowie Anwendungsgeheimnissen und der Registrierung unbedingt strikte Verfahren ein. Aktualisieren Sie immer den gesamten verschlüsselten Inhalt, um neue Geheimnisse und Schlüssel zu verwenden, bevor Sie die alten löschen. Wenn Sie diesen Schritt nicht ausführen, können Ihre Inhalte nicht entschlüsselt werden.
Schritt 1: Erstellen eines Schlüsseltresors
Überspringen Sie die Schlüsselgenerierung, wenn Sie bereits über einen Schlüssel in Azure Key Vault verfügen, den Sie verwenden möchten, aber notieren Sie den Schlüsselbezeichner. Sie benötigen diese Informationen, wenn Sie ein verschlüsseltes Objekt erstellen.
Bevor Sie den Schlüssel hinzufügen, stellen Sie sicher, dass Sie sich selbst die Rolle Key Vault-Kryptografiebeauftragter zugewiesen haben.
Die Azure KI-Suche-Verschlüsselung unterstützt RSA-Schlüssel mit einer Größe von 2.048, 3.072 und 4.096 Bit. Weitere Informationen zu unterstützten Schlüsseltypen finden Sie unter Informationen zu Schlüsseln.
Melden Sie sich beim Azure-Portal an, und öffnen Sie die Übersichtsseite Ihrer Key Vault-Instanz.
Wählen Sie auf der linken Seite Objects>Keys und dann Generieren/Importieren aus.
Wählen Sie im Bereich Schlüssel erstellen in der Liste mit den Optionen Generieren aus, um einen neuen Schlüssel zu erstellen.
Geben Sie einen Namen für den Schlüssel ein, und akzeptieren Sie die Standardwerte für die weiteren Schlüsseleigenschaften.
Legen Sie optional eine Richtlinie für die Schlüsselrotation fest, um die automatische Rotation zu aktivieren.
Wählen Sie Erstellen aus, um die Bereitstellung zu starten.
Wählen Sie den Schlüssel aus, wählen Sie die aktuelle Version aus, und notieren Sie sich den Schlüsselbezeichner. Er besteht aus dem Schlüsselwert-URI, dem Schlüsselnamen und der Schlüsselversion. Sie benötigen den Bezeichner, um einen verschlüsselten Index in Azure AI Search zu definieren.
Schritt 2: Erstellen eines Sicherheitsprinzipals
Sie haben mehrere Optionen zum Einrichten des Azure KI-Suche-Zugriffs auf den Verschlüsselungsschlüssel zur Laufzeit. Der einfachste Ansatz besteht im Abrufen des Schlüssels mithilfe der verwalteten Identität Ihres Suchdiensts. Sie können eine system- oder benutzerverwaltete Identität verwenden. Dies gibt Ihnen die Möglichkeit, die Schritte zur Anwendungsregistrierung sowie Anwendungsgeheimnisse wegzulassen. Alternativ können Sie eine Microsoft Entra-Anwendung erstellen und registrieren und den Suchdienst bei Anforderungen die Anwendungs-ID bereitstellen lassen.
Wir empfehlen die Verwendung einer verwalteten Identität. Der Suchdienst kann über eine verwaltete Identität bei Azure Key Vault authentifiziert werden, ohne dass Anmeldeinformationen (ApplicationID oder ApplicationSecret) im Code gespeichert werden. Der Lebenszyklus dieses Typs einer verwalteten Identität ist an den Lebenszyklus des Suchdiensts gebunden, der nur eine vom System zugewiesene verwaltete Identität enthalten kann. Weitere Informationen zur Funktion verwalteter Identitäten finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.
- Systemseitig verwaltete Identität
- Benutzerseitig verwaltete Identität (Vorschau)
- Registrieren einer Azure AD-App zum Einbetten von Power BI-Inhalten
Aktivieren Sie die systemseitig zugewiesene verwaltete Identität für Ihren Suchdienst.
Schritt 3: Erteilen von Berechtigungen
Azure Key Vault unterstützt die Autorisierung mithilfe rollenbasierter Zugriffssteuerungen. Wir empfehlen diesen Ansatz gegenüber Zugriffsrichtlinien für den Schlüsseltresor. Weitere Informationen finden Sie unter Gewähren des Zugriffs auf Key Vault-Schlüssel, -Zertifikate und -Geheimnisse mithilfe von Azure-Rollen.
In diesem Schritt weisen Sie Ihrem Suchdienst die Rolle Key Vault Crypto Service Encryption-Benutzer zu. Wenn Sie lokal testen, weisen Sie diese Rolle auch sich selbst zu.
Melden Sie sich beim Azure-Portal an, und suchen Sie nach Ihrem Schlüsseltresor.
Wählen Sie Zugriffssteuerung (IAM) und dann Rollenzuweisung hinzufügen aus.
Wählen Sie Key Vault Crypto Service Encryption-Benutzer und dann Weiter aus.
Wählen Sie verwaltete Identitäten, dann die Mitglieder und schließlich die verwaltete Identität Ihres Suchdiensts aus.
Wählen Sie Überprüfen und zuweisen aus.
Warten Sie einige Minuten, bis die Rollenzuweisung einsatzbereit ist.
Schritt 4: Verschlüsseln von Inhalten
Verschlüsselungsschlüssel werden hinzugefügt, wenn Sie ein Objekt erstellen. Um einen kundenseitig verwalteten Schlüssel einem Index, einer Synonymzuordnung, einem Indexer, einer Datenquelle oder einem Skillset hinzuzufügen, verwenden Sie das Azure-Portal, die Search-REST-API oder ein Azure SDK, um ein Objekt zu erstellen, für das die Verschlüsselung aktiviert ist. Informationen zum Hinzufügen von Verschlüsselung mithilfe des Azure SDKs finden Sie im Python-Beispiel in diesem Artikel.
Rufen Sie die Erstellungs-APIs auf, um die Eigenschaft encryptionKey anzugeben:
Fügen Sie das encryptionKey-Konstrukt in die Objektdefinition ein. Diese Eigenschaft ist eine Eigenschaft der ersten Ebene auf der gleichen Ebene wie Name und Beschreibung. Wenn Sie denselben Tresor, Schlüssel und dieselbe Version verwenden, können Sie in jede Objektdefinition dasselbe „encryptionKey“-Konstrukt einfügen.
Das erste Beispiel zeigt einen „encryptionKey“ für einen Suchdienst, der eine Verbindung mithilfe einer verwalteten Identität herstellt:
{ "encryptionKey": { "keyVaultUri": "<YOUR-KEY-VAULT-URI>", "keyVaultKeyName": "<YOUR-ENCRYPTION-KEY-NAME>", "keyVaultKeyVersion": "<YOUR-ENCRYPTION-KEY-VERSION>" } }
Das zweite Beispiel enthält „accessCredentials“, die erforderlich sind, wenn Sie eine Anwendung in Microsoft Entra ID registriert haben:
{ "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>" } } }
Überprüfen Sie, ob der Verschlüsselungsschlüssel vorhanden ist, indem Sie ein „GET“ für das Objekt ausgeben.
Überprüfen Sie, ob das Objekt funktionsfähig ist, indem Sie eine Aufgabe ausführen, z. B. einen Index abfragen, der verschlüsselt wurde.
Nachdem Sie das verschlüsselte Objekt im Suchdienst erstellt haben, können Sie es wie jedes andere Objekt seines Typs verwenden. Die Verschlüsselung ist für Benutzer und Entwickler transparent.
Keine dieser Key Vault-Details gelten als geheim. Diese Angaben können durch Navigieren zu der entsprechenden Azure Key Vault-Seite im Azure-Portal einfach abgerufen werden.
Wichtig
Verschlüsselte Inhalte in Azure AI Search sind zur Verwendung eines bestimmten Azure Key Vault-Schlüssels mit einer bestimmten Version konfiguriert. Wenn Sie den Schlüssel oder die Version ändern, muss das Objekt zu seiner Verwendung aktualisiert werden, bevor Sie das vorherige löschen. Andernfalls wird das Objekt nicht verwendbar gerendert. Sie können den Inhalt nicht entschlüsseln, wenn der Schlüssel verloren geht.
Schritt 5: Testen der Verschlüsselung
Um zu überprüfen, ob die Verschlüsselung funktioniert, widerrufen Sie den Verschlüsselungsschlüssel, fragen Sie den Index ab (er sollte nicht verwendbar sein), und setzen Sie dann den Verschlüsselungsschlüssel wieder ein.
Verwenden Sie für diesen Schritt das Azure-Portal.
Wählen Sie auf der „Azure Key Vault“-Seite Objekte>Schlüsselaus.
Wählen Sie den gerade von Ihnen erstellten Schlüssel und dann Löschen aus.
Wählen Sie auf der „Azure KI-Suche“-Seite Suchverwaltung>Indizes aus.
Wählen Sie Ihren Index aus, und verwenden Sie den Suchexplorer, um eine Abfrage auszuführen. Sie sollten daraufhin eine Fehlermeldung erhalten.
Kehren Sie zur „Azure Key Vault“-Seite und zu Objekte>Schlüssel zurück.
Wählen Sie Gelöschte Schlüssel verwalten aus.
Wählen Sie Ihren Schlüssel und dann Wiederherstellen aus.
Kehren Sie zu Ihrem Index in Azure KI-Suche zurück, und führen Sie die Abfrage erneut aus. Ihnen sollten nun Suchergebnisse angezeigt werden. Wenn nicht sofort Ergebnisse angezeigt werden, warten Sie ein paar Minuten, und versuchen Sie es noch einmal.
Einrichten einer Richtlinie zum Erzwingen der CMK-Compliance
Azure-Richtlinien unterstützen Sie bei der Durchsetzung von Organisationsstandards und der Bewertung der Compliance im großen Stil. Azure AI Search verfügt über eine optionale integrierte Richtlinie für die dienstweite CMK-Erzwingung.
In diesem Abschnitt legen Sie die Richtlinie fest, die einen CMK-Standard für Ihren Suchdienst definiert. Anschließend richten Sie Ihren Suchdienst ein, um diese Richtlinie zu erzwingen.
Navigieren Sie zur integrierten Richtlinie in Ihrem Webbrowser. Wählen Sie Zuweisen aus.
Richten Sie den Richtlinienbereich ein. Deaktivieren Sie im Abschnitt Parameter die Option Nur Parameter anzeigen, und legen Sie Effekt auf Verweigern fest.
Bei der Bewertung der Anfrage wird eine Anfrage, die einer Verweigerungsdefinition entspricht, als nicht konform gekennzeichnet. Wenn der Standard für Ihren Dienst die CMK-Verschlüsselung ist, bedeutet „deny“, dass Anforderungen, die nicht die CMK-Verschlüsselung angeben, nicht konform sind.
Schließen Sie die Erstellung der Richtlinie ab.
Rufen Sie Dienste – API aktivieren auf, um die Durchsetzung von CMK-Richtlinien auf der Dienstebene zu aktivieren.
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"
}
}
}
Rotieren oder Aktualisieren von Verschlüsselungsschlüsseln
Es wird empfohlen, die Autorotationsfunktionen von Azure Key Vault zu verwenden. Sie können aber auch eine manuell Rotation verwenden.
Wenn Sie einen Schlüssel oder dessen Version ändern, müssen alle Objekte, die den Schlüssel verwenden, zuerst aktualisiert werden, um die neuen Werte zu verwenden, bevor Sie die alten Werte löschen. Andernfalls kann das Objekt nicht mehr verwendet werden, da es nicht entschlüsselt werden kann.
Ermitteln Sie den Schlüssel, der von einem Index oder einer Synonymzuordnung verwendet wird.
Erstellen Sie einen neuen Schlüssel im Schlüsseltresor, aber lassen Sie den ursprünglichen Schlüssel verfügbar.
Aktualisieren Sie die Eigenschaften der encryptionKey-Eigenschaft für einen Index oder eine Synonymzuordnung, damit die neuen Werte verwendet werden. Nur Objekte, die ursprünglich mit dieser Eigenschaft erstellt wurden, können aktualisiert werden, um einen anderen Wert zu verwenden.
Deaktivieren oder löschen Sie den vorherigen Schlüssel aus dem Schlüsseltresor. Überwachen Sie den Schlüsselzugriff, um sicherzustellen, dass der neue Schlüssel verwendet wird.
Aus Leistungsgründen speichert der Suchdienst den Schlüssel für mehrere Stunden zwischen. Wenn Sie den Schlüssel deaktivieren oder löschen, ohne einen neuen bereitzustellen, funktionieren Abfragen weiter, bis der Cache abläuft. Sobald der Suchdienst Inhalte jedoch nicht mehr entschlüsseln kann, erhalten Sie die Meldung Zugriff verboten. Der Abfrageschlüssel wurde möglicherweise widerrufen. Versuchen Sie es noch mal.“
Arbeiten mit verschlüsselten Inhalten
Bei der Verschlüsselung mit kundenseitig verwalteten Schlüsseln treten Wartezeiten bei der Indizierung und bei Abfragen aufgrund des zusätzlichen Aufwands für Verschlüsselung und Entschlüsselung auf. Die Verschlüsselungsaktivität wird von Azure AI Search nicht protokolliert, Sie können jedoch den Schlüsselzugriff über die Key Vault-Protokollierung überwachen.
Es wird empfohlen, die Protokollierung schon bei der Konfiguration des Schlüsseltresors zu aktivieren.
Fügen Sie eine Diagnoseeinstellung im Schlüsseltresor hinzu, die den Arbeitsbereich für die Datenaufbewahrung verwendet.
Wählen Sie audit oder allLogs als Kategorie aus, geben Sie der Diagnoseeinstellung einen Namen, und speichern Sie sie dann.
Python-Beispiel für eine Verschlüsselungsschlüsselkonfiguration
Dieser Abschnitt zeigt die Python-Darstellung eines encryptionKey
in einer Objektdefinition. Die gleiche Definition gilt für Indizes, Datenquellen, Skillsets, Indexer und Synonymzuordnungen. Laden Sie das Notebook aus azure-search-python-samples herunter, um dieses Beispiel in Ihrem Suchdienst und Schlüsseltresor zu testen.
Installieren Sie einige Pakete.
! pip install python-dotenv
! pip install azure-core
! pip install azure-search-documents==11.5.1
! pip install azure-identity
Erstellen Sie einen Index mit einem Verschlüsselungsschlüssel.
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')
Rufen Sie die Indexdefinition ab, um zu überprüfen, ob die Konfiguration des Verschlüsselungsschlüssels vorhanden ist.
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}")
Laden Sie den Index mit einigen Dokumenten. Alle Feldinhalte gelten als vertraulich und werden auf dem Datenträger mithilfe Ihres vom Kunden verwalteten Schlüssels verschlüsselt.
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)
Führen Sie eine Abfrage aus, um sich zu vergewissern, dass Ihr Index funktioniert.
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']}")
Die Ausgabe der Abfrage sollten ähnliche Ergebnisse wie im folgenden Beispiel produzieren.
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.
Da verschlüsselte Inhalte vor der Datenaktualisierung oder vor Abfragen entschlüsselt werden, werden keine visuellen Nachweise für die Verschlüsselung angezeigt. Überprüfen Sie die Ressourcenprotokolle, um zu überprüfen, ob die Verschlüsselung funktioniert.
Nächste Schritte
Wenn Sie nicht mit der Azure-Sicherheitsarchitektur vertraut sind, finden Sie entsprechende Informationen in der Dokumentation zur Azure-Sicherheit und insbesondere in folgendem Artikel: