如果您在為 Azure Data Explorer 叢集啟用客戶管理的金鑰時選取系統指派的身分識別,如果叢集不存在,您將為叢集建立系統指派的身分識別。 此外,您會在選取的金鑰保存庫上,將所需的 get、wrapKey 和 unwrapKey 許可權提供給 Azure Data Explorer 叢集,並取得金鑰保存庫屬性。
注意
選取 [關閉 ] 以在建立客戶管理的金鑰之後移除它。
下列各節說明如何使用 Azure Data Explorer C# 用戶端來設定客戶管理的金鑰加密。
若要執行本文中的範例,請建立可存取資源的 Azure AD 應用程式和 服務主體。 您可以在訂用帳戶範圍新增角色指派,並取得必要的 Azure AD Directory (tenant) ID 、 Application ID 和 Application Secret 。
下列程式碼片段示範如何使用 Microsoft 驗證程式庫 (MSAL) 來取得 Azure AD 應用程式權杖來存取您的叢集。 若要讓流程成功,應用程式必須向 Azure AD 註冊,而且您必須具備應用程式驗證的認證,例如 Azure AD 發行的應用程式金鑰或 Azure AD 註冊的 X.509v2 憑證。
設定客戶管理的金鑰
根據預設,Azure Data Explorer加密會使用 Microsoft 管理的金鑰。 將 Azure Data Explorer 叢集設定為使用客戶管理的金鑰,並指定要與叢集建立關聯的金鑰。
使用下列程式碼更新叢集:
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);
執行下列命令來檢查您的叢集是否已成功更新:
var clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
如果結果包含 ProvisioningState 值 Succeeded ,則已成功更新您的叢集。
下列步驟說明如何使用 Azure CLI 用戶端啟用客戶管理的金鑰加密。 根據預設,Azure Data Explorer加密會使用 Microsoft 管理的金鑰。 將 Azure Data Explorer 叢集設定為使用客戶管理的金鑰,並指定要與叢集建立關聯的金鑰。
下列步驟說明如何使用 Azure Resource Manager 範本來設定客戶管理的金鑰。 根據預設,Azure Data Explorer加密會使用 Microsoft 管理的金鑰。 在此步驟中,將 Azure Data Explorer 叢集設定為使用客戶管理的金鑰,並指定要與叢集建立關聯的金鑰。