Migreren naar gedetailleerde, op rollen gebaseerde toegang voor clusterconfiguraties

We introduceren enkele belangrijke wijzigingen ter ondersteuning van meer verfijnde op rollen gebaseerde toegang om gevoelige informatie te verkrijgen. Als onderdeel van deze wijzigingen kan een bepaalde actie vereist zijn op 3 september 2019 als u een van de betrokken entiteiten/scenario's gebruikt.

Wat verandert er?

Voorheen konden geheimen worden verkregen via de HDInsight-API door clustergebruikers met de Azure-rollen Eigenaar, Inzender of Lezer, omdat ze beschikbaar waren voor iedereen met de */read machtiging. Geheimen worden gedefinieerd als waarden die kunnen worden gebruikt om meer verhoogde toegang te verkrijgen dan de rol van een gebruiker moet toestaan. Deze omvatten waarden zoals HTTP-referenties voor de clustergateway, opslagaccountsleutels en databasereferenties.

Vanaf 3 september 2019 is voor het openen van deze geheimen de Microsoft.HDInsight/clusters/configurations/action machtiging vereist. De gebruiker heeft er geen toegang toe met de rol Lezer. De rollen met deze machtiging zijn Inzender, Eigenaar en de nieuwe rol HDInsight-clusteroperator.

We introduceren ook een nieuwe HDInsight-clusteroperatorrol die geheimen kan ophalen zonder de beheerdersmachtigingen van Inzender of Eigenaar te krijgen. Samenvatting:

- Rol Eerder Vooruitgaand
Lezer - Leestoegang, inclusief geheimen. - Leestoegang, exclusief geheimen
HDInsight-clusteroperator
(Nieuwe rol)
N.v.t. - Lees-/schrijftoegang, inclusief geheimen
Inzender - Lees-/schrijftoegang, inclusief geheimen.
- Alle typen Azure-resources maken en beheren.
- Scriptacties uitvoeren.
Geen wijziging
Eigenaar - Lees-/schrijftoegang, inclusief geheimen.
- Volledige toegang tot alle resources
- Toegang tot anderen delegeren.
- Scriptacties uitvoeren.
Geen wijziging

Zie de onderstaande sectie, de roltoewijzing HDInsight-clusteroperator toevoegen aan een gebruiker om ze lees-/schrijftoegang tot clustergeheimen toe te voegen, zie de onderstaande sectie de roltoewijzing HDInsight-clusteroperator toevoegen aan een gebruiker.

Heb ik last van deze wijzigingen?

De volgende entiteiten en scenario's worden beïnvloed:

API

De volgende API's worden gewijzigd of afgeschaft:

  • GET /configurations/{configurationName} (gevoelige informatie verwijderd)
    • Voorheen gebruikt voor het verkrijgen van afzonderlijke configuratietypen (inclusief geheimen).
    • Vanaf 3 september 2019 retourneert deze API-aanroep nu afzonderlijke configuratietypen waarbij geheimen worden weggelaten. Als u alle configuraties, inclusief geheimen, wilt verkrijgen, gebruikt u de nieuwe AANroep POST/configurations. Als u alleen gatewayinstellingen wilt verkrijgen, gebruikt u de nieuwe POST/getGateway Instellingen-aanroep.
  • GET /configurations (afgeschaft)
    • Eerder gebruikt voor het verkrijgen van alle configuraties (inclusief geheimen)
    • Vanaf 3 september 2019 wordt deze API-aanroep afgeschaft en wordt deze niet meer ondersteund. Gebruik de nieuwe aanroep POST/configurations om alle configuraties in de toekomst te verkrijgen. Gebruik de aanroep GET /configurations/{configurationName} om configuraties te verkrijgen met gevoelige parameters die zijn weggelaten.
  • POST /configurations/{configurationName} (afgeschaft)
    • Eerder gebruikt om gatewayreferenties bij te werken.
    • Vanaf 3 september 2019 wordt deze API-aanroep afgeschaft en wordt deze niet meer ondersteund. Gebruik in plaats daarvan de nieuwe POST/updateGateway Instellingen.

De volgende vervangende API's zijn toegevoegd:

Azure HDInsight Tools voor Visual Studio Code

