Met een beheerde identiteit van Microsoft Entra ID heeft uw cluster toegang tot andere met Microsoft Entra beveiligde resources, zoals Azure Key Vault. Het Azure-platform beheert de identiteit en vereist niet dat u geheimen inricht of roteert.
In dit artikel leest u hoe u beheerde identiteiten toevoegt en verwijdert in uw cluster. Zie het overzicht van beheerde identiteiten voor meer informatie over beheerde identiteiten.
Zie het gearchiveerde artikelvoor codevoorbeelden op basis van eerdere SDK-versies.
Typen beheerde identiteiten
U kunt uw Azure Data Explorer-cluster twee typen identiteiten verlenen:
Door het systeem toegewezen identiteit: gekoppeld aan uw cluster en verwijderd als u de resource verwijdert. Een cluster kan slechts één door het systeem toegewezen identiteit hebben.
Door de gebruiker toegewezen identiteit: een zelfstandige Azure-resource die u kunt toewijzen 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 verwijderd als u het cluster verwijdert. Een cluster kan slechts één door het systeem toegewezen identiteit hebben. Wanneer u een cluster maakt met een door het systeem toegewezen identiteit, moet u een extra eigenschap instellen op het cluster. Voeg de door het systeem toegewezen identiteit toe met behulp van de Azure-portal, C# of Resource Manager-sjabloon, zoals beschreven in de volgende secties.
Een door het systeem toegewezen identiteit toevoegen met behulp van Azure Portal
Meld u aan bij het Azure-portaal.
Nieuw Azure Data Explorer-cluster
Een Azure Data Explorer-cluster maken
Selecteer op het tabblad Beveiliging onder 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 Beoordelen + maken om het cluster te maken.
Bestaand Azure Data Explorer-cluster
Open een bestaand Azure Data Explorer-cluster.
SelecteerInstellingen-identiteit> in het linkerdeelvenster van de portal.
Ga in het deelvenster Identiteit naar het tabblad Systeem toegewezen :
- Verplaats de schuifregelaar Status naar Aan.
- Selecteer Opslaan.
- Selecteer Ja in het pop-upvenster.
Na een paar minuten wordt in het scherm het volgende weergegeven:
-
Object-id : gebruikt voor door de klant beheerde sleutels
-
Machtigingen - Relevante roltoewijzingen selecteren
Een door het systeem toegewezen identiteit toevoegen met C#
Vereiste voorwaarden
Een beheerde identiteit instellen met behulp van de Azure Data Explorer C#-client:
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 u uw cluster met succes hebt aangemaakt of bijgewerkt met een identiteit.
clusterData = (await clusters.GetAsync(clusterName)).Value.Data;
Als het resultaat ProvisioningState bevat met de waarde Succeeded, dan is het cluster gemaakt of bijgewerkt en heeft het de volgende eigenschappen:
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. Dit PrincipalId is een unieke id voor de nieuwe identiteit van het cluster. Binnen Microsoft Entra ID heeft de service-principal dezelfde naam die u hebt gegeven aan uw App Service- of Azure Functions-exemplaar.
Een door het systeem toegewezen identiteit toevoegen met behulp van een Azure Resource Manager-sjabloon
U kunt een Azure Resource Manager-sjabloon gebruiken om de implementatie van uw Azure-resources te automatiseren. Zie Een Azure Data Explorer-cluster en -database maken met behulp van een Azure Resource Manager-sjabloon voor meer informatie over implementeren in Azure Data Explorer.
Wanneer u het door het systeem toegewezen type toevoegt, vertelt u Azure om de identiteit voor uw cluster te maken en te beheren. U kunt elke resource van het type Microsoft.Kusto/clusters met een identiteit maken door de volgende eigenschap in de resourcedefinitie op te neem:
{
"identity": {
"type": "SystemAssigned"
}
}
Voorbeeld:
{
"identity": {
"type": "SystemAssigned",
"tenantId": "<TENANTID>",
"principalId": "<PRINCIPALID>"
}
}
Opmerking
Een cluster kan zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten tegelijk hebben. De type eigenschap zou zijn SystemAssigned,UserAssigned
Wanneer u het cluster maakt, heeft het de volgende aanvullende eigenschappen:
{
"identity": {
"type": "SystemAssigned",
"tenantId": "<TENANTID>",
"principalId": "<PRINCIPALID>"
}
}
<TENANTID> en <PRINCIPALID> worden vervangen door GUID's. De TenantId eigenschap identificeert de Microsoft Entra-tenant waartoe de identiteit behoort. Dit PrincipalId is een unieke id voor de nieuwe identiteit van het cluster. Binnen Microsoft Entra ID heeft de service-principal dezelfde naam die u hebt gegeven aan uw App Service- of Azure Functions-exemplaar.
Een door het systeem toegewezen identiteit verwijderen
Wanneer u een door het systeem toegewezen identiteit verwijdert, verwijdert u deze ook uit Microsoft Entra-id. Door het systeem toegewezen identiteiten worden ook automatisch verwijderd uit Microsoft Entra ID wanneer u de clusterresource verwijdert. U kunt een door het systeem toegewezen identiteit verwijderen door de functie uit te schakelen. Gebruik de Azure Portal-, C#- of Resource Manager-sjabloon om de door het systeem toegewezen identiteit te verwijderen, zoals beschreven in de volgende sectie.
Een door het systeem toegewezen identiteit verwijderen met behulp van Azure Portal
Meld u aan bij het Azure-portaal.
SelecteerInstellingen-identiteit> in het linkerdeelvenster van de portal.
Ga in het deelvenster Identiteit naar het tabblad Systeem toegewezen :
- Verplaats de schuifregelaar Status naar Uit.
- Selecteer Opslaan.
- Selecteer Ja in het pop-upvenster 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 de volgende code 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 de volgende code uit om de door het systeem toegewezen identiteit te verwijderen:
{
"identity": {
"type": "None"
}
}
Opmerking
Als het cluster tegelijkertijd zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten heeft, is de eigenschap typenadat u de door het UserAssigned systeem toegewezen identiteit hebt verwijderd.
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. Als u een cluster wilt maken met een door de gebruiker toegewezen identiteit, moet u een extra eigenschap instellen op het cluster. Voeg de door de gebruiker toegewezen identiteit toe met behulp van de Azure-portal, C# of Resource Manager-sjabloon, zoals beschreven in de volgende secties.
Een door de gebruiker toegewezen identiteit toevoegen met behulp van Azure Portal
Meld u aan bij het Azure-portaal.
Maak een beheerde identiteitsbron die door de gebruiker is toegewezen.
Open een bestaand Azure Data Explorer-cluster.
SelecteerInstellingen-identiteit> in het linkerdeelvenster van de portal.
Selecteer Toevoegen op het tabblad Toegewezen gebruiker.
Zoek naar de identiteit die u eerder hebt gemaakt en selecteer deze. Selecteer Toevoegen.
Een door de gebruiker toegewezen identiteit toevoegen met C#
Vereiste voorwaarden
Een beheerde identiteit instellen met behulp van de Azure Data Explorer C#-client:
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 u uw cluster met succes hebt aangemaakt of bijgewerkt met een identiteit.
clusterData = (await clusters.GetAsync(clusterName)).Value.Data;
Als het resultaat ProvisioningState bevat met de waarde Succeeded, dan is het cluster gemaakt of bijgewerkt en heeft het de volgende eigenschappen:
var userIdentity = clusterData.Identity.UserAssignedIdentities[userIdentityResourceId];
var principalGuid = userIdentity.PrincipalId.GetValueOrDefault();
var clientGuid = userIdentity.ClientId.GetValueOrDefault();
Dit PrincipalId is een unieke id voor de identiteit die door Microsoft Entra-beheer wordt gebruikt. Dit ClientId is een unieke id voor de nieuwe identiteit van de toepassing die wordt gebruikt voor het opgeven van de identiteit die moet worden gebruikt tijdens runtime-aanroepen.
Een door de gebruiker toegewezen identiteit toevoegen met behulp van een Azure Resource Manager-sjabloon
U kunt een Azure Resource Manager-sjabloon gebruiken om de implementatie van uw Azure-resources te automatiseren. Zie Een Azure Data Explorer-cluster en -database maken met behulp van een Azure Resource Manager-sjabloon voor meer informatie over implementeren in Azure Data Explorer.
U kunt elke resource van het type Microsoft.Kusto/clusters maken met een door de gebruiker toegewezen identiteit door de volgende eigenschap in de resourcedefinitie op te geven. Vervang <RESOURCEID> door de resource-id van de gewenste identiteit:
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
}
Voorbeeld:
{
"apiVersion": "2019-09-07",
"type": "Microsoft.Kusto/clusters",
"name": "[variables('clusterName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]": {}
}
},
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]"
]
}
Wanneer u het cluster maakt, heeft het de volgende aanvullende eigenschappen:
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {
"principalId": "<PRINCIPALID>",
"clientId": "<CLIENTID>"
}
}
}
}
Dit PrincipalId is een unieke id voor de identiteit die door Microsoft Entra-beheer wordt gebruikt. Dit ClientId is een unieke id voor de nieuwe identiteit van de toepassing die wordt gebruikt voor het opgeven van de identiteit die moet worden gebruikt tijdens runtime-aanroepen.
Opmerking
Een cluster kan zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten tegelijk hebben. Stel in dit geval de type eigenschap in op SystemAssigned,UserAssigned.
Een door de gebruiker toegewezen beheerde identiteit uit een cluster verwijderen
Verwijder de door de gebruiker toegewezen identiteit met behulp van de Azure-portal, C# of Resource Manager-sjabloon, zoals beschreven in de volgende sectie.
Een door de gebruiker toegewezen beheerde identiteit verwijderen met behulp van Azure Portal
Meld u aan bij het Azure-portaal.
SelecteerInstellingen-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 wordt teruggezet naar dezelfde voorwaarde als vóór de toevoeging van de door de gebruiker toegewezen identiteit.
Een door de gebruiker toegewezen identiteit verwijderen met behulp van C#
Voer de volgende code 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 de volgende code uit om de door de gebruiker toegewezen identiteit te verwijderen:
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": null
}
}
}
Opmerking
- Stel de waarden van identiteiten in op null om ze te verwijderen. Deze actie heeft geen invloed op andere bestaande identiteiten.
- Stel de
type eigenschap in op None om alle door de gebruiker toegewezen identiteiten te verwijderen.
- Als het cluster zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten heeft, stelt u de
type eigenschap SystemAssigned,UserAssigned in op met de identiteiten die moeten worden verwijderd of stelt u deze in om alle door de gebruiker toegewezen identiteiten te SystemAssigned verwijderen.
Verwante inhoud