Azure Data Explorer verschlüsselt alle Daten in einem ruhenden Speicherkonto. Standardmäßig werden Daten mit von Microsoft verwalteten Schlüsseln verschlüsselt. Um zusätzliche Kontrolle über Verschlüsselungsschlüssel zu erhalten, können Sie vom Kunden verwaltete Schlüssel bereitstellen, die für die Datenverschlüsselung verwendet werden sollen.
Vom Kunden verwaltete Schlüssel müssen in einem Azure Key Vault gespeichert werden. Sie können eigene Schlüssel erstellen und in einem Schlüsseltresor speichern, oder Sie können eine Azure Key Vault-API verwenden, um Schlüssel zu generieren. Der Azure Data Explorer-Cluster und der Schlüsseltresor müssen sich in derselben Region befinden, können jedoch in verschiedenen Abonnements verwendet werden. Eine ausführliche Erläuterung zu vom Kunden verwalteten Schlüsseln finden Sie unter vom Kunden verwalteten Schlüsseln mit Azure Key Vault.
In diesem Artikel erfahren Sie, wie Sie vom Kunden verwaltete Schlüssel konfigurieren.
Um vom Kunden verwaltete Schlüssel mit Azure Data Explorer zu konfigurieren, müssen Sie zwei Eigenschaften für den Schlüsseltresor festlegen: Soft Delete und Do Not Purge. Diese Eigenschaften sind standardmäßig nicht aktiviert. Um diese Eigenschaften zu aktivieren, führen Sie die Aktivierung der Soft-Löschung und die Aktivierung des Löschschutzes in PowerShell oder Azure CLI auf einem neuen oder vorhandenen Schlüsseltresor aus. Es werden nur RSA-Schlüssel der Größe 2048 unterstützt. Weitere Informationen zu Schlüsseln finden Sie unter Key Vault-Schlüssel.
Hinweis
Die Datenverschlüsselung mithilfe von vom Kunden verwalteten Schlüsseln wird für Leader- und Followercluster nicht unterstützt.
Zuweisen einer verwalteten Identität zum Cluster
Um vom Kunden verwaltete Schlüssel für Ihren Cluster zu aktivieren, weisen Sie dem Cluster zunächst entweder eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität zu. Sie verwenden diese verwaltete Identität, um dem Cluster Berechtigungen für den Zugriff auf den Schlüsseltresor zu erteilen. Informationen zum Konfigurieren verwalteter Identitäten finden Sie unter verwaltete Identitäten.
Aktivieren der Verschlüsselung mit vom Kunden verwalteten Schlüsseln
In den folgenden Schritten wird erläutert, wie Sie die Verschlüsselung von vom Kunden verwalteten Schlüsseln über das Azure-Portal aktivieren. Standardmäßig verwendet die Azure Data Explorer-Verschlüsselung von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von vom Kunden verwalteten Schlüsseln, und geben Sie den Schlüssel an, der dem Cluster zugeordnet werden soll.
Wechseln Sie im Azure-Portal zu Ihrer Azure Data Explorer-Clusterressource .
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 " Vom Kunden verwalteter Schlüssel " aus.
Klicken Sie auf "Taste 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 Key Vault zu erstellen, werden Sie zum Bildschirm Schlüsseltresor erstellen weitergeleitet.
Wählen Sie "Taste" aus.
Version:
- Um sicherzustellen, dass dieser Schlüssel immer die neueste Schlüsselversion verwendet, aktivieren Sie das Kontrollkästchen "Immer aktuelle Schlüsselversion verwenden ".
- Wählen Sie andernfalls Version aus.
Klicke auf Auswählen.
Wählen Sie unter "Identitätstyp" die Option "System zugewiesen " oder "Benutzer zugewiesen" aus.
Wenn Sie "Benutzer zugewiesen" auswählen, wählen Sie eine vom Benutzer zugewiesene Identität aus der Dropdownliste aus.
Wählen Sie im Verschlüsselungsbereich , der nun Ihren Schlüssel enthält, "Speichern" aus. Wenn die CMK-Erstellung erfolgreich ist, wird in Benachrichtigungen eine Erfolgsmeldung angezeigt.
Wenn Sie beim Aktivieren von vom Kunden verwalteten Schlüsseln für Ihren Azure Data Explorer-Cluster die vom System zugewiesene Identität auswählen, erstellen Sie eine systembasierte Identität für den Cluster, falls keine vorhanden ist. Darüber hinaus stellen Sie die erforderlichen Berechtigungen "get", "wrapKey" und "unwrapKey" für Ihren Azure Data Explorer-Cluster im ausgewählten Key Vault bereit und rufen die Key Vault-Eigenschaften ab.
Hinweis
Wählen Sie "Aus" aus, um den vom Kunden verwalteten Schlüssel zu entfernen, nachdem er erstellt wurde.
In den folgenden Abschnitten wird erläutert, wie Sie die Verschlüsselung von vom Kunden verwalteten Schlüsseln mithilfe des C#-Clients von Azure Data Explorer konfigurieren.
Pakete installieren
Authentifizierung
Erstellen Sie zum Ausführen der Beispiele in diesem Artikel eine Azure AD-Anwendung und einen Dienstprinzipal, der auf Ressourcen zugreifen kann. Sie können Rollenzuweisungen auf der Abonnementebene hinzufügen und die erforderlichen Azure AD Directory (tenant) ID, Application ID, und Application Secret erhalten.
Der folgende Codeausschnitt veranschaulicht die Verwendung der Microsoft Authentication Library (MSAL) zum Abrufen eines Azure AD-Anwendungstokens für den Zugriff auf Ihren Cluster. 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.
Standardmäßig verwendet die Azure Data Explorer-Verschlüsselung von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von vom Kunden verwalteten Schlüsseln, und geben Sie den Schlüssel an, der dem Cluster zugeordnet werden soll.
Aktualisieren Sie Ihren Cluster mithilfe des folgenden Codes:
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 Succeeded Wert enthält, wurde Ihr Cluster erfolgreich aktualisiert.
In den folgenden Schritten wird erläutert, wie Sie die Verschlüsselung von vom Kunden verwalteten Schlüsseln mithilfe des Azure CLI-Clients aktivieren. Standardmäßig verwendet die Azure Data Explorer-Verschlüsselung von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von vom Kunden 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 Ihr Cluster registriert ist. Ersetzen Sie MyAzureSub durch den Namen des Azure-Abonnements, das Sie verwenden möchten.
az account set --subscription MyAzureSub
Führen Sie den folgenden Befehl aus, um den neuen Schlüssel mit der zugewiesenen Systemidentität des Clusters festzulegen.
az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>"
Alternativ können Sie den neuen Schlüssel mit einer vom Benutzer zugewiesenen Identität festlegen.
az kusto cluster update --cluster-name "mytestcluster" --resource-group "mytestrg" --key-vault-properties key-name="<key-name>" key-version="<key-version>" key-vault-uri="<key-vault-uri>" key-user-identity="<user-identity-resource-id>"
Führen Sie den folgenden Befehl aus, und überprüfen Sie die Eigenschaft "keyVaultProperties", um zu überprüfen, ob 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 vom Kunden verwalteten Schlüsseln mithilfe von PowerShell aktivieren. Standardmäßig verwendet die Azure Data Explorer-Verschlüsselung von Microsoft verwaltete Schlüssel. Konfigurieren Sie Ihren Azure Data Explorer-Cluster für die Verwendung von vom Kunden 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 Ihr Cluster registriert ist.
Set-AzContext -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Führen Sie den folgenden Befehl aus, um den neuen Schlüssel mithilfe einer vom System zugewiesenen Identität festzulegen.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>"
Alternativ können Sie den neuen Schlüssel mithilfe einer vom Benutzer zugewiesenen Identität festlegen.
Update-AzKustoCluster -ResourceGroupName "mytestrg" -Name "mytestcluster" -KeyVaultPropertyKeyName "<key-name>" -KeyVaultPropertyKeyVaultUri "<key-vault-uri>" -KeyVaultPropertyKeyVersion "<key-version>" -KeyVaultPropertyUserIdentity "user-assigned-identity-resource-id"
Führen Sie den folgenden Befehl aus, und überprüfen Sie "KeyVaultProperty..." eigenschaften, um zu überprüfen, ob der Cluster erfolgreich aktualisiert wurde.
Get-AzKustoCluster -Name "mytestcluster" -ResourceGroupName "mytestrg" | Format-List
In den folgenden Schritten wird erläutert, wie Kundenverwaltete Schlüssel mithilfe von Azure Resource Manager-Vorlagen konfiguriert werden. Standardmäßig verwendet die Azure Data Explorer-Verschlüsselung von Microsoft verwaltete Schlüssel. Konfigurieren Sie in diesem Schritt Ihren Azure Data Explorer-Cluster so, dass vom Kunden verwaltete Schlüssel verwendet werden, und geben Sie den Schlüssel an, der dem Cluster zugeordnet werden soll.
Wenn Sie eine vom System zugewiesene Identität verwenden möchten, um auf den Schlüsseltresor zuzugreifen, lassen Sie es userIdentity leer. Legen Sie andernfalls die Ressourcen-ID der Identität fest.
Sie können die Azure Resource Manager-Vorlage mithilfe des Azure-Portals oder mithilfe von PowerShell bereitstellen.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "[concat('kusto', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Name of the cluster to create"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {},
"resources": [
{
"name": "[parameters('clusterName')]",
"type": "Microsoft.Kusto/clusters",
"sku": {
"name": "Standard_E8ads_v5",
"tier": "Standard",
"capacity": 2
},
"apiVersion": "2019-09-07",
"location": "[parameters('location')]",
"properties": {
"keyVaultProperties": {
"keyVaultUri": "<keyVaultUri>",
"keyName": "<keyName>",
"keyVersion": "<keyVersion>",
"userIdentity": "<userIdentity>"
}
}
}
]
}
Aktualisieren der Schlüsselversion
Wenn Sie eine neue Version eines Schlüssels erstellen, müssen Sie den Cluster aktualisieren, um die neue Version zu verwenden. Rufen Sie zunächst auf Get-AzKeyVaultKey , um die neueste Version des Schlüssels abzurufen. Aktualisieren Sie dann die Schlüsseltresoreigenschaften des Clusters so, dass sie die neue Version des Schlüssels verwenden, wie in "Aktivieren der Verschlüsselung mit vom Kunden verwalteten Schlüsseln" gezeigt.
Nächste Schritte