Usługa Azure Data Explorer szyfruje wszystkie dane na koncie magazynu magazynowanych. Domyślnie dane są szyfrowane przy użyciu kluczy zarządzanych przez firmę Microsoft. Aby uzyskać dodatkową kontrolę nad kluczami szyfrowania, możesz podać klucze zarządzane przez klienta do użycia na potrzeby szyfrowania danych.
Klucze zarządzane przez klienta muszą być przechowywane w usłudze Azure Key Vault. Możesz utworzyć własne klucze i przechowywać je w magazynie kluczy lub użyć interfejsu API usługi Azure Key Vault do generowania kluczy. Klaster usługi Azure Data Explorer i magazyn kluczy muszą znajdować się w tym samym regionie, ale mogą znajdować się w różnych subskrypcjach. Aby uzyskać szczegółowe wyjaśnienie dotyczące kluczy zarządzanych przez klienta, zobacz Klucze zarządzane przez klienta za pomocą usługi Azure Key Vault.
W tym artykule przedstawiono sposób konfigurowania kluczy zarządzanych przez klienta.
Przykłady kodu oparte na poprzednich wersjach zestawu SDK można znaleźć w zarchiwizowanym artykule.
Konfigurowanie usługi Azure Key Vault
Aby skonfigurować klucze zarządzane przez klienta za pomocą usługi Azure Data Explorer, należy ustawić dwie właściwości w magazynie kluczy: Usuwanie nietrwałe i Nie przeczyszczanie. Te właściwości nie są domyślnie włączone. Aby włączyć te właściwości, wykonaj włączanie usuwania nietrwałego i włączanie ochrony przed przeczyszczeniem w programie PowerShell lub interfejsie wiersza polecenia platformy Azure w nowym lub istniejącym magazynie kluczy. Obsługiwane są tylko klucze RSA o rozmiarze 2048. Aby uzyskać więcej informacji na temat kluczy, zobacz Key Vault klucze.
Uwaga
Aby uzyskać informacje o ograniczeniach używania kluczy zarządzanych przez klienta w klastrach liderów i obserwowanych, zobacz Ograniczenia.
Przypisywanie tożsamości zarządzanej do klastra
Aby włączyć klucze zarządzane przez klienta dla klastra, najpierw przypisz do klastra tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika. Użyjesz tej tożsamości zarządzanej, aby udzielić klastrowi uprawnień dostępu do magazynu kluczy. Aby skonfigurować tożsamości zarządzane, zobacz tożsamości zarządzane.
Włączanie szyfrowania przy użyciu kluczy zarządzanych przez klienta
W poniższych krokach wyjaśniono, jak włączyć szyfrowanie kluczy zarządzanych przez klienta przy użyciu Azure Portal. Domyślnie szyfrowanie usługi Azure Data Explorer używa kluczy zarządzanych przez firmę Microsoft. Skonfiguruj klaster usługi Azure Data Explorer do używania kluczy zarządzanych przez klienta i określ klucz do skojarzenia z klastrem.
Wybierz pozycjęSzyfrowanieustawień> w lewym okienku portalu.
W okienku Szyfrowanie wybierz pozycję Włączone dla ustawienia Klucz zarządzany przez klienta .
Wybierz pozycję Wybierz klucz.
W oknie Wybieranie klucza z usługi Azure Key Vault wybierz istniejący magazyn kluczy z listy rozwijanej. Jeśli wybierzesz pozycję Utwórz nową, aby utworzyć nową Key Vault, nastąpi przekierowanie do ekranu Tworzenie Key Vault.
Wybierz pozycję Klucz.
Wersja:
Aby upewnić się, że ten klucz zawsze używa najnowszej wersji klucza, zaznacz pole wyboru Zawsze używaj bieżącej wersji klucza .
W przeciwnym razie wybierz pozycję Wersja.
Wybierz pozycję Wybierz.
W obszarze Typ tożsamości wybierz pozycję Przypisane przez system lub Przypisane przez użytkownika.
W przypadku wybrania pozycji Przypisano użytkownika wybierz tożsamość przypisaną przez użytkownika z listy rozwijanej.
W okienku Szyfrowanie , które zawiera teraz klucz, wybierz pozycję Zapisz. Po pomyślnym utworzeniu klucza zarządzanego klienta w obszarze Powiadomienia zostanie wyświetlony komunikat o powodzeniu.
W przypadku wybrania tożsamości przypisanej przez system podczas włączania kluczy zarządzanych przez klienta dla klastra usługi Azure Data Explorer utworzysz tożsamość przypisaną przez system dla klastra, jeśli nie istnieje. Ponadto będziesz dostarczać wymagane uprawnienia get, wrapKey i unwrapKey do klastra usługi Azure Data Explorer w wybranym Key Vault i uzyskać właściwości Key Vault.
Uwaga
Wybierz pozycję Wył., aby usunąć klucz zarządzany przez klienta po jego utworzeniu.
W poniższych sekcjach opisano sposób konfigurowania szyfrowania kluczy zarządzanych przez klienta przy użyciu klienta usługi Azure Data Explorer C#.
Zainstaluj pakiet NuGet Azure.Identity na potrzeby uwierzytelniania przy użyciu identyfikatora Microsoft Entra.
Authentication
Aby uruchomić przykłady w tym artykule, utwórz aplikację Microsoft Entra i jednostkę usługi, która może uzyskiwać dostęp do zasobów. Możesz dodać przypisanie roli w zakresie subskrypcji i uzyskać wymagane wartości Microsoft Entra Directory (tenant) ID, Application IDi Application Secret.
Poniższy fragment kodu przedstawia sposób użycia biblioteki Microsoft Authentication Library (MSAL) do uzyskania tokenu aplikacji Microsoft Entra w celu uzyskania dostępu do klastra. Aby przepływ zakończył się pomyślnie, aplikacja musi zostać zarejestrowana przy użyciu identyfikatora Microsoft Entra i musisz mieć poświadczenia do uwierzytelniania aplikacji, takie jak Microsoft Entra klucz aplikacji wystawiony przez identyfikator lub certyfikat X.509v2 zarejestrowany Microsoft Entra.
Konfigurowanie kluczy zarządzanych przez klienta
Domyślnie szyfrowanie usługi Azure Data Explorer używa kluczy zarządzanych przez firmę Microsoft. Skonfiguruj klaster usługi Azure Data Explorer do używania kluczy zarządzanych przez klienta i określ klucz do skojarzenia z klastrem.
Zaktualizuj klaster przy użyciu następującego kodu:
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";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var clusters = resourceGroup.GetKustoClusters();
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterPatch = new KustoClusterPatch(cluster.Data.Location)
{
KeyVaultProperties = new KustoKeyVaultProperties
{
KeyName = "<keyName>",
KeyVersion = "<keyVersion>", // Optional, leave as NULL for the latest version of the key.
KeyVaultUri = new Uri("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 cluster.UpdateAsync(WaitUntil.Completed, clusterPatch);
Uruchom następujące polecenie, aby sprawdzić, czy klaster został pomyślnie zaktualizowany:
var clusterData = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value.Data;
Jeśli wynik zawiera ProvisioningStateSucceeded wartość , klaster został pomyślnie zaktualizowany.
W poniższych krokach wyjaśniono, jak włączyć szyfrowanie kluczy zarządzanych przez klienta przy użyciu klienta interfejsu wiersza polecenia platformy Azure. Domyślnie szyfrowanie usługi Azure Data Explorer używa kluczy zarządzanych przez firmę Microsoft. Skonfiguruj klaster usługi Azure Data Explorer do używania kluczy zarządzanych przez klienta i określ klucz do skojarzenia z klastrem.
Uruchom następujące polecenia, aby zalogować się na platformie Azure:
az login
Ustaw subskrypcję, w której jest zarejestrowany klaster. Zastąp ciąg MyAzureSub nazwą subskrypcji platformy Azure, której chcesz użyć.
az account set --subscription MyAzureSub
Uruchom następujące polecenie, aby ustawić nowy klucz przy użyciu tożsamości przypisanej przez system klastra
Uruchom następujące polecenie i sprawdź właściwość "keyVaultProperties", aby sprawdzić, czy klaster został pomyślnie zaktualizowany.
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
W poniższych krokach wyjaśniono, jak włączyć szyfrowanie kluczy zarządzanych przez klienta przy użyciu programu PowerShell. Domyślnie szyfrowanie usługi Azure Data Explorer używa kluczy zarządzanych przez firmę Microsoft. Skonfiguruj klaster usługi Azure Data Explorer do używania kluczy zarządzanych przez klienta i określ klucz do skojarzenia z klastrem.
Uruchom następujące polecenia, aby zalogować się na platformie Azure:
Connect-AzAccount
Ustaw subskrypcję, w której jest zarejestrowany klaster.
Poniższe kroki wyjaśniają sposób konfigurowania kluczy zarządzanych przez klienta przy użyciu szablonów usługi Azure Resource Manager. Domyślnie szyfrowanie usługi Azure Data Explorer używa kluczy zarządzanych przez firmę Microsoft. W tym kroku skonfiguruj klaster usługi Azure Data Explorer do używania kluczy zarządzanych przez klienta i określ klucz do skojarzenia z klastrem.
Jeśli chcesz użyć tożsamości przypisanej przez system w celu uzyskania dostępu do magazynu kluczy, pozostaw userIdentity puste. W przeciwnym razie ustaw identyfikator zasobu tożsamości.
Szablon usługi Azure Resource Manager można wdrożyć przy użyciu Azure Portal lub programu PowerShell.
Podczas tworzenia nowej wersji klucza należy zaktualizować klaster, aby używał nowej wersji. Najpierw wywołaj metodę Get-AzKeyVaultKey , aby pobrać najnowszą wersję klucza. Następnie zaktualizuj właściwości magazynu kluczy klastra, aby używać nowej wersji klucza, jak pokazano w temacie Włączanie szyfrowania za pomocą kluczy zarządzanych przez klienta.