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.
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 opcję 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.
Aby włączyć klucze zarządzane przez klienta dla klastra, najpierw przypisz tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika do klastra. Ta tożsamość zarządzana będzie używana do udzielania uprawnień klastra w celu uzyskania 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ę Szyfrowanie ustawień> w lewym okienku portalu.
W okienku Szyfrowanie wybierz pozycję Wł . dla ustawienia Klucz zarządzany przez klienta .
Kliknij 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 nowy, aby utworzyć nowy 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.
Kliknij pozycję Wybierz.
W obszarze Typ tożsamości wybierz pozycję Przypisano system lub Przypisano użytkownika.
Jeśli wybierzesz pozycję 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 zostanie wyświetlony komunikat o powodzeniu w obszarze Powiadomienia.
Jeśli wybierzesz tożsamość przypisaną 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 udostępnisz wymagane uprawnienia get, wrapKey i unwrapKey do klastra usługi Azure Data Explorer w wybranym Key Vault i uzyskasz właściwości Key Vault.
Uwaga
Wybierz pozycję Wyłączone , 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#.
Aby uruchomić przykłady w tym artykule, utwórz aplikację Azure AD 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 Azure AD Directory (tenant) IDwartości , Application IDi Application Secret.
Poniższy fragment kodu pokazuje, jak za pomocą biblioteki Microsoft Authentication Library (MSAL) uzyskać token aplikacji Azure AD w celu uzyskania dostępu do klastra. Aby przepływ zakończył się pomyślnie, aplikacja musi zostać zarejestrowana w Azure AD i musisz mieć poświadczenia uwierzytelniania aplikacji, takie jak Azure AD wystawiony klucz aplikacji lub certyfikat X.509v2 zarejestrowany Azure AD.
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";
// 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);
Uruchom następujące polecenie, aby sprawdzić, czy klaster został pomyślnie zaktualizowany:
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
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 zarejestrowano 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 z tożsamością przypisaną 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 zarejestrowano klaster.
W poniższych krokach wyjaśniono, jak skonfigurować klucze zarządzane 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żyć nowej wersji klucza, jak pokazano w temacie Włączanie szyfrowania przy użyciu kluczy zarządzanych przez klienta.