Condividi tramite


Eseguire la migrazione all'accesso granulare in base al ruolo per le configurazioni dei cluster

Stiamo introducendo alcune importanti modifiche per supportare l'accesso basato sui ruoli con granularità più fine per ottenere informazioni riservate. Come parte di queste modifiche, alcune azioni potrebbero essere necessarie entro il 3 settembre 2019 se si usa una delle entità/scenari interessati.

Cosa sta cambiando?

In precedenza, i segreti potevano essere ottenuti tramite l'API HDInsight dagli utenti del cluster che possiedono i ruoli Proprietario, Collaboratore o Lettore di Azure, perché erano disponibili per chiunque disponga dell'autorizzazione*/read. I segreti vengono definiti come valori che possono essere usati per ottenere un accesso più elevato rispetto al ruolo di un utente. Sono inclusi valori come le credenziali HTTP del gateway del cluster, le chiavi dell'account di archiviazione e le credenziali del database.

A partire dal 3 settembre 2019, l'accesso a questi segreti richiederà l'autorizzazione Microsoft.HDInsight/clusters/configurations/action e l'utente non potrà accedervi con il ruolo Lettore. I ruoli che dispongono di questa autorizzazione sono Collaboratore, Proprietario e il nuovo ruolo Operatore cluster HDInsight.

Viene inoltre introdotto un nuovo ruolo Operatore cluster HDInsight in grado di recuperare i segreti senza concedere le autorizzazioni amministrative di Collaboratore o Proprietario. Per concludere:

Ruolo Precedentemente In futuro
Reader - Accesso in lettura, inclusi i segreti. - Accesso in lettura, escluso i segreti
Operatore di cluster HDInsight
(Nuovo ruolo)
N/D - Accesso in lettura/scrittura, inclusi i segreti
Collaboratore - Accesso in lettura/scrittura, inclusi i segreti.
- Creare e gestire tutti i tipi di risorse di Azure.
- Eseguire azioni script.
Nessuna modifica
Proprietario - Accesso in lettura/scrittura, inclusi i segreti.
- Accesso completo a tutte le risorse
- Delegare l'accesso ad altri utenti.
- Eseguire azioni script.
Nessuna modifica

Per informazioni su come aggiungere l'assegnazione di ruolo Operatore cluster HDInsight a un utente per concedere loro l'accesso in lettura/scrittura ai segreti del cluster, vedere la sezione seguente Aggiungere l'assegnazione di ruolo Operatore cluster HDInsight a un utente.

Sono interessati da queste modifiche?

Sono interessate le entità e gli scenari seguenti:

API

Le API seguenti vengono modificate o deprecate:

  • GET /configurations/{configurationName} (informazioni riservate rimosse)
    • Usato in precedenza per ottenere singoli tipi di configurazione (inclusi i segreti).
    • A partire dal 3 settembre 2019, questa chiamata API restituirà ora singoli tipi di configurazione con segreti omessi. Per ottenere tutte le configurazioni, inclusi i segreti, usare la nuova chiamata POST /configurations. Per ottenere solo le impostazioni del gateway, usare la nuova chiamata POST /getGateway Impostazioni.
  • GET /configurations (deprecato)
    • Usato in precedenza per ottenere tutte le configurazioni (inclusi i segreti)
    • A partire dal 3 settembre 2019, questa chiamata API sarà deprecata e non sarà più supportata. Per ottenere tutte le configurazioni in futuro, usare la nuova chiamata POST /configurations. Per ottenere configurazioni con parametri sensibili omessi, usare la chiamata GET /configurations/{configurationName}.
  • POST /configurations/{configurationName} (deprecato)
    • Usato in precedenza per aggiornare le credenziali del gateway.
    • A partire dal 3 settembre 2019, questa chiamata API sarà deprecata e non più supportata. Usare invece il nuovo POST /updateGateway Impostazioni.

Sono state aggiunte le API sostitutive seguenti:

Strumenti di Azure HDInsight per Visual Studio Code

Se si usa la versione 1.1.1 o successiva, eseguire l'aggiornamento alla versione più recente di Azure HDInsight Tools per Visual Studio Code per evitare interruzioni.

Azure Toolkit for IntelliJ

Se si usa la versione 3.20.0 o successiva, eseguire l'aggiornamento alla versione più recente del plug-in Azure Toolkit for IntelliJ per evitare interruzioni.

Strumenti di Analisi di flusso e Azure Data Lake per Visual Studio

Eseguire l'aggiornamento alla versione 2.3.9000.1 o successiva di Azure Data Lake e strumenti di analisi di flusso per Visual Studio per evitare interruzioni. Per informazioni su come eseguire l'aggiornamento, vedere la documentazione update Data Lake Tools per Visual Studio.

Azure Toolkit for Eclipse

Se si usa la versione 3.15.0 o successiva, eseguire l'aggiornamento alla versione più recente di Azure Toolkit for Eclipse per evitare interruzioni.

SDK per .NET

Versioni 1.x e 2.x

Eseguire l'aggiornamento alla versione 2.1.0 di HDInsight SDK per .NET. È possibile che siano necessarie modifiche minime al codice se si usa un metodo interessato da queste modifiche:

  • ClusterOperationsExtensions.GetClusterConfigurations non restituirà più parametri sensibili, ad esempio chiavi di archiviazione (core-site) o credenziali HTTP (gateway).

    • Per recuperare tutte le configurazioni, inclusi i parametri sensibili, usare ClusterOperationsExtensions.ListConfigurations in futuro. Gli utenti con il ruolo "Lettore" non sono in grado di usare questo metodo. Consente un controllo granulare su quali utenti possono accedere alle informazioni riservate per un cluster.
    • Per recuperare solo le credenziali del gateway HTTP, usare ClusterOperationsExtensions.GetGatewaySettings.
  • ClusterOperationsExtensions.GetConnectivitySettings è ora deprecato ed è stato sostituito da ClusterOperationsExtensions.GetGatewaySettings.

  • ClusterOperationsExtensions.ConfigureHttpSettings è ora deprecato ed è stato sostituito da ClusterOperationsExtensions.UpdateGatewaySettings.

  • ConfigurationsOperationsExtensions.EnableHttp e DisableHttp sono ora deprecati. HTTP è ora sempre abilitato, quindi questi metodi non sono più necessari.

Versioni 3.x e successive

Eseguire l'aggiornamento alla versione 5.0.0 o successiva di HDInsight SDK per .NET. È possibile che siano necessarie modifiche minime al codice se si usa un metodo interessato da queste modifiche:

SDK per Python

Eseguire l'aggiornamento alla versione 1.0.0 o successiva di HDInsight SDK per Python. È possibile che siano necessarie modifiche minime al codice se si usa un metodo interessato da queste modifiche:

SDK per Java

Eseguire l'aggiornamento alla versione 1.0.0 o successiva di HDInsight SDK per Java. È possibile che siano necessarie modifiche minime al codice se si usa un metodo interessato da queste modifiche:

  • ConfigurationsInner.get non restituirà più parametri sensibili, ad esempio chiavi di archiviazione (core-site) o credenziali HTTP (gateway).
  • ConfigurationsInner.update è ora deprecato.

SDK per Go

Eseguire l'aggiornamento alla versione 27.1.0 o successiva di HDInsight SDK per Go. È possibile che siano necessarie modifiche minime al codice se si usa un metodo interessato da queste modifiche:

Az.HDInsight PowerShell

Eseguire l'aggiornamento ad Az PowerShell versione 2.0.0 o successiva per evitare interruzioni. È possibile che siano necessarie modifiche minime al codice se si usa un metodo interessato da queste modifiche.

  • Grant-AzHDInsightHttpServicesAccess è ora deprecato ed è stato sostituito dal nuovo Set-AzHDInsightGatewayCredential cmdlet.
  • Get-AzHDInsightJobOutput è stato aggiornato per supportare l'accesso granulare in base al ruolo alla chiave di archiviazione.
    • Gli utenti con ruoli Operatore cluster HDInsight, Collaboratore o Proprietario non sono interessati.
    • Gli utenti con solo il ruolo Lettore devono specificare il DefaultStorageAccountKey parametro in modo esplicito.
  • Revoke-AzHDInsightHttpServicesAccess è ora deprecato. HTTP è ora sempre abilitato, quindi questo cmdlet non è più necessario. Vedere az . Guida alla migrazione di HDInsight per altri dettagli.

Aggiungere l'assegnazione di ruolo Operatore cluster HDInsight a un utente

Un utente con il ruolo Proprietario può assegnare il ruolo Operatore cluster HDInsight agli utenti a cui si vuole avere accesso in lettura/scrittura ai valori di configurazione del cluster HDInsight sensibili, ad esempio le credenziali del gateway del cluster e le chiavi dell'account di archiviazione.

Con l'interfaccia della riga di comando di Azure

Il modo più semplice per aggiungere questa assegnazione di ruolo consiste nell'usare il comando nell'interfaccia della az role assignment create riga di comando di Azure.

Nota

Questo comando deve essere eseguito da un utente con il ruolo Proprietario, in quanto solo può concedere queste autorizzazioni. --assignee è il nome dell'entità servizio o dell'indirizzo di posta elettronica dell'utente a cui si vuole assegnare il ruolo Operatore cluster HDInsight. Se viene visualizzato un errore di autorizzazioni insufficienti, vedere le domande frequenti.

Concedere il ruolo a livello di risorsa (cluster)

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

Concedere il ruolo a livello di gruppo di risorse

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

Concedere il ruolo a livello di sottoscrizione

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

Tramite il portale di Azure

In alternativa, è possibile usare il portale di Azure per aggiungere l'assegnazione di ruolo Operatore cluster HDInsight a un utente. Vedere la documentazione Assegnare i ruoli di Azure usando il portale di Azure.

Domande frequenti

Perché viene visualizzata una risposta 403 (Accesso negato) dopo l'aggiornamento delle richieste e/o dello strumento API?

Le configurazioni del cluster sono ora dietro il controllo granulare degli accessi in base al ruolo e richiedono l'autorizzazione Microsoft.HDInsight/clusters/configurations/* per accedervi. Per ottenere questa autorizzazione, assegnare il ruolo Operatore cluster HDInsight, Collaboratore o Proprietario all'utente o all'entità servizio che tenta di accedere alle configurazioni.

Perché viene visualizzato "Privilegi insufficienti per completare l'operazione" quando si esegue il comando dell'interfaccia della riga di comando di Azure per assegnare il ruolo Operatore cluster HDInsight a un altro utente o a un'entità servizio?

Oltre a avere il ruolo Proprietario, l'utente o l'entità servizio che esegue il comando deve avere autorizzazioni sufficienti per cercare gli ID oggetto dell'assegnatario. Questo messaggio indica autorizzazioni di Microsoft Entra insufficienti. Provare a sostituire l'argomento -–assignee con –assignee-object-id e specificare l'ID oggetto dell'assegnatario come parametro anziché il nome (o l'ID entità nel caso di un'identità gestita). Per altre informazioni, vedere la sezione parametri facoltativi della documentazione az role assignment create.

Se non funziona ancora, contattare l'amministratore di Microsoft Entra per acquisire le autorizzazioni corrette.

Cosa succederà se non prendo alcuna azione?

A partire dal 3 settembre 2019, GET /configurations le POST /configurations/gateway chiamate non restituiranno più informazioni e la GET /configurations/{configurationName} chiamata non restituirà più parametri sensibili, ad esempio le chiavi dell'account di archiviazione o la password del cluster. Lo stesso vale per i metodi SDK e i cmdlet di PowerShell corrispondenti.

Se si usa una versione precedente di uno degli strumenti per Visual Studio, VSCode, IntelliJ o Eclipse menzionati, non funzionerà più fino all'aggiornamento.

Per informazioni più dettagliate, vedere la sezione corrispondente di questo documento per lo scenario in uso.