Beheerde identiteiten configureren voor uw Azure Data Explorer-cluster
Artikel
Met een beheerde identiteit van Microsoft Entra-id kan uw cluster toegang krijgen tot andere Microsoft Entra beveiligde resources, zoals Azure Key Vault. De identiteit wordt beheerd door het Azure-platform en u hoeft geen geheimen in te richten of te laten rouleren.
In dit artikel wordt beschreven hoe u beheerde identiteiten aan uw cluster toevoegt en verwijdert. Zie Overzicht van beheerde identiteiten voor meer informatie over beheerde identiteiten.
Notitie
Beheerde identiteiten voor Azure Data Explorer werken niet zoals verwacht als uw Azure Data Explorer-cluster wordt gemigreerd tussen abonnementen of tenants. De app moet een nieuwe identiteit verkrijgen. Dit kan worden gedaan door een door het systeem toegewezen identiteit te verwijderen en vervolgens een door het systeem toegewezen identiteit toe te voegen. Het toegangsbeleid van downstreamresources moet ook worden bijgewerkt om de nieuwe identiteit te kunnen gebruiken.
Zie het gearchiveerde artikel voor codevoorbeelden op basis van eerdere SDK-versies.
Typen beheerde identiteiten
Aan uw Azure Data Explorer-cluster kunnen twee typen identiteiten worden toegekend:
Door het systeem toegewezen identiteit: Gekoppeld aan uw cluster en verwijderd als uw resource wordt verwijderd. Een cluster kan slechts één door het systeem toegewezen identiteit hebben.
Door de gebruiker toegewezen identiteit: een zelfstandige Azure-resource die kan worden toegewezen aan uw cluster. Een cluster kan meerdere door de gebruiker toegewezen identiteiten hebben.
Een door het systeem toegewezen identiteit toevoegen
Wijs een door het systeem toegewezen identiteit toe die is gekoppeld aan uw cluster en die wordt verwijderd als uw cluster wordt verwijderd. Een cluster kan slechts één door het systeem toegewezen identiteit hebben. Voor het maken van een cluster met een door het systeem toegewezen identiteit moet er een extra eigenschap worden ingesteld op het cluster. Voeg de door het systeem toegewezen identiteit toe met behulp van de sjabloon Azure Portal, C# of Resource Manager, zoals hieronder wordt beschreven.
Selecteer op het tabblad Beveiliging Door het systeem >toegewezen identiteit de optie Aan. Als u de door het systeem toegewezen identiteit wilt verwijderen, selecteert u Uit.
Selecteer Volgende : Tags > of Controleren en maken om het cluster te maken.
Bestaand Azure Data Explorer-cluster
Open een bestaand Azure Data Explorer-cluster.
Selecteer Instellingen>Identiteit in het linkerdeelvenster van de portal.
In het deelvenster >Identiteittabblad Door het systeem toegewezen:
Verplaats de schuifregelaar Status naar Aan.
Selecteer Opslaan
Selecteer Ja in het pop-upvenster
Na een paar minuten ziet u het volgende in het scherm:
Object-id : wordt gebruikt voor door de klant beheerde sleutels
Maak een Microsoft Entra toepassing en service-principal die toegang hebben tot resources. U voegt roltoewijzing toe aan het abonnementsbereik en haalt de vereiste Directory (tenant) ID, Application IDen Client Secretop.
Uw cluster maken of bijwerken
Maak of werk uw cluster bij met behulp van de Identity eigenschap:
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);
Voer de volgende opdracht uit om te controleren of uw cluster is gemaakt of bijgewerkt met een identiteit:
Als het resultaat met de Succeeded waarde bevatProvisioningState, is het cluster gemaakt of bijgewerkt en moet het de volgende eigenschappen hebben:
var principalGuid = clusterData.Identity.PrincipalId.GetValueOrDefault();
var tenantGuid = clusterData.Identity.TenantId.GetValueOrDefault();
PrincipalId en TenantId worden vervangen door GUID's. De TenantId eigenschap identificeert de Microsoft Entra tenant waartoe de identiteit behoort. De PrincipalId is een unieke id voor de nieuwe identiteit van het cluster. Binnen Microsoft Entra id heeft de service-principal dezelfde naam die u aan uw App Service of Azure Functions exemplaar hebt gegeven.
Een door het systeem toegewezen identiteit toevoegen met behulp van een Azure Resource Manager-sjabloon
Door het door het systeem toegewezen type toe te voegen, moet azure de identiteit voor uw cluster maken en beheren. Elke resource van het type Microsoft.Kusto/clusters kan worden gemaakt met een identiteit door de volgende eigenschap op te opnemen in de resourcedefinitie:
Een cluster kan tegelijkertijd zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten hebben. De type eigenschap is SystemAssigned,UserAssigned
Wanneer het cluster wordt gemaakt, heeft het de volgende aanvullende eigenschappen:
<TENANTID> en <PRINCIPALID> worden vervangen door GUID's. De TenantId eigenschap identificeert de Microsoft Entra tenant waartoe de identiteit behoort. De PrincipalId is een unieke id voor de nieuwe identiteit van het cluster. Binnen Microsoft Entra id heeft de service-principal dezelfde naam die u aan uw App Service of Azure Functions exemplaar hebt gegeven.
Een door het systeem toegewezen identiteit verwijderen
Als u een door het systeem toegewezen identiteit verwijdert, wordt deze ook verwijderd uit Microsoft Entra-id. Door het systeem toegewezen identiteiten worden ook automatisch verwijderd uit Microsoft Entra-id wanneer de clusterresource wordt verwijderd. Een door het systeem toegewezen identiteit kan worden verwijderd door de functie uit te schakelen. Verwijder de door het systeem toegewezen identiteit met behulp van de sjabloon Azure Portal, C# of Resource Manager, zoals hieronder wordt beschreven.
Selecteer Instellingen>Identiteit in het linkerdeelvenster van de portal.
In het deelvenster >Identiteittabblad Door het systeem toegewezen:
Verplaats de schuifregelaar Status naar Uit.
Selecteer Opslaan
Selecteer in het pop-upvenster Ja om de door het systeem toegewezen identiteit uit te schakelen. Het deelvenster Identiteit wordt teruggezet naar dezelfde voorwaarde als vóór de toevoeging van de door het systeem toegewezen identiteit.
Een door het systeem toegewezen identiteit verwijderen met behulp van C#
Voer het volgende uit om de door het systeem toegewezen identiteit te verwijderen:
var cluster = (await clusters.GetAsync(clusterName)).Value;
var clusterPatch = new KustoClusterPatch(clusterData.Location)
{
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.None)
};
await cluster.UpdateAsync(WaitUntil.Completed, clusterPatch);
Een door het systeem toegewezen identiteit verwijderen met behulp van een Azure Resource Manager-sjabloon
Voer het volgende uit om de door het systeem toegewezen identiteit te verwijderen:
{
"identity": {
"type": "None"
}
}
Notitie
Als het cluster zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten op hetzelfde moment had, wordt de eigenschap na het verwijderen van de door het type systeem toegewezen identiteit UserAssigned
Een door de gebruiker toegewezen identiteit toevoegen
Wijs een door de gebruiker toegewezen beheerde identiteit toe aan uw cluster. Een cluster kan meer dan één door de gebruiker toegewezen identiteit hebben. Voor het maken van een cluster met een door de gebruiker toegewezen identiteit moet er een extra eigenschap worden ingesteld op het cluster. Voeg de door de gebruiker toegewezen identiteit toe met behulp van de sjabloon Azure Portal, C# of Resource Manager, zoals hieronder wordt beschreven.
Maak een Microsoft Entra toepassing en service-principal die toegang hebben tot resources. U voegt roltoewijzing toe aan het abonnementsbereik en krijgt de vereiste Directory (tenant) ID, Application IDen Client Secret.
Uw cluster maken of bijwerken
Maak of werk uw cluster bij met behulp van de Identity eigenschap:
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);
Voer de volgende opdracht uit om te controleren of het cluster is gemaakt of bijgewerkt met een identiteit:
Als het resultaat ProvisioningState bevat met de Succeeded waarde, is het cluster gemaakt of bijgewerkt en moet het de volgende eigenschappen hebben:
var userIdentity = clusterData.Identity.UserAssignedIdentities[userIdentityResourceId];
var principalGuid = userIdentity.PrincipalId.GetValueOrDefault();
var clientGuid = userIdentity.ClientId.GetValueOrDefault();
De PrincipalId is een unieke id voor de identiteit die wordt gebruikt voor Microsoft Entra beheer. De ClientId is een unieke id voor de nieuwe identiteit van de toepassing die wordt gebruikt om op te geven welke identiteit moet worden gebruikt tijdens runtime-aanroepen.
Een door de gebruiker toegewezen identiteit toevoegen met behulp van een Azure Resource Manager-sjabloon
Elke resource van het type Microsoft.Kusto/clusters kan worden gemaakt met een door de gebruiker toegewezen identiteit door de volgende eigenschap op te geven in de resourcedefinitie, waarbij <RESOURCEID> u vervangt door de resource-id van de gewenste identiteit:
De PrincipalId is een unieke id voor de identiteit die wordt gebruikt voor Microsoft Entra beheer. De ClientId is een unieke id voor de nieuwe identiteit van de toepassing die wordt gebruikt om op te geven welke identiteit moet worden gebruikt tijdens runtime-aanroepen.
Notitie
Een cluster kan zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten tegelijk hebben. In dit geval is SystemAssigned,UserAssignedde type eigenschap .
Een door de gebruiker toegewezen beheerde identiteit verwijderen uit een cluster
Verwijder de door de gebruiker toegewezen identiteit met behulp van de sjabloon Azure Portal, C# of Resource Manager, zoals hieronder wordt beschreven.
Selecteer Instellingen>Identiteit in het linkerdeelvenster van de portal.
Selecteer het tabblad Door de gebruiker toegewezen .
Zoek naar de identiteit die u eerder hebt gemaakt en selecteer deze. Selecteer Verwijderen.
Selecteer ja in het pop-upvenster om de door de gebruiker toegewezen identiteit te verwijderen. Het deelvenster Identiteit keert terug naar dezelfde voorwaarde als vóór de toevoeging van de door de gebruiker toegewezen identiteit.
Een door de gebruiker toegewezen identiteit verwijderen met C#
Voer het volgende uit om de door de gebruiker toegewezen identiteit te verwijderen:
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);
Een door de gebruiker toegewezen identiteit verwijderen met behulp van een Azure Resource Manager-sjabloon
Voer het volgende uit om de door de gebruiker toegewezen identiteit te verwijderen:
Als u identiteiten wilt verwijderen, stelt u de waarden in op null. Alle andere bestaande identiteiten worden niet beïnvloed.
Als u alle door de gebruiker toegewezen identiteiten wilt verwijderen, is Nonede type eigenschap ,
Als het cluster zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten tegelijk had, zou de type eigenschap bij de identiteiten zijn die moeten worden SystemAssigned,UserAssigned verwijderd of SystemAssigned om alle door de gebruiker toegewezen identiteiten te verwijderen.