Konfigurieren von kundenseitig verwalteten Schlüsseln
Artikel
Azure Data Explorer verschlüsselt alle Daten in einem Speicherkonto für ruhende Daten. Standardmäßig werden Daten mit von Microsoft verwalteten Schlüsseln verschlüsselt. Um zusätzliche Kontrolle über die Verschlüsselungsschlüssel zu erhalten, können Sie kundenseitig verwaltete Schlüssel für die Datenverschlüsselung bereitstellen.
Kundenseitig verwaltete Schlüssel müssen in Azure Key Vault gespeichert werden. Sie können eigene Schlüssel erstellen und in einer Key Vault-Instanz speichern oder eine Azure Key Vault-API verwenden, um Schlüssel zu generieren. Der Azure Data Explorer-Cluster und die Key Vault-Instanz müssen sich in der gleichen Region befinden, können aber zu verschiedenen Abonnements gehören. Eine ausführliche Erläuterung zu kundenseitig verwalteten Schlüsseln finden Sie unter Azure Storage-Verschlüsselung für ruhende Daten im Abschnitt „Von Kunden verwaltete Schlüssel mit Azure Key Vault“.
Der vorliegende Artikel veranschaulicht das Konfigurieren von kundenseitig verwalteten Schlüsseln.
Konfigurieren von Azure Key Vault
Um kundenseitig verwaltete Schlüssel mit Azure Data Explorer zu konfigurieren, müssen Sie zwei Eigenschaften in Key Vault festlegen: Vorläufiges Löschen und Do Not Purge (Nicht bereinigen). Diese Eigenschaften sind standardmäßig nicht aktiviert. Um diese Eigenschaften zu aktivieren, führen Sie Aktivieren des vorläufigen Löschens und Aktivieren des Bereinigungsschutzes in PowerShell oder Azure CLI in einem neuen oder vorhandenen Schlüsseltresor aus. Es werden ausschließlich RSA-Schlüssel und die Größe 2.048 unterstützt. Weitere Informationen zu Schlüsseln finden Sie unter Key Vault-Schlüssel.
Hinweis
Die Datenverschlüsselung mithilfe von kundenseitig verwalteten Schlüsseln wird in Leader- und Followerclustern nicht unterstützt.
Zuweisen einer verwalteten Identität zum Cluster
Um kundenseitig verwaltete Schlüssel für Ihren Cluster zu aktivieren, weisen Sie dem Cluster zunächst eine systemseitig oder benutzerseitig zugewiesene verwaltete Identität hinzu. Sie verwenden diese verwaltete Identität, um dem Cluster Berechtigungen für den Zugriff auf die Key Vault-Instanz zu gewähren. Informationen zum Konfigurieren verwalteter Identitäten finden Sie unter Verwaltete Identitäten.
Aktivieren der Verschlüsselung mit von Kunden verwalteten Schlüsseln
In den folgenden Schritten wird erläutert, wie Sie die Verschlüsselung von kundenseitig verwalteten Schlüsseln mithilfe des Azure-Portal aktivieren. Die Azure Data Explorer-Verschlüsselung verwendet standardmäßig von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von kundenseitig verwalteten Schlüsseln, und geben Sie den Schlüssel an, der dem Cluster zugeordnet werden soll.
Wählen Sie im linken Bereich des Portals Einstellungen>Verschlüsselung aus.
Wählen Sie im Bereich Verschlüsselung die Option Ein für die Einstellung Kundenseitig verwalteter Schlüssel aus.
Klicken Sie auf Schlüssel auswählen.
Wählen Sie im Fenster Schlüssel aus Azure Key Vault auswählen einen vorhandenen Schlüsseltresor aus der Dropdownliste aus. Wenn Sie Neu erstellen auswählen, um einen neuen Schlüsseltresor zu erstellen, werden Sie zum Bildschirm Schlüsseltresor erstellen weitergeleitet.
Wählen Sie Schlüssel aus.
Version:
Um sicherzustellen, dass für diesen Schlüssel immer die aktuelle Schlüsselversion verwendet wird, aktivieren Sie das Kontrollkästchen Always use current key version (Immer aktuelle Schlüsselversion verwenden).
Wählen Sie andernfalls Version aus.
Klicken Sie auf Auswählen.
Wählen Sie unter Identitätstyp die Option Systemseitig zugewiesen oder Benutzerseitig zugewiesene aus.
Wählen Sie bei der Auswahl von Benutzerseitig zugewiesene in der Dropdownliste eine benutzerseitig zugewiesene Identität aus.
Wählen Sie im Bereich Verschlüsselung, der jetzt Ihren Schlüssel enthält, Speichern aus. Wenn die CMK-Erstellung erfolgreich ist, wird eine Erfolgsmeldung in Benachrichtigungen angezeigt.
Wenn Sie bei der Aktivierung von kundenseitig verwalteten Schlüsseln für Ihren Azure Data Explorer-Cluster eine systemseitig zugewiesene Identität auswählen, erstellen Sie eine systemseitig zugewiesene Identität für den Cluster, falls diese noch nicht vorhanden ist. Darüber hinaus stellen Sie die erforderlichen get-, wrapKey- und unwrapKey-Berechtigungen für Ihren Azure Data Explorer-Cluster in der ausgewählten Key Vault-Instanz zur Verfügung und erhalten die Key Vault-Eigenschaften.
Hinweis
Wählen Sie Aus, um den vom Kunden verwalteten Schlüssel nach seiner Erstellung zu entfernen.
In den folgenden Abschnitten wird erläutert, wie Sie die Verschlüsselung von kundenseitig verwalteten Schlüsseln mithilfe des Azure Data Explorer C#-Clients konfigurieren.
Zum Ausführen der Beispiele in diesem Artikel erstellen Sie eine Azure AD-Anwendung und einen Dienstprinzipal, der auf Ressourcen zugreifen kann. Sie können eine Rollenzuweisung im Abonnementbereich hinzufügen und die erforderliche Azure AD Directory (tenant) ID, Application IDund Application Secret abrufen.
Der folgende Codeausschnitt veranschaulicht, wie Sie mithilfe der Microsoft Authentication Library (MSAL) ein Azure AD-Anwendungstoken für den Zugriff auf Ihren Cluster abrufen. Damit der Ablauf erfolgreich ist, muss die Anwendung bei Azure AD registriert sein, und Sie müssen über die Anmeldeinformationen für die Anwendungsauthentifizierung verfügen, z. B. einen von Azure AD ausgestellten Anwendungsschlüssel oder ein in Azure AD registriertes X.509v2-Zertifikat.
Konfigurieren von kundenseitig verwalteten Schlüsseln
Die Azure Data Explorer-Verschlüsselung verwendet standardmäßig von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von kundenseitig verwalteten Schlüsseln, und geben Sie den Schlüssel an, der dem Cluster zugeordnet werden soll.
Aktualisieren Sie Ihren Cluster mit dem folgenden Code:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; // Azure AD Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; // Application ID
var clientSecret = "PlaceholderClientSecret"; // Application secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
// Create a confidential authentication client for Azure AD:
var authClient = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority($"https://login.microsoftonline.com/{tenantId}")
.WithClientSecret(clientSecret) // can be replaced by .WithCertificate to authenticate with an X.509 certificate
.Build();
// Acquire application token
var result = authClient.AcquireTokenForClient(
new[] { "https://management.core.windows.net/.default" } // Define scopes for accessing Azure management plane
).ExecuteAsync().Result;
var credentials = new TokenCredentials(result.AccessToken, result.TokenType);
var kustoManagementClient = new KustoManagementClient(credentials) { SubscriptionId = subscriptionId };
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var clusterPatch = new ClusterUpdate(
keyVaultProperties: new KeyVaultProperties(
keyName: "<keyName>",
keyVersion: "<keyVersion>", // Optional, leave as NULL for the latest version of the key.
keyVaultUri: "https://<keyVaultName>.vault.azure.net/",
userIdentity: "/subscriptions/<identitySubscriptionId>/resourcegroups/<identityResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>" // Use NULL if you want to use system assigned identity.
)
);
await kustoManagementClient.Clusters.UpdateAsync(resourceGroupName, clusterName, clusterPatch);
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Cluster erfolgreich aktualisiert wurde:
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Wenn das Ergebnis ProvisioningState mit dem Wert Succeeded enthält, wurde Ihr Cluster erfolgreich aktualisiert.
In den folgenden Schritten wird erläutert, wie Sie die Verschlüsselung von kundenseitig verwalteten Schlüsseln mithilfe des Azure CLI-Clients aktivieren. Die Azure Data Explorer-Verschlüsselung verwendet standardmäßig von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von kundenseitig verwalteten Schlüsseln, und geben Sie den Schlüssel an, der dem Cluster zugeordnet werden soll.
Führen Sie den folgenden Befehl aus, um sich bei Azure anzumelden:
az login
Legen Sie das Abonnement fest, in dem der Cluster registriert ist. Ersetzen Sie MyAzureSub durch den Namen des gewünschten Azure-Abonnements.
az account set --subscription MyAzureSub
Führen Sie den folgenden Befehl aus, um den neuen Schlüssel mithilfe der systemseitig zugewiesenen Identität des Clusters festzulegen.
Führen Sie den folgenden Befehl aus, und überprüfen Sie die keyVaultProperties-Eigenschaft, um sicherzustellen, dass der Cluster erfolgreich aktualisiert wurde.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
In den folgenden Schritten wird erläutert, wie Sie die verschlüsselung von kundenseitig verwalteten Schlüsseln mithilfe von PowerShell aktivieren. Die Azure Data Explorer-Verschlüsselung verwendet standardmäßig von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von kundenseitig verwalteten Schlüsseln, und geben Sie den Schlüssel an, der dem Cluster zugeordnet werden soll.
Führen Sie den folgenden Befehl aus, um sich bei Azure anzumelden:
Connect-AzAccount
Legen Sie das Abonnement fest, in dem der Cluster registriert ist.
Führen Sie den folgenden Befehl aus, und überprüfen Sie die Eigenschaften vom Typ „KeyVaultProperty...“, um sicherzustellen, dass der Cluster erfolgreich aktualisiert wurde:
In den folgenden Schritten wird erläutert, wie Sie kundenseitig verwaltete Schlüssel mithilfe von Azure Resource Manager-Vorlagen konfigurieren. Die Azure Data Explorer-Verschlüsselung verwendet standardmäßig von Microsoft verwaltete Schlüssel. In diesem Schritt konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von kundenseitig verwalteten Schlüsseln und geben den Schlüssel an, der dem Cluster zugeordnet werden soll.
Wenn Sie eine vom systemseitig zugewiesene Identität für den Zugriff auf den Schlüsseltresor verwenden möchten, lassen Sie userIdentity leer. Legen Sie andernfalls die Ressourcen-ID der Identität fest.
Sie können die Azure Resource Manager-Vorlage über das Azure-Portal oder mithilfe von PowerShell bereitstellen.
Wenn Sie eine neue Version eines Schlüssels erstellen, müssen Sie den Cluster aktualisieren, damit er die neue Version verwendet. Rufen Sie zuerst Get-AzKeyVaultKey auf, um die neueste Version des Schlüssels abzurufen. Aktualisieren Sie dann die Schlüsseltresoreigenschaften des Clusters, um die neue Version des Schlüssels zu verwenden, wie unter Aktivieren der Verschlüsselung mit kundenseitig verwalteten Schlüsseln gezeigt.