Verwendung des Enterprise-Sicherheitspakets in HDInsightUse Enterprise Security Package in HDInsight

Der standardmäßige Azure HDInsight-Cluster ist ein Einzelbenutzercluster.The standard Azure HDInsight cluster is a single-user cluster. Dieser ist für die meisten Unternehmen geeignet, in denen kleinere Anwendungsteams große Datenworkloads erstellen.It's suitable for most companies that have smaller application teams building large data workloads. Jeder Benutzer kann bei Bedarf einen eigenen Cluster erstellen und ihn löschen, wenn er nicht mehr benötigt wird.Each user can create a dedicated cluster on demand and destroy it when it's not needed anymore.

Viele Unternehmen führten die Umstellung auf ein Modell durch, bei dem IT-Teams Cluster verwalten und mehrere Anwendungsteams Cluster gemeinsam nutzen.Many enterprises have moved toward a model in which IT teams manage clusters, and multiple application teams share clusters. Diese größeren Unternehmen benötigen Zugriff auf den Cluster durch mehrere Benutzer in Azure HDInsight.These larger enterprises need multiuser access to each cluster in Azure HDInsight.

HDInsight basiert auf einem häufig verwendeten Identitätsanbieter – Active Directory – in einer verwalteten Methode.HDInsight relies on a popular identity provider--Active Directory--in a managed way. Durch die Integration von HDInsight in Azure Active Directory Domain Services (Azure AD DS) können Sie mithilfe der Anmeldeinformationen für die Domäne auf die Cluster zugreifen.By integrating HDInsight with Azure Active Directory Domain Services (Azure AD DS), you can access the clusters by using your domain credentials.

Die virtuellen Computer (VMs) in HDInsight werden in Ihre bereitgestellte Domäne eingebunden.The virtual machines (VMs) in HDInsight are domain joined to your provided domain. Alle Dienste, die unter HDInsight ausgeführt werden (Apache Ambari, Apache Hive-Server, Apache Ranger, Apache Spark Thrift-Server usw.), funktionieren daher für den authentifizierten Benutzer nahtlos.So, all the services running on HDInsight (Apache Ambari, Apache Hive server, Apache Ranger, Apache Spark thrift server, and others) work seamlessly for the authenticated user. Administratoren können dann mithilfe von Apache Ranger starke Autorisierungsrichtlinien erstellen, um eine rollenbasierte Zugriffssteuerung für Ressourcen im Cluster zu ermöglichen.Administrators can then create strong authorization policies by using Apache Ranger to provide role-based access control for resources in the cluster.

Integrieren von HDInsight in Active DirectoryIntegrate HDInsight with Active Directory

Open-Source-Apache Hadoop basiert auf dem Kerberos-Protokoll für die Bereitstellung von Authentifizierung und Sicherheit.Open-source Apache Hadoop relies on the Kerberos protocol for authentication and security. Daher sind HDInsight-Clusterknoten mit dem Enterprise-Sicherheitspaket (ESP) in eine mit den Azure AD DS verwaltete Domäne eingebunden.Therefore, HDInsight cluster nodes with Enterprise Security Package (ESP) are joined to a domain that's managed by Azure AD DS. Die Kerberos-Sicherheit ist für die Hadoop-Komponenten auf dem Cluster konfiguriert.Kerberos security is configured for the Hadoop components on the cluster.

Folgendes wird automatisch erstellt:The following things are created automatically:

  • Ein Dienstprinzipal für jede Hadoop-KomponenteA service principal for each Hadoop component
  • Ein Computerprinzipal für jeden Computer, der in die Domäne eingebunden istA machine principal for each machine that's joined to the domain
  • Eine Organisationseinheit für jeden Cluster zum Speichern dieser Dienst- und ComputerprinzipaleAn Organizational Unit (OU) for each cluster to store these service and machine principals

Zusammengefasst benötigen Sie zum Einrichten einer Umgebung Folgendes:To summarize, you need to set up an environment with:

  • Eine (von Azure AD DS verwaltete) Active Directory-Domäne.An Active Directory domain (managed by Azure AD DS). Der Domänenname darf maximal 39 Zeichen lang sein, um mit Azure HDInsight zu funktionieren.The domain name must be 39 characters or less to work with Azure HDInsight.
  • In Azure AD DS aktiviertes sicheres LDAP (LDAPS).Secure LDAP (LDAPS) enabled in Azure AD DS.
  • Ordnungsgemäße Konnektivität vom virtuellen HDInsight-Netzwerk zum virtuellen Azure AD DS-Netzwerk, wenn Sie separate virtuelle Netzwerke für sie wählen.Proper networking connectivity from the HDInsight virtual network to the Azure AD DS virtual network, if you choose separate virtual networks for them. Eine VM innerhalb des virtuellen HDInsight-Netzwerks sollte durch das Peering virtueller Netzwerke uneingeschränkten Zugriff auf Azure AD DS haben.A VM inside the HDInsight virtual network should have a line of sight to Azure AD DS through virtual network peering. Wenn HDInsight und Azure AD DS im gleichen virtuellen Netzwerk bereitgestellt werden, wird die Konnektivität automatisch bereitgestellt, und es ist keine weitere Aktion erforderlich.If HDInsight and Azure AD DS are deployed in the same virtual network, the connectivity is automatically provided, and no further action is needed.

Einrichten anderer DomänencontrollerSet up different domain controllers

HDInsight unterstützt derzeit nur Azure AD DS als Hauptdomänencontroller, den der Cluster für die Kerberos-Kommunikation verwendet.HDInsight currently supports only Azure AD DS as the main domain controller that the cluster uses for Kerberos communication. Aber auch andere komplexe Active Directory-Setups sind möglich, sofern ein solches Setup dazu führt, dass Azure AD DS für den HDInsight-Zugriff freigegeben wird.But other complex Active Directory setups are possible, as long as such a setup leads to enabling Azure AD DS for HDInsight access.

Azure Active Directory Domain ServicesAzure Active Directory Domain Services

Azure AD DS stellt eine verwaltete Domäne bereit, die vollständig mit Windows Server Active Directory kompatibel ist.Azure AD DS provides a managed domain that's fully compatible with Windows Server Active Directory. Microsoft übernimmt in einem Hochverfügbarkeitssetup (Highly Available, HA) die Verwaltung, das Patchen und das Überwachen der Domäne.Microsoft takes care of managing, patching, and monitoring the domain in a highly available (HA) setup. Sie können Ihren Cluster bereitstellen, ohne sich Sorgen um die Verwaltung von Domänencontrollern zu machen.You can deploy your cluster without worrying about maintaining domain controllers.

Benutzer, Gruppen und Kennwörter werden in Azure AD synchronisiert.Users, groups, and passwords are synchronized from Azure AD. Die unidirektionale Synchronisierung aus Ihrem Azure AD-Instanz zu Azure AD DS gibt Benutzern die Möglichkeit, sich mit den gleichen Anmeldeinformationen des Unternehmens beim Cluster anzumelden.The one-way sync from your Azure AD instance to Azure AD DS enables users to sign in to the cluster by using the same corporate credentials.

Weitere Informationen finden Sie unter Konfigurieren eines HDInsight-Clusters mit dem Enterprise-Sicherheitspaket mit den Azure Active Directory Domain Services.For more information, see Configure HDInsight clusters with ESP using Azure AD DS.

Lokales Active Directory oder Active Directory auf IaaS-VMsOn-premises Active Directory or Active Directory on IaaS VMs

Wenn Sie eine lokale Active Directory-Instanz oder komplexere Active Directory-Setups für Ihre Domäne haben, können Sie diese Identitäten anhand von Azure AD Connect mit Azure synchronisieren.If you have an on-premises Active Directory instance or more complex Active Directory setups for your domain, you can sync those identities to Azure AD by using Azure AD Connect. Anschließend können Sie Azure AD DS auf diesem Active Directory-Mandanten aktivieren.You can then enable Azure AD DS on that Active Directory tenant.

Da Kerberos auf Kennworthashes angewiesen ist, müssen Sie die Kennworthashsynchronisierung für Azure AD DS aktivieren.Because Kerberos relies on password hashes, you must enable password hash sync on Azure AD DS.

Wenn Sie einen Verbund mit Active Directory-Verbunddienste (AD FS) verwenden, müssen Sie die Kennworthashsynchronisierung aktivieren. (Eine empfohlene Konfiguration finden Sie in diesem Video.) Die Kennworthashsynchronisierung hilft bei der Notfallwiederherstellung, falls Ihre AD FS-Infrastruktur ausfällt, und bietet zudem Schutz vor der Offenlegung von Anmeldeinformationen.If you're using federation with Active Directory Federation Services (AD FS), you must enable password hash sync. (For a recommended setup, see this video.) Password hash sync helps with disaster recovery in case your AD FS infrastructure fails, and it also helps provide leaked-credential protection. Weitere Informationen finden Sie unter Implementieren der Kennworthashsynchronisierung mit der Azure AD Connect-Synchronisierung.For more information, see Enable password hash sync with Azure AD Connect sync.

Die alleinige Verwendung des lokalen Active Directory oder Active Directory auf IaaS-VMs ohne Azure AD und die Azure AD DS wird für HDInsight-Cluster mit dem ESP nicht unterstützt.Using on-premises Active Directory or Active Directory on IaaS VMs alone, without Azure AD and Azure AD DS, isn't a supported configuration for HDInsight clusters with ESP.

Wenn ein Verbund verwendet wird und Kennworthashes richtig synchronisiert werden, Sie aber Authentifizierungsfehler erhalten, überprüfen Sie, ob die Cloudkennwortauthentifizierung des PowerShell-Dienstprinzipals aktiviert ist.If federation is being used and password hashes are synced correctly, but you are getting authentication failures, check if cloud password authentication is enabled for the PowerShell service principal. Ist dies nicht der Fall, müssen Sie eine HRD-Richtlinie (Home Realm Discovery, Startbereichsermittlung) für Ihren Azure AD-Mandanten festlegen.If not, you must set a Home Realm Discovery (HRD) policy for your Azure AD tenant. So überprüfen Sie die HRD-Richtlinie und legen sie festTo check and set the HRD policy:

  1. Installieren Sie die Vorschauversion des Azure AD PowerShell-Moduls.Install the preview Azure AD PowerShell module.

    Install-Module AzureAD
    
  2. Stellen Sie mit den Anmeldeinformationen eines globalen Administrators (Mandantenadministrators) eine Verbindung her.Connect using global administrator (tenant administrator) credentials.

    Connect-AzureAD
    
  3. Überprüfen Sie, ob der Dienstprinzipal „Microsoft Azure PowerShell“ bereits erstellt wurde.Check if the Microsoft Azure PowerShell service principal has already been created.

    Get-AzureADServicePrincipal -SearchString "Microsoft Azure Powershell"
    
  4. Wenn der Dienstprinzipal nicht vorhanden ist, erstellen Sie ihn.If it doesn't exist, then create the service principal.

    $powershellSPN = New-AzureADServicePrincipal -AppId 1950a258-227b-4e31-a9cf-717495945fc2
    
  5. Erstellen Sie die Richtlinie, und fügen Sie sie an den Dienstprinzipal an.Create and attach the policy to this service principal.

     # Determine whether policy exists
     Get-AzureADPolicy | Where {$_.DisplayName -eq "EnableDirectAuth"}
    
     # Create if not exists
     $policy = New-AzureADPolicy `
         -Definition @('{"HomeRealmDiscoveryPolicy":{"AllowCloudPasswordValidation":true}}') `
         -DisplayName "EnableDirectAuth" `
         -Type "HomeRealmDiscoveryPolicy"
    
     # Determine whether a policy for the service principal exist
     Get-AzureADServicePrincipalPolicy `
         -Id $powershellSPN.ObjectId
    
     # Add a service principal policy if not exist
     Add-AzureADServicePrincipalPolicy `
         -Id $powershellSPN.ObjectId `
         -refObjectID $policy.ID
    

Nächste SchritteNext steps