Gestire la sicurezza delle applicazioni/del middleware

Completato

Nelle organizzazioni di grandi dimensioni sono presenti più utenti che lavorano in diversi gruppi aziendali e ai quali occorre:

  • Accedere al cluster in modo sicuro
  • Applicare il principio del privilegio minimo per accedere ai dati sottostanti
  • Registrare gli eventi significativi dal punto di vista della sicurezza.

Lo scopo della sicurezza delle applicazioni in HDInsight è offrire modi per autenticare in tutta sicurezza più utenti a HDInsight, applicare ai dati la pratica di limitare i diritti di accesso degli utenti alle autorizzazioni minime necessarie per eseguire il lavoro e infine registrare eventi significativi dal punto di vista della sicurezza, come un accesso, un tentativo di eseguire un'azione privilegiata, una modifica di un record importante.

Authentication

L'autenticazione è il processo che definisce un'identità e che porta alla convalida dell'identità degli utenti. I cluster HDInsight in scenari di produzione devono in genere consentire a un'ampia gamma di utenti che lavorano in diversi gruppi aziendali di eseguire l'autenticazione nel cluster in modo da svolgere attività quali la configurazione, l'invio, l'esecuzione e il monitoraggio dei carichi di lavoro. L'abilitazione della funzionalità "Enterprise Security Package" (ESP) durante la creazione del cluster HDInsight consente l'aggiunta dei cluster a un dominio e l'uso da parte degli utenti del dominio delle credenziali di dominio per autenticarsi al cluster. I gruppi di Active Directory possono essere usati per creare gruppi di singoli utenti che rappresentano una funzione o un reparto di un'organizzazione; al momento della creazione è possibile sincronizzare con il cluster vari di questi gruppi. I cluster devono avere un amministratore del cluster di dominio e uno o più gruppi di utenti con accesso limitato. Di seguito è riportata una rappresentazione dei componenti e delle parti coinvolte nel processo di autenticazione di HDInsight.

Processo di autenticazione di HDInsight

I componenti seguenti nel dominio di identità dell’azienda partecipano al processo di configurazione e autenticazione per un cluster ESP.

  • Windows Server Active Directory: controller di dominio locale che archivia il nome dell'entità utente, anche noto come UPN (ad esempio, user@Contoso.com), e le rispettive password di dominio.
  • Active Directory Connect(AD Connect): strumento Microsoft progettato per eseguire la configurazione di identità ibride. Per la configurazione di ESP in HDInsight sono fondamentali funzionalità come la sincronizzazione dell'hash delle password.
  • Directory Azure Activity (Microsoft Entra ID): Servizio di gestione delle identità e degli accessi basato su Microsoft Azure.
  • Microsoft Entra Domain Services (Microsoft Entra Domain Services): Offre servizi di dominio gestito, come l'aggiunta a un dominio, criteri di gruppo, LDAP (Lightweight Directory Access Protocol) e autenticazione Kerberos o NTLM, completamente compatibili con Windows Server Active Directory. È possibile usare questi servizi di dominio senza dover distribuire, gestire e applicare patch ai controller di dominio nel cloud. Microsoft Entra Domain Services si integra con il tenant di Microsoft Entra esistente, che consente agli utenti di accedere usando le credenziali esistenti. È anche possibile usare i gruppi e gli account utente esistenti per proteggere l'accesso alle risorse e garantire così un trasferimento in modalità lift-and-shift delle risorse locali in Azure.

HDInsight supporta due tipi di scenari di autenticazione

  • Quando gli hash delle password vengono sincronizzati con Microsoft Entra ID.
  • Quando gli hash delle password vengono conservati nei controller di dominio locali. Si noti che l'utente può scegliere di creare il cluster HDInsight con il BLOB del servizio di archiviazione di Windows Azure (WASB) o con l'archiviazione ADLS Gen2 e che il processo di autenticazione varia leggermente. Sebbene tutti i passaggi del processo di autenticazione vengano eseguiti automaticamente e vengano estratti rispetto all'utente, è importante avere una panoramica generale della sequenza di eventi implicati nell'autenticazione di un utente.

Autenticazione: quando gli hash delle password vengono sincronizzati con Microsoft Entra ID

Autenticazione: Quando gli hash delle password vengono sincronizzati con Microsoft Entra ID

  1. L'utente John Doe esegue l'autenticazione a un servizio HDInsight, ad esempio Ambari, SSH, Zeppelin e così via, con le sue credenziali di dominio user@contoso.onmicrosoft.com (note come nome dell'entità utente o UPN) e password. Il gateway memorizza nome utente e password.
  2. Il gateway HDInsight invia a Microsoft Entra ID l'UPN e la password specificati dall'utente usando il flusso di credenziali password del proprietario della risorsa (ROPC) e una richiesta di accesso OAuth. Microsoft Entra ID conferma l'identità dell'utente ed emette un token di aggiornamento che viene salvato nel servizio credenziali eseguito nel nodo head. Nei cluster con account di archiviazione ADLS Gen 2 i driver di archiviazione comunicano con il servizio credenziali per recuperare il token OAuth allo scopo di eseguire l'autenticazione pass-through con ADLS.
  3. Il gateway autentica quindi l'utente con Microsoft Entra Domain Services e ottiene un ticket Kerberos. Il gateway invia quindi il ticket Kerberos ai nodi head e autentica l'utente al cluster.

Autenticazione MFA: quando gli hash delle password non vengono sincronizzati con Microsoft Entra ID

Nota

Questa configurazione è detta anche broker di ID di HDInsight e supporta l'autenticazione a più fattori (MFA). In questa configurazione, se gli hash delle password non vengono sincronizzati con Microsoft Entra ID, l'utente può comunque eseguire l'autenticazione al gateway.

Quando gli hash delle password non vengono sincronizzati con Microsoft Entra ID

  1. L'utente John Doe avvia un servizio HDInsight basato sul Web, ad esempio Ambari o Zeppelin. La pagina reindirizza l'utente a una schermata di accesso interattiva. Il client viene reindirizzato a Microsoft Entra ID per consentire all'utente di eseguire l'autenticazione usando il proprio UPN user@contoso.onmicrosoft.com.
  2. Quando viene immesso l'UPN, il client viene reindirizzato al server ADFS locale in cui l'utente immette la password. A questo punto viene l'autenticazione MFA, se abilitata. Al termine dell'autenticazione, viene emesso un token OAuth per il client.
  3. Il client presenta il token OAuth al gateway HDInsight.
  4. Il gateway HDInsight usa il token OAuth per acquisire un ticket Kerberos dal nodo broker di ID di HDInsight.
  5. Il gateway usa il ticket Kerberos per registrare il token OAuth al servizio credenziali dei nodi head ed esegue l'autenticazione al cluster.

Nota

Se gli hash delle password non vengono sincronizzati con Microsoft Entra ID, gli utenti del dominio non possono eseguire SSH nei nodi head. Solo l'utente SSH locale sarà in grado di eseguire attività SSH. Il materiale sussidiario per la configurazione dei meccanismi di autenticazione per entrambi gli scenari è fornito in Usare il broker di identità per la gestione delle credenziali.

Autorizzazione

L'autorizzazione in HDInsight consiste nel determinare e nell’applicare i privilegi utente nei set di dati sottostanti. L'autorizzazione specifica per determinate azioni e/o operazioni è disponibile nei servizi HDInsight di Hive, HBase e Kafka ed è gestita tramite Apache Ranger. Ranger offre il controllo degli accessi in base al ruolo e il controllo degli accessi in base agli attributi e centralizza il controllo dell'accesso degli utenti e delle azioni amministrative. In genere si esegue l'autenticazione in Apache Ranger tramite le credenziali di dominio dell'amministratore del cluster e quindi si configurano i criteri per i gruppi o gli utenti con restrizioni in Ranger. Nell'esempio seguente vengono illustrati i modi per creare un criterio di Ranger per impostare le autorizzazioni in una tabella Hive di esempio in Ranger.

  1. Avviare Apache Ranger usando l'URL: https://CLUSTERNAME.azurehdinsight.net/Ranger/. Sostituire "CLUSTERNAME" con il nome del cluster. Per accedere, usare l'amministratore di dominio del cluster e la password corrispondente.

    Impostazione delle autorizzazioni con Apache Ranger

  2. Fare clic su Aggiungi nuovo criterio per aggiungere un nuovo criterio di Ranger.

    Aggiunta di un nuovo criterio di Ranger

  3. Inserire i dettagli del criterio con le informazioni seguenti:

    1. Nome criterio: nome del criterio.
    2. Database: scegliere il database Hive.
    3. Tabella: scegliere la tabella Hive nel database selezionato.
    4. Colonna Hive: scegliere la colonna Hive in cui applicare i criteri.
    5. Impostare la registrazione di controllo su Sì per abilitare la registrazione di tutti gli accessi.
    6. Condizioni per gli elementi consentiti:
      • I criteri possono essere applicati a utenti di dominio Active Directory (AD) o a gruppi di dominio nella sezione Condizioni per gli elementi consentiti. Se si desidera applicare i criteri a tutti gli utenti di un gruppo AD, aggiungere tale gruppo AD alla sezione Seleziona gruppo.
      • In alternativa, se si desidera che i criteri vengano applicati a un set di utenti singolo o scelto fra gruppi AD diversi, è possibile aggiungere tutti i singoli ID di dominio degli utenti nel campo Seleziona utente.
      • Scegliere da un set di autorizzazioni nella barra della casella di controllo Autorizzazioni.
  4. Scorrere verso il basso e fare clic su Aggiungi.

    Aggiunta di criteri

  5. Dopo la configurazione, questa regola verrà applicata a tutti gli utenti inclusi nei criteri.

La configurazione dei criteri di Ranger per HBase e Kafka è descritta nei rispettivi collegamenti ipertestuali presenti nella sezione.

Controllo

Il controllo in HDInsight dal punto di vista della sicurezza consiste nel registrare e nel monitorare le richieste di autenticazione e autorizzazione che si verificano durante la durata operativa del cluster e anche dopo la sua eliminazione.

Il controllo in HDInsight viene abilitato usando i log di monitoraggio di Azure e può essere usato per mettere in evidenza i log fondamentali per la sicurezza del cluster. Di seguito sono elencate alcune tabelle di log contenenti informazioni fondamentali per la sicurezza del cluster.

Nome della tabella di log Scopo
ranger_audit_logs_CL Log di controllo di Apache Ranger nei cluster ESP
log_gateway_audit_CL Log di controllo del gateway per mostrare i tentativi riusciti e non riusciti
log_ambari_audit_CL Log di controllo di Ambari
log_auth_CL Log SSH per i tentativi riusciti e non riusciti

Il monitoraggio di Azure viene abilitato dal portale di Azure in pochi clic.

  1. Nel cluster HDInsight fare clic su Monitoraggio di Azure nel pannello a sinistra. Impostare Integrazione di Monitoraggio di Azure su True e, in Selezionare un'area di lavoro, scegliere dall’elenco a discesa un'area di lavoro di Log Analytics creata in precedenza.

    Uso di Monitoraggio di Azure

  2. Avviare l'area di lavoro di Log Analytics e importare le soluzioni di monitoraggio di HDInsight pertinenti in base al tipo di cluster. Avviare la soluzione e fare clic su Log.

    Visualizzazione dei log

  3. Le tabelle di log pertinenti alla sicurezza sono disponibili nella sezione Log personalizzati a sinistra. È quindi possibile eseguire query su tali tabelle per estrarre le informazioni di accesso pertinenti.

    Visualizzazione di log personalizzati