Azure Data Explorer は、保存されているストレージ アカウント内のすべてのデータを暗号化します。 規定では、データは Microsoft のマネージド キーで暗号化されます。 暗号化キーをさらに制御するために、データの暗号化に使用する目的で、カスタマー マネージド キーを提供できます。
顧客が管理するキーは Azure Key Vault に格納する必要があります。 独自のキーを作成してキー コンテナーに格納することも、Azure Key Vault API を使ってキーを生成することもできます。 Azure Data Explorer クラスターとキー コンテナーは同じリージョンに存在している必要があります。ただし、サブスクリプションは異なっていてもかまいません。 カスタマー マネージド キーの詳細については、カスタマー マネージド キーと Azure Key Vault に関する記事を参照してください。
お使いのクラスターでカスタマー マネージド キーを有効にするには、まず、そのクラスターにシステム割り当てまたはユーザー割り当てのマネージド ID を割り当てます。 このマネージド ID を使って、キー コンテナーへのアクセス許可をクラスターに付与します。 マネージド ID の構成については、マネージド ID に関するページを参照してください。
この手順では、Azure portalを使用してカスタマー マネージド キーの暗号化を有効にする方法について説明します。 既定では、Azure Data Explorer の暗号化では Microsoft のマネージド キーが使用されます。 カスタマー マネージド キーを使用するように Azure Data Explorer クラスターを構成し、そのクラスターに関連付けるキーを指定します。
Azure Data Explorer クラスターに対してカスタマー マネージド キーを有効にするときにシステム割り当て ID を選択した場合、システム割り当て ID がクラスターに存在しない場合は ID を作成します。 また、選択した Key Vault の Azure Data Explorer クラスターに対して必要な get、wrapKey、unwrapKey の各アクセス許可を提供し、Key Vault のプロパティを取得します。
注意
カスタマー マネージド キーを作成した後に削除するには、 [オフ] を選択します。
次のセクションでは、Azure Data Explorer C# クライアントを使用してカスタマー マネージド キーの暗号化を構成する方法について説明します。
この記事の例を実行するには、リソースにアクセスできる Azure AD アプリケーションとサービス プリンシパルを作成する必要があります。 サブスクリプションのスコープでロールの割り当てを追加して、必要な Azure AD Directory (tenant) ID、Application ID、および Application Secret を取得できます。
次のコード スニペットは、 Microsoft Authentication Library (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);
次の手順では、Azure CLI クライアントを使用してカスタマー マネージド キーの暗号化を有効にする方法について説明します。 既定では、Azure Data Explorer の暗号化では Microsoft のマネージド キーが使用されます。 カスタマー マネージド キーを使用するように Azure Data Explorer クラスターを構成し、そのクラスターに関連付けるキーを指定します。
az kusto cluster show --cluster-name "mytestcluster" --resource-group "mytestrg"
次の手順では、PowerShell を使用してカスタマー マネージド キーの暗号化を有効にする方法について説明します。 既定では、Azure Data Explorer の暗号化では Microsoft のマネージド キーが使用されます。 カスタマー マネージド キーを使用するように Azure Data Explorer クラスターを構成し、そのクラスターに関連付けるキーを指定します。
次の手順では、Azure Resource Manager テンプレートを使用してカスタマー マネージド キーを構成する方法について説明します。 既定では、Azure Data Explorer の暗号化は Microsoft マネージド キーを使用します。 この手順では、カスタマー マネージド キーを使用するように Azure Data Explorer クラスターを構成し、そのクラスターに関連付けるキーを指定します。
システム割り当て ID を使用してキー コンテナーにアクセスする場合は、userIdentity を空のままにします。 それ以外の場合は、ID のリソース ID を設定します。