Als u versie 1.1.1 of lager gebruikt, werkt u bij naar de nieuwste versie van Azure HDInsight Tools voor Visual Studio Code om onderbrekingen te voorkomen.

Azure-toolkit voor IntelliJ

Als u versie 3.20.0 of lager gebruikt, werkt u bij naar de nieuwste versie van de Azure Toolkit voor IntelliJ-invoegtoepassing om onderbrekingen te voorkomen.

Azure Data Lake en Stream Analytics Tools voor Visual Studio

Werk bij naar versie 2.3.9000.1 of hoger van Azure Data Lake en Stream Analytics Tools voor Visual Studio om onderbrekingen te voorkomen. Raadpleeg onze documentatie, Data Lake Tools voor Visual Studio bijwerken voor hulp bij het bijwerken.

Azure-toolkit voor Eclipse

Als u versie 3.15.0 of lager gebruikt, werkt u bij naar de nieuwste versie van de Azure Toolkit voor Eclipse om onderbrekingen te voorkomen.

SDK voor .NET

Versies 1.x en 2.x

Update naar versie 2.1.0 van de HDInsight SDK voor .NET. Er zijn mogelijk minimale codewijzigingen vereist als u een methode gebruikt die wordt beïnvloed door deze wijzigingen:

  • ClusterOperationsExtensions.GetClusterConfigurations retourneert geen gevoelige parameters meer, zoals opslagsleutels (core-site) of HTTP-referenties (gateway).

    • Als u alle configuraties, inclusief gevoelige parameters, wilt ophalen, gebruikt u ClusterOperationsExtensions.ListConfigurations de volgende stap. Gebruikers met de rol Lezer kunnen deze methode niet gebruiken. Het biedt gedetailleerde controle over welke gebruikers toegang hebben tot gevoelige informatie voor een cluster.
    • Als u alleen HTTP-gatewayreferenties wilt ophalen, gebruikt u ClusterOperationsExtensions.GetGatewaySettings.
  • ClusterOperationsExtensions.GetConnectivitySettings is nu afgeschaft en is vervangen door ClusterOperationsExtensions.GetGatewaySettings.

  • ClusterOperationsExtensions.ConfigureHttpSettings is nu afgeschaft en is vervangen door ClusterOperationsExtensions.UpdateGatewaySettings.

  • ConfigurationsOperationsExtensions.EnableHttp en DisableHttp zijn nu afgeschaft. HTTP is nu altijd ingeschakeld, dus deze methoden zijn niet meer nodig.

Versies 3.x en hoger

Werk bij naar versie 5.0.0 of hoger van de HDInsight SDK voor .NET. Er zijn mogelijk minimale codewijzigingen vereist als u een methode gebruikt die wordt beïnvloed door deze wijzigingen:

SDK voor Python

Werk bij naar versie 1.0.0 of hoger van de HDInsight SDK voor Python. Er zijn mogelijk minimale codewijzigingen vereist als u een methode gebruikt die wordt beïnvloed door deze wijzigingen:

SDK voor Java

Werk bij naar versie 1.0.0 of hoger van de HDInsight SDK voor Java. Er zijn mogelijk minimale codewijzigingen vereist als u een methode gebruikt die wordt beïnvloed door deze wijzigingen:

  • ConfigurationsInner.get retourneert geen gevoelige parameters meer, zoals opslagsleutels (core-site) of HTTP-referenties (gateway).
  • ConfigurationsInner.update is nu afgeschaft.

SDK voor Go

Update naar versie 27.1.0 of hoger van de HDInsight SDK voor Go. Er zijn mogelijk minimale codewijzigingen vereist als u een methode gebruikt die wordt beïnvloed door deze wijzigingen:

Az.HDInsight PowerShell

Werk bij naar Az PowerShell versie 2.0.0 of hoger om onderbrekingen te voorkomen. Er zijn mogelijk minimale codewijzigingen vereist als u een methode gebruikt die wordt beïnvloed door deze wijzigingen.

  • Grant-AzHDInsightHttpServicesAccess is nu afgeschaft en is vervangen door de nieuwe Set-AzHDInsightGatewayCredential cmdlet.
  • Get-AzHDInsightJobOutput is bijgewerkt om gedetailleerde op rollen gebaseerde toegang tot de opslagsleutel te ondersteunen.
    • Gebruikers met HDInsight-clusteroperator, Inzender of Eigenaar-rollen worden niet beïnvloed.
    • Gebruikers met alleen de rol Lezer moeten de DefaultStorageAccountKey parameter expliciet opgeven.
  • Revoke-AzHDInsightHttpServicesAccess is nu afgeschaft. HTTP is nu altijd ingeschakeld, dus deze cmdlet is niet meer nodig. Zie az . HdInsight-migratiehandleiding voor meer informatie.

De roltoewijzing HDInsight-clusteroperator toevoegen aan een gebruiker

Een gebruiker met de rol Eigenaar kan de rol HDInsight-clusteroperator toewijzen aan gebruikers die lees-/schrijftoegang willen hebben tot gevoelige clusterconfiguratiewaarden voor HDInsight (zoals clustergatewayreferenties en opslagaccountsleutels).

Met behulp van de Azure CLI

De eenvoudigste manier om deze roltoewijzing toe te voegen, is met behulp van de az role assignment create opdracht in Azure CLI.

Notitie

Deze opdracht moet worden uitgevoerd door een gebruiker met de rol Eigenaar, omdat alleen deze machtigingen kunnen worden verleend. Dit --assignee is de naam van de service-principal of het e-mailadres van de gebruiker aan wie u de rol HDInsight-clusteroperator wilt toewijzen. Zie de veelgestelde vragen als er een fout met onvoldoende machtigingen wordt weergegeven.

Rol verlenen op het niveau van de resource (cluster)

az role assignment create --role "HDInsight Cluster Operator" --assignee <user@domain.com> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>

Rol verlenen op het niveau van de resourcegroep

az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com -g <ResourceGroupName>

Rol verlenen op abonnementsniveau

az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com

Met behulp van Azure Portal

U kunt de Azure-portal ook gebruiken om de roltoewijzing HDInsight-clusteroperator toe te voegen aan een gebruiker. Zie de documentatie, Azure-rollen toewijzen met behulp van Azure Portal.

Veelgestelde vragen

Waarom krijg ik een 403 (Verboden) reactie na het bijwerken van mijn API-aanvragen en/of hulpprogramma?

Clusterconfiguraties bevinden zich nu achter gedetailleerd toegangsbeheer op basis van rollen en vereisen de Microsoft.HDInsight/clusters/configurations/* machtiging voor toegang tot deze configuraties. Als u deze machtiging wilt verkrijgen, wijst u de rol HDInsight-clusteroperator, Inzender of Eigenaar toe aan de gebruiker of service-principal die toegang probeert te krijgen tot configuraties.

Waarom zie ik 'Onvoldoende bevoegdheden voor het voltooien van de bewerking' bij het uitvoeren van de Azure CLI-opdracht om de rol HDInsight-clusteroperator toe te wijzen aan een andere gebruiker of service-principal?

Naast de rol Eigenaar moet de gebruiker of service-principal die de opdracht uitvoert over voldoende Microsoft Entra-machtigingen beschikken om de object-id's van de toegewezen gebruiker op te zoeken. Dit bericht geeft onvoldoende Microsoft Entra-machtigingen aan. Vervang het -–assignee argument door –assignee-object-id en geef de object-id van de toegewezen gebruiker op als de parameter in plaats van de naam (of de principal-id in het geval van een beheerde identiteit). Zie de sectie optionele parameters van de documentatie over az role assignment create voor meer informatie.

Als dit nog steeds niet werkt, neemt u contact op met uw Microsoft Entra-beheerder om de juiste machtigingen te verkrijgen.

Wat gebeurt er als ik geen actie onderneem?

Vanaf 3 september 2019 GET /configurationsPOST /configurations/gateway retourneren aanroepen geen gegevens meer en retourneert de GET /configurations/{configurationName} aanroep geen gevoelige parameters meer, zoals opslagaccountsleutels of het clusterwachtwoord. Hetzelfde geldt voor de bijbehorende SDK-methoden en PowerShell-cmdlets.

Als u een oudere versie van een van de hulpprogramma's voor Visual Studio, VSCode, IntelliJ of Eclipse gebruikt, werkt deze pas als u bijwerkt.

Zie de bijbehorende sectie van dit document voor uw scenario voor meer informatie.