Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure AI Search verschlüsselt ruhende Daten automatisch mit von Microsoft verwalteten Schlüsseln. Wenn Sie eine andere Verschlüsselungsebene oder die Möglichkeit benötigen, Schlüssel zu widerrufen und den Zugriff auf Inhalte herunterzufahren, können Sie Schlüssel verwenden, die Sie in Azure Key Vault erstellen und verwalten. In diesem Artikel wird erläutert, wie Sie die CMK-Verschlüsselung (Customer Managed Key) einrichten.
Sie können Schlüssel entweder mit Azure Key Vault oder azure Key Vault Managed HSM (Hardware Security Module) speichern. Ein Azure Key Vault Managed HSM ist ein HSM mit FIPS 140-2 Level 3-Zertifizierung. HSM-Unterstützung ist neu in Azure AI Search. Um zu HSM zu migrieren, drehen Sie Ihre Schlüssel , und wählen Sie verwaltetes HSM für den Speicher aus.
Wichtig
CMK-Verschlüsselung ist unumkehrbar. Sie können Schlüssel drehen und die CMK-Konfiguration ändern, die Indexverschlüsselung dauert jedoch für die Lebensdauer des Indexes. Nach der CMK-Verschlüsselung kann nur auf einen Index zugegriffen werden, wenn der Suchdienst Zugriff auf den Schlüssel hat. Wenn Sie den Zugriff auf den Schlüssel widerrufen, indem Sie die Rollenzuweisung löschen oder ändern, kann der Index nicht verwendet werden, und der Dienst kann erst skaliert werden, wenn der Index gelöscht oder der Zugriff auf den Schlüssel wiederhergestellt wird. Wenn Sie Schlüssel löschen oder drehen, wird der neueste Schlüssel für bis zu 60 Minuten zwischengespeichert.
CMK-verschlüsselte Objekte
CMK-Verschlüsselung gilt für einzelne Objekte, wenn sie erstellt werden. 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 kommt der Datenträger nie in Kontakt mit unverschlüsselten Daten.
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. Vertrauliche Inhalte beziehen sich auf Verbindungszeichenfolgen, Beschreibungen, Identitäten, Schlüssel und Benutzereingaben. 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 verschlüsselt. Alle Verweise auf externe Ressourcen, z. B. Azure-Datenquellen oder Azure OpenAI-Modelle, werden ebenfalls verschlüsselt.
Wenn Sie CMK für Ihren Suchdienst benötigen, legen Sie eine Erzwingungsrichtlinie fest.
Voraussetzungen
Azure AI Search auf einer abrechnungsfähigen Ebene (Einfach oder höher, in einer beliebigen Region).
Azure Key Vault und eine Schlüsseltresor mit aktivierten Funktionen für vorläufiges Löschen und Bereinigungsschutz. Oder Azure Key Vault Managed HSM. Diese Ressource kann in jedem Abonnement vorhanden sein, muss sich jedoch im selben Mandanten wie Azure KI-Suche befinden.
Möglichkeit zum Einrichten von Berechtigungen für den Schlüsselzugriff und zum Zuweisen von Rollen. Zum Erstellen von Schlüsseln müssen Sie Key Vault Crypto Officer in Azure Key Vault oder verwaltetem HSM Crypto Officer in Azure Key Vault Managed HSM sein.
Um Rollen zuzuweisen, müssen Sie Abonnementbesitzer, Benutzerzugriffsadministrator, Rollenbasierte Zugriffssteuerungsadministrator oder einer benutzerdefinierten Rolle mit Microsoft.Authorization/roleAssignments/Schreibberechtigung zugewiesen sein.
Schritt 1: Erstellen eines Verschlüsselungsschlüssels
Verwenden Sie entweder Azure Key Vault oder Azure Key Vault Managed HSM, um einen Schlüssel zu erstellen. 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.
Es wird empfohlen , diese Tipps zu überprüfen, bevor Sie beginnen.
Erforderliche Vorgänge sind "Wrap", " Unwrap", "Encrypt" und "Decrypt".
Sie können einen Azure Key Vault im Azure-Portal, mit der Azure-Befehlszeilenschnittstelle oder mit Azure PowerShell erstellen.
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 OptionenGenerieren 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.
Rufen Sie nach dem Erstellen des Schlüssels die Schlüssel-ID ab. Wählen Sie den Schlüssel aus, wählen Sie die aktuelle Version aus, und kopieren Sie dann 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. Erinnern Sie sich daran, dass die erforderlichen Vorgänge "Wrap", " Unwrap", "Encrypt" und "Decrypt" sind.
Schritt 2: Erstellen eines Sicherheitsprinzipals
Erstellen Sie einen Sicherheitsprinzipal, den Ihr Suchdienst für den Zugriff auf den Verschlüsselungsschlüssel verwendet. Sie können eine verwaltete Identität und Rollenzuweisung verwenden, oder Sie können eine Anwendung registrieren und der Suchdienst die Anwendungs-ID für Anforderungen bereitstellen lassen.
Es wird empfohlen, eine verwaltete Identität und Rollen zu verwenden. Sie können entweder eine vom System verwaltete Identität oder eine vom Benutzer verwaltete Identität verwenden. Eine verwaltete Identität ermöglicht Es Ihrem Suchdienst, sich über die Microsoft Entra-ID zu authentifizieren, ohne Anmeldeinformationen (ApplicationID oder ApplicationSecret) im Code zu speichern. 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)
- Eine App registrieren
Aktivieren Sie die systemseitig zugewiesene verwaltete Identität für Ihren Suchdienst. Es ist ein Zwei-Klick-Vorgang, aktivieren und speichern.
Schritt 3: Erteilen von Berechtigungen
Wenn Sie Ihren Suchdienst für die Verwendung einer verwalteten Identität konfiguriert haben, weisen Sie Rollen zu, die ihm Zugriff auf den Verschlüsselungsschlüssel gewähren.
Die rollenbasierte Zugriffssteuerung wird dem Zugriffsrichtlinien-Berechtigungsmodell vorgezogen empfohlen. Für weitere Informationen oder Migrationsschritte beginnen Sie mit der rollenbasierten Zugriffssteuerung (Azure RBAC) im Vergleich zu Zugriffsrichtlinien (Legacy).
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 eine Rolle aus:
- Wählen Sie im Azure Key Vault Benutzer für die Verschlüsselung im Azure Key Vault Krypto-Dienst aus.
- Wählen Sie im verwalteten HSM die Option Managed HSM Crypto Service Encryption User aus.
Wählen Sie verwaltete Identitäten, dann die Mitglieder und schließlich die verwaltete Identität Ihres Suchdiensts aus. Wenn Sie lokal testen, weisen Sie diese Rolle auch sich selbst zu.
Wählen Sie Überprüfen und zuweisen aus.
Warten Sie einige Minuten, bis die Rollenzuweisung einsatzbereit ist.
Schritt 4: Verschlüsseln von Inhalten
Verschlüsselung tritt auf, wenn Sie ein Objekt erstellen oder aktualisieren. Sie können das Azure-Portal für ausgewählte Objekte verwenden. Verwenden Sie für jedes Objekt die Search-REST-API oder ein Azure SDK. Lesen Sie das Python-Beispiel in diesem Artikel, um zu sehen, wie Inhalte programmgesteuert verschlüsselt werden.
Wenn Sie ein neues Objekt im Azure-Portal erstellen, können Sie einen vordefinierten vom Kunden verwalteten Schlüssel in einem Schlüsseltresor angeben. Im Azure-Portal können Sie die CMK-Verschlüsselung für Folgendes aktivieren:
- Indizes
- Datenquellen
- Indexierer
Die Anforderungen für die Verwendung des Azure-Portals sind: Der Schlüsseltresor und der Schlüssel müssen vorhanden sein, und Sie müssen haben die vorherigen Schritte für autorisierten Zugriff auf den Schlüssel ausgeführt haben.
Im Azure-Portal werden Skillsets in der JSON-Ansicht definiert. Verwenden Sie den JSON-Code in den REST-API-Beispielen, um einen vom Kunden verwalteten Schlüssel für ein Skillset bereitzustellen.
Melden Sie sich beim Azure-Portal an, und öffnen Sie Ihre Suchdienstseite.
Wählen Sie unter "Suchverwaltung" die Option "Indizes", " Indexer" oder "Datenquellen" aus.
Fügen Sie ein neues Objekt hinzu. Wählen Sie in der Objektdefinition die von Microsoft verwaltete Verschlüsselung aus.
Wählen Sie vom Kunden verwaltete Schlüssel aus, und wählen Sie Ihr Abonnement, Ihren Tresor, Ihren Schlüssel und Ihre Version aus.
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. Stellen Sie sicher, dass Sie über eine Rollenzuweisung verfügen, die Lesezugriff auf den Schlüssel gewährt.
Wählen Sie auf der „Azure Key Vault“-Seite Objekte>Schlüsselaus.
Wählen Sie den 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 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.
Eine Richtlinie zur Sicherstellung der CMK-Konformität festlegen
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 zwei optionale integrierte Richtlinien im Zusammenhang mit CMK. Diese Richtlinien gelten für neue und vorhandene Suchdienste.
Effekt | Effekt, wenn aktiviert |
---|---|
AuditIfNotExists | Überprüfung der Richtlinienkonformität: Haben Objekte einen vom Kunden verwalteten Schlüssel definiert und ist der Inhalt verschlüsselt? Dieser Effekt gilt für vorhandene Dienste mit Inhalten. Es wird jedes Mal ausgewertet, wenn ein Objekt erstellt oder aktualisiert wird, oder je nach Auswertungszeitplan. Weitere Informationen |
Leugnen | Überprüft die Richtliniendurchsetzung: Hat der Suchdienst SearchEncryptionWithCmk auf Enabled festgelegt. Dieser Effekt gilt nur für neue Dienste, die mit aktivierter Verschlüsselung erstellt werden müssen. Vorhandene Dienste bleiben betriebsbereit, aber Sie können sie nur aktualisieren, wenn Sie den Dienst patchen. Keines der Werkzeuge, die für Bereitstellungsdienste verwendet werden, macht diese Eigenschaft verfügbar. Beachten Sie daher, dass das Festlegen der Richtlinie Sie auf die programmgesteuerte Einrichtung einschränkt. |
Zuweisen einer Richtlinie
Navigieren Sie im Azure-Portal zu einer integrierten Richtlinie, und wählen Sie dann " Zuweisen" aus.
Deny (Verweigern)
Hier ist ein Beispiel für die AuditIfExists-Richtlinie im Azure-Portal:
Legen Sie den Richtlinienbereich fest, indem Sie die Abonnement- und Ressourcengruppe auswählen. Schließen Sie alle Suchdienste aus, für die die Richtlinie nicht gelten soll.
Übernehmen oder ändern Sie die Standardwerte. Wählen Sie "Überprüfen+Erstellen" gefolgt von "Erstellen" aus.
Aktivierung der Durchsetzung von CMK-Richtlinien
Eine Richtlinie, die einer Ressourcengruppe in Ihrem Abonnement zugewiesen ist, wird sofort wirksam. Auditrichtlinien kennzeichnen nicht-konforme Ressourcen, aber Verweigerungsrichtlinien verhindern die Erstellung und Aktualisierung nicht-konformer Suchdienste. In diesem Abschnitt wird erläutert, wie Sie einen kompatiblen Suchdienst erstellen oder einen Dienst aktualisieren, um ihn kompatibel zu machen. Um Objekte in die Compliance zu bringen, beginnen Sie in Schritt 1 dieses Artikels.
Erstellen eines kompatiblen Suchdiensts
Erstellen Sie sie für neue Suchdienste mit SearchEncryptionWithCmk festgelegt auf Enabled
.
Weder das Azure-Portal noch die Befehlszeilentools (Azure CLI und Azure PowerShell) stellen diese Eigenschaft nativ bereit, aber Sie können die Verwaltungs-REST-API verwenden, um einen Suchdienst mit einer CMK-Richtliniendefinition bereitzustellen.
Dieses Beispiel stammt aus "Verwalten Ihres Azure AI Search-Diensts mit REST-APIs", geändert, um die SearchEncryptionWithCmk-Eigenschaft einzuschließen .
### Create a search service (provide an existing resource group)
@resource-group = my-rg
@search-service-name = my-search
PUT https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service-name}}?api-version=2023-11-01 HTTP/1.1
Content-type: application/json
Authorization: Bearer {{token}}
{
"location": "North Central US",
"sku": {
"name": "basic"
},
"properties": {
"replicaCount": 1,
"partitionCount": 1,
"hostingMode": "default",
"encryptionWithCmk": {
"enforcement": "Enabled"
}
}
}
Aktualisieren eines vorhandenen Suchdiensts
Für vorhandene Suchdienste, die jetzt nicht kompatibel sind, patchen Sie sie mithilfe der Dienste – Update-API oder dem Azure CLI az-Ressourcenaktualisierungsbefehl . Durch das Patchen der Dienste wird die Möglichkeit zum Aktualisieren von Suchdiensteigenschaften wiederhergestellt.
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
Verwenden Sie die folgenden Anweisungen zum Drehen von Schlüsseln oder zum Migrieren von Azure Key Vault zum HardwareSicherheitsmodell (Hardware Security Model, HSM).
Für die Schlüsseldrehung empfehlen wir die Verwendung der Autorotation-Funktionen von Azure Key Vault. Wenn Sie autorotation verwenden, lassen Sie die Schlüsselversion in Objektdefinitionen aus. Der neueste Schlüssel wird anstelle einer bestimmten Version verwendet.
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.
Erinnern Sie sich daran, dass Schlüssel für 60 Minuten zwischengespeichert werden. Denken Sie daran, wenn Sie Tasten testen und drehen.
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. In diesem Schritt können Sie vom Schlüsseltresor zu HSM wechseln.
Aktualisieren Sie die encryptionKey-Eigenschaft eines Indexes oder einer Synonymkarte, um die neuen Werte zu verwenden. 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 im 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 diese Meldung: "Access forbidden. The query key used might have been revoked - please retry."
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.
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 Azure-Mandanten , damit Sie Ihren verwalteten Schlüssel über Rollenzuweisungen abrufen und eine Verbindung über ein System oder eine vom Benutzer verwaltete Identität herstellen können. Weitere Informationen zum Erstellen eines Mandanten finden Sie unter Erstellen eines neuen Mandanten.
Aktivieren Sie den Löschschutz und das vorläufige Löschen für einen Schlüsseltresor. 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 „Soft Delete“ und „Löschschutz“ aktiviert werden. Vorläufiges Löschen ist standardmäßig aktiviert, sodass nur dann Probleme auftreten, wenn Sie diese Funktion absichtlich deaktivieren. Der Löschschutz ist standardmäßig nicht aktiviert, ist jedoch für die CMK-Verschlüsselung 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, Anwendungsgeheimnissen und der Registrierung 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.
Arbeiten mit verschlüsselten Inhalten
Bei der CMK-Verschlüsselung können Sie aufgrund der zusätzlichen Verschlüsselung/Entschlüsselung latenz sowohl für die Indizierung als auch für Abfragen feststellen. 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 Synonymkarten. 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: