Felügyelt identitások konfigurálása az Azure Data Explorer-fürthöz
Cikk
A Microsoft Entra azonosítóból származó felügyelt identitás lehetővé teszi, hogy a fürt más Microsoft Entra védett erőforrásokhoz, például az Azure Key Vault hozzáférjen. Az identitás kezelését az Azure-platform végzi, és nem szükséges hozzá semmilyen titkos kulcs kiosztása vagy rotálása.
Ez a cikk bemutatja, hogyan adhat hozzá és távolíthat el felügyelt identitásokat a fürtön. A felügyelt identitásokkal kapcsolatos további információkért lásd: Felügyelt identitások áttekintése.
Megjegyzés
Az Azure Data Explorer felügyelt identitásai nem fognak a várt módon viselkedni, ha az Azure Data Explorer-fürt előfizetések vagy bérlők között van migrálva. Az alkalmazásnak új identitást kell beszereznie, amely egy rendszer által hozzárendelt identitás eltávolításával , majd egy rendszer által hozzárendelt identitás hozzáadásával végezhető el. Az alsóbb rétegbeli erőforrások hozzáférési szabályzatait is frissíteni kell az új identitás használatához.
A korábbi SDK-verziókon alapuló kódmintákért tekintse meg az archivált cikket.
A felügyelt identitások típusai
Az Azure Data Explorer-fürt kétféle identitástípust kaphat:
Rendszer által hozzárendelt identitás: A fürthöz van kötve, és az erőforrás törlésekor törlődik. Egy fürt csak egy rendszer által hozzárendelt identitással rendelkezhet.
Felhasználó által hozzárendelt identitás: A fürthöz hozzárendelhető önálló Azure-erőforrás. Egy fürt több felhasználó által hozzárendelt identitással is rendelkezhet.
Rendszer által hozzárendelt identitás hozzáadása
Rendeljen hozzá egy rendszer által hozzárendelt identitást, amely a fürthöz van kötve, és a fürt törlésekor törlődik. Egy fürt csak egy rendszer által hozzárendelt identitással rendelkezhet. A rendszer által hozzárendelt identitással rendelkező fürtök létrehozásához egy további tulajdonságot kell beállítani a fürtön. Adja hozzá a rendszer által hozzárendelt identitást a Azure Portal, C# vagy Resource Manager sablonnal az alábbiak szerint.
A Biztonság lapon > a Rendszer által hozzárendelt identitás területen válassza a Be lehetőséget. A rendszer által hozzárendelt identitás eltávolításához válassza a Ki lehetőséget.
Válassza a Tovább: Címkék > vagy a Felülvizsgálat + létrehozás lehetőséget a fürt létrehozásához.
Meglévő Azure Data Explorer-fürt
Nyisson meg egy meglévő Azure Data Explorer-fürtöt.
Válassza a Beállítások>Identitás lehetőséget a portál bal oldali ablaktábláján.
Az Identitás panel >Rendszer által hozzárendelt lapján:
Húzza az Állapot csúszkát a Be állásba.
Válassza a Mentés lehetőséget
Az előugró ablakban válassza az Igen lehetőséget
Néhány perc elteltével a képernyő a következőket jeleníti meg:
Objektumazonosító – Ügyfél által felügyelt kulcsokhoz használatos
Hozzon létre egy Microsoft Entra alkalmazást és szolgáltatásnevet, amely hozzáfér az erőforrásokhoz. Szerepkör-hozzárendelést adhat hozzá az előfizetés hatóköréhez, és megkapja a szükséges Directory (tenant) ID, Application IDés Client Secret.
Fürt létrehozása vagy frissítése
Hozza létre vagy frissítse a fürtöt a Identity tulajdonság használatával:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client 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 subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var clusters = resourceGroup.GetKustoClusters();
var clusterName = "mykustocluster";
var clusterData = new KustoClusterData(
location: AzureLocation.CentralUS,
sku: new KustoSku(KustoSkuName.StandardE8adsV5, KustoSkuTier.Standard) { Capacity = 5 }
) { Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned) };
await clusters.CreateOrUpdateAsync(WaitUntil.Completed, clusterName, clusterData);
Futtassa a következő parancsot annak ellenőrzéséhez, hogy a fürt sikeresen létrejött-e vagy frissült-e identitással:
Ha az eredmény tartalmazza ProvisioningState az Succeeded értéket, akkor a fürt létrejött vagy frissült, és a következő tulajdonságokkal kell rendelkeznie:
var principalGuid = clusterData.Identity.PrincipalId.GetValueOrDefault();
var tenantGuid = clusterData.Identity.TenantId.GetValueOrDefault();
PrincipalId és TenantId GUID-kkel helyettesítik. A TenantId tulajdonság azonosítja azt a Microsoft Entra bérlőt, amelyhez az identitás tartozik. A PrincipalId a fürt új identitásának egyedi azonosítója. Az Microsoft Entra-azonosítón belül a szolgáltatásnév ugyanazzal a névvel rendelkezik, amelyet a App Service vagy Azure Functions-példánynak adott.
Rendszer által hozzárendelt identitás hozzáadása Azure Resource Manager-sablonnal
A rendszer által hozzárendelt típus hozzáadása arra utasítja az Azure-t, hogy hozza létre és kezelje a fürt identitását. Bármilyen típusú Microsoft.Kusto/clusters erőforrás létrehozható identitással, ha az erőforrás-definícióban szerepel a következő tulajdonság:
A fürtök egyszerre rendelkezhetnek rendszer által hozzárendelt és felhasználó által hozzárendelt identitásokkal is. A type tulajdonság a következő lenne: SystemAssigned,UserAssigned
A fürt létrehozásakor a következő további tulajdonságokkal rendelkezik:
<TENANTID> és <PRINCIPALID> GUID-kkel helyettesítik. A TenantId tulajdonság azonosítja azt a Microsoft Entra bérlőt, amelyhez az identitás tartozik. A PrincipalId a fürt új identitásának egyedi azonosítója. Az Microsoft Entra-azonosítón belül a szolgáltatásnév ugyanazzal a névvel rendelkezik, amelyet a App Service vagy Azure Functions-példánynak adott.
Rendszer által hozzárendelt identitás eltávolítása
A rendszer által hozzárendelt identitás eltávolítása Microsoft Entra azonosítóból is törli azt. A rendszer automatikusan eltávolítja a rendszer által hozzárendelt identitásokat Microsoft Entra azonosítóból a fürterőforrás törlésekor. A rendszer által hozzárendelt identitás a funkció letiltásával távolítható el. Távolítsa el a rendszer által hozzárendelt identitást a Azure Portal, C# vagy Resource Manager sablonnal az alábbiak szerint.
Válassza a Beállítások>Identitás lehetőséget a portál bal oldali ablaktábláján.
Az Identitás panel >Rendszer által hozzárendelt lapján:
Húzza az Állapot csúszkát Ki állásba.
Válassza a Mentés lehetőséget
Az előugró ablakban válassza az Igen lehetőséget a rendszer által hozzárendelt identitás letiltásához. Az Identitás panel visszaáll a rendszer által hozzárendelt identitás hozzáadása előtti állapotra.
Rendszer által hozzárendelt identitás eltávolítása a C használatával#
Futtassa az alábbi parancsot a rendszer által hozzárendelt identitás eltávolításához:
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterPatch = new KustoClusterPatch(clusterData.Location)
{
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.None)
};
await cluster.UpdateAsync(WaitUntil.Completed, clusterPatch);
Rendszer által hozzárendelt identitás eltávolítása Azure Resource Manager-sablonnal
Futtassa az alábbi parancsot a rendszer által hozzárendelt identitás eltávolításához:
{
"identity": {
"type": "None"
}
}
Megjegyzés
Ha a fürt egyszerre rendelkezik rendszer által hozzárendelt és felhasználó által hozzárendelt identitásokkal is, a rendszer által hozzárendelt identitás eltávolítását követően a tulajdonság a type következő lesz: UserAssigned
Felhasználó által hozzárendelt identitás hozzáadása
Rendeljen hozzá egy felhasználó által hozzárendelt felügyelt identitást a fürthöz. Egy fürt több felhasználó által hozzárendelt identitással is rendelkezhet. A felhasználó által hozzárendelt identitással rendelkező fürt létrehozásához további tulajdonságot kell beállítani a fürtön. Adja hozzá a felhasználó által hozzárendelt identitást a Azure Portal, C# vagy Resource Manager sablon használatával az alábbiak szerint.
Hozzon létre egy Microsoft Entra alkalmazást és szolgáltatásnevet, amely hozzáfér az erőforrásokhoz. Szerepkör-hozzárendelést adhat hozzá az előfizetés hatóköréhez, és megkapja a szükséges Directory (tenant) ID, és Application IDClient Secret.
A fürt létrehozása vagy frissítése
Hozza létre vagy frissítse a fürtöt a Identity tulajdonság használatával:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client 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 subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var clusters = resourceGroup.GetKustoClusters();
var clusterName = "mykustocluster";
var userIdentityResourceId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>");
var clusterData = new KustoClusterData(
location: AzureLocation.CentralUS,
sku: new KustoSku(KustoSkuName.StandardE8adsV5, KustoSkuTier.Standard) { Capacity = 5 }
)
{
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = { { userIdentityResourceId, new UserAssignedIdentity() } }
}
};
await clusters.CreateOrUpdateAsync(WaitUntil.Completed, clusterName, clusterData);
Futtassa a következő parancsot annak ellenőrzéséhez, hogy a fürt sikeresen létrejött-e vagy frissült-e identitással:
Ha az eredmény ProvisioningState tartalmazza az Succeeded értéket, akkor a fürt létrejött vagy frissült, és a következő tulajdonságokkal kell rendelkeznie:
var userIdentity = clusterData.Identity.UserAssignedIdentities[userIdentityResourceId];
var principalGuid = userIdentity.PrincipalId.GetValueOrDefault();
var clientGuid = userIdentity.ClientId.GetValueOrDefault();
A PrincipalId az Microsoft Entra felügyelethez használt identitás egyedi azonosítója. A ClientId az alkalmazás új identitásának egyedi azonosítója, amely a futtatókörnyezeti hívások során használandó identitás megadására szolgál.
Felhasználó által hozzárendelt identitás hozzáadása Azure Resource Manager-sablonnal
Bármely típusú Microsoft.Kusto/clusters erőforrás létrehozható egy felhasználó által hozzárendelt identitással, ha az erőforrás-definícióba beírja a következő tulajdonságot, és lecseréli <RESOURCEID> a kívánt identitás erőforrás-azonosítójára:
A PrincipalId az Microsoft Entra felügyelethez használt identitás egyedi azonosítója. A ClientId az alkalmazás új identitásának egyedi azonosítója, amely a futtatókörnyezeti hívások során használandó identitás megadására szolgál.
Megjegyzés
A fürtök egyszerre rendelkezhetnek rendszer által hozzárendelt és felhasználó által hozzárendelt identitásokkal is. Ebben az esetben a type tulajdonság a következő: SystemAssigned,UserAssigned.
Felhasználó által hozzárendelt felügyelt identitás eltávolítása egy fürtből
Távolítsa el a felhasználó által hozzárendelt identitást az alább ismertetett Azure Portal, C# vagy Resource Manager sablon használatával.
Válassza a Beállítások>Identitás lehetőséget a portál bal oldali ablaktábláján.
Válassza a Felhasználó által hozzárendelt lapot.
Keresse meg a korábban létrehozott identitást, és válassza ki. Válassza az Eltávolítás lehetőséget.
Az előugró ablakban válassza az Igen lehetőséget a felhasználó által hozzárendelt identitás eltávolításához. Az Identitás panel visszaállítja a felhasználó által hozzárendelt identitás hozzáadása előtti feltételt.
Felhasználó által hozzárendelt identitás eltávolítása a C használatával#
Futtassa az alábbi parancsot a felhasználó által hozzárendelt identitás eltávolításához:
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterUpdate = new KustoClusterPatch(clusterData.Location)
{
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = { { userIdentityResourceId, null } }
}
};
await cluster.UpdateAsync(WaitUntil.Completed, clusterUpdate);
Felhasználó által hozzárendelt identitás eltávolítása Azure Resource Manager-sablonnal
Futtassa az alábbi parancsot a felhasználó által hozzárendelt identitás eltávolításához:
Az identitások eltávolításához állítsa az értéküket null értékre. Az összes többi meglévő identitásra nem lesz hatással.
A felhasználó által hozzárendelt identitások eltávolításához a type tulajdonság a következő lenne: None.
Ha a fürt egyszerre rendelkezik rendszer által hozzárendelt és felhasználó által hozzárendelt identitásokkal is, akkor a type tulajdonság az eltávolítandó identitásokkal, vagy SystemAssigned a felhasználó által hozzárendelt összes identitás eltávolításával lesz SystemAssigned,UserAssigned elérhető.