Azure Data Explorer krypterar alla data i ett vilande lagringskonto. Som standard krypteras data med Microsoft-hanterade nycklar. Om du vill ha ytterligare kontroll över krypteringsnycklar kan du ange kundhanterade nycklar som ska användas för datakryptering.
Kundhanterade nycklar måste lagras i en Azure-Key Vault. Du kan skapa egna nycklar och lagra dem i ett nyckelvalv, eller så kan du använda ett Azure Key Vault API för att generera nycklar. Azure-Data Explorer-klustret och nyckelvalvet måste finnas i samma region, men de kan finnas i olika prenumerationer. En detaljerad förklaring av kundhanterade nycklar finns i Kundhanterade nycklar med Azure Key Vault.
Den här artikeln visar hur du konfigurerar kundhanterade nycklar.
Konfigurera Azure Key Vault
Om du vill konfigurera kundhanterade nycklar med Azure Data Explorer måste du ange två egenskaper i nyckelvalvet: Mjuk borttagning och Rensa inte. Dessa egenskaper är inte aktiverade som standard. Aktivera dessa egenskaper genom att aktivera mjuk borttagning och aktivera rensningsskydd i PowerShell eller Azure CLI på ett nytt eller befintligt nyckelvalv. Endast RSA-nycklar av storlek 2048 stöds. Mer information om nycklar finns i Key Vault nycklar.
Om du vill aktivera kundhanterade nycklar för klustret tilldelar du först antingen en systemtilldelad eller användartilldelad hanterad identitet till klustret. Du använder den här hanterade identiteten för att ge klustret behörighet att komma åt nyckelvalvet. Information om hur du konfigurerar hanterade identiteter finns i Hanterade identiteter.
I följande steg förklaras hur du aktiverar kryptering av kundhanterade nycklar med hjälp av Azure Portal. Som standard använder Azure Data Explorer-kryptering Microsoft-hanterade nycklar. Konfigurera ditt Azure Data Explorer-kluster för att använda kundhanterade nycklar och ange nyckeln som ska associeras med klustret.
Välj Inställningar>Kryptering i det vänstra fönstret i portalen.
I fönstret Kryptering väljer du På för inställningen Kundhanterad nyckel .
Klicka på Välj nyckel.
I fönstret Välj nyckel från Azure Key Vault väljer du ett befintligt nyckelvalv i listrutan. Om du väljer Skapa ny för att skapa en ny Key Vault dirigeras du till skärmen Skapa Key Vault.
Välj Nyckel.
Version:
Om du vill se till att den här nyckeln alltid använder den senaste nyckelversionen markerar du kryssrutan Använd alltid aktuell nyckelversion .
Annars väljer du Version.
Klicka på Välj.
Under Identitetstyp väljer du Systemtilldelad eller Användartilldelad.
Om du väljer Användartilldelad väljer du en användartilldelad identitet i listrutan.
I fönstret Kryptering som nu innehåller nyckeln väljer du Spara. När CMK-skapandet lyckas visas ett meddelande i Meddelanden.
Om du väljer systemtilldelad identitet när du aktiverar kundhanterade nycklar för ditt Azure-Data Explorer kluster skapar du en systemtilldelad identitet för klustret om det inte finns någon. Dessutom tillhandahåller du de behörigheter som krävs för att hämta, wrapKey och unwrapKey till ditt Azure Data Explorer-kluster på den valda Key Vault och hämta egenskaperna för Key Vault.
Anteckning
Välj Av för att ta bort den kundhanterade nyckeln när den har skapats.
I följande avsnitt beskrivs hur du konfigurerar kryptering av kundhanterade nycklar med hjälp av Azure Data Explorer C#-klienten.
Om du vill köra exemplen i den här artikeln skapar du ett Azure AD program och tjänstens huvudnamn som kan komma åt resurser. Du kan lägga till rolltilldelning i prenumerationsomfånget och hämta nödvändiga Azure AD Directory (tenant) ID, Application IDoch Application Secret.
Följande kodfragment visar hur du använder Microsoft Authentication Library (MSAL) för att hämta en Azure AD programtoken för att komma åt klustret. För att flödet ska lyckas måste programmet vara registrerat med Azure AD och du måste ha autentiseringsuppgifterna för programautentisering, till exempel en Azure AD utfärdad programnyckel eller ett Azure AD-registrerat X.509v2-certifikat.
Konfigurera kundhanterade nycklar
Som standard använder Azure Data Explorer-kryptering Microsoft-hanterade nycklar. Konfigurera ditt Azure Data Explorer-kluster för att använda kundhanterade nycklar och ange nyckeln som ska associeras med klustret.
Uppdatera klustret med hjälp av följande kod:
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);
Kör följande kommando för att kontrollera om klustret har uppdaterats:
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Om resultatet innehåller värdet Succeeded uppdaterades ProvisioningState klustret.
Följande steg förklarar hur du aktiverar kryptering av kundhanterade nycklar med Azure CLI-klienten. Som standard använder Azure Data Explorer-kryptering Microsoft-hanterade nycklar. Konfigurera ditt Azure Data Explorer-kluster för att använda kundhanterade nycklar och ange nyckeln som ska associeras med klustret.
Kör följande kommandon för att logga in på Azure:
az login
Ange den prenumeration där klustret är registrerat. Ersätt MyAzureSub med namnet på den Azure-prenumeration som du vill använda.
az account set --subscription MyAzureSub
Kör följande kommando för att ange den nya nyckeln med klustrets systemtilldelade identitet
Kör följande kommando och kontrollera egenskapen "keyVaultProperties" för att verifiera att klustret har uppdaterats.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
Följande steg förklarar hur du aktiverar kryptering av kundhanterade nycklar med PowerShell. Som standard använder Azure Data Explorer-kryptering Microsoft-hanterade nycklar. Konfigurera ditt Azure Data Explorer-kluster för att använda kundhanterade nycklar och ange nyckeln som ska associeras med klustret.
Kör följande kommandon för att logga in på Azure:
Connect-AzAccount
Ange den prenumeration där klustret är registrerat.
Följande steg förklarar hur du konfigurerar kundhanterade nycklar med hjälp av Azure Resource Manager-mallar. Som standard använder Azure Data Explorer-kryptering Microsoft-hanterade nycklar. I det här steget konfigurerar du azure-Data Explorer-klustret så att de använder kundhanterade nycklar och anger nyckeln som ska associeras med klustret.
Om du vill använda en systemtilldelad identitet för att komma åt nyckelvalvet lämnar userIdentity du tomt. Annars anger du identitetens resurs-ID.
Du kan distribuera Azure Resource Manager-mallen med hjälp av Azure Portal eller med hjälp av PowerShell.
När du skapar en ny version av en nyckel måste du uppdatera klustret så att det använder den nya versionen. Anropa först Get-AzKeyVaultKey för att hämta den senaste versionen av nyckeln. Uppdatera sedan klustrets nyckelvalvegenskaper för att använda den nya versionen av nyckeln, som du ser i Aktivera kryptering med kundhanterade nycklar.