Uso de Enterprise Security Package en HDInsightUse Enterprise Security Package in HDInsight

El clúster de Azure HDInsight estándar es de un único usuario.The standard Azure HDInsight cluster is a single-user cluster. Es apropiado para la mayor parte de las empresas que tienen equipos de aplicaciones pequeños que generan grandes cargas de trabajo de datos.It's suitable for most companies that have smaller application teams building large data workloads. Cada usuario puede crear un clúster dedicado a petición y destruirlo cuando ya no sea necesario.Each user can create a dedicated cluster on demand and destroy it when it's not needed anymore.

Muchas empresas han migrado a un modelo en el que los equipos de TI administran los clústeres y varios equipos de aplicaciones los comparten.Many enterprises have moved toward a model in which IT teams manage clusters, and multiple application teams share clusters. Estas empresas más grandes necesitan acceso multiusuario a cada clúster de Azure HDInsight.These larger enterprises need multiuser access to each cluster in Azure HDInsight.

HDInsight se basa en un proveedor de identidades conocido (Active Directory) de una manera administrada.HDInsight relies on a popular identity provider--Active Directory--in a managed way. Mediante la integración de HDInsight con Azure Active Directory Domain Services (Azure AD DS), puede acceder a los clústeres con sus credenciales de dominio.By integrating HDInsight with Azure Active Directory Domain Services (Azure AD DS), you can access the clusters by using your domain credentials.

Las máquinas virtuales (VM) de HDInsight están unidas al dominio proporcionado.The virtual machines (VMs) in HDInsight are domain joined to your provided domain. De este modo, todos los servicios que se ejecutan en HDInsight (Apache Ambari, servidor de Apache Hive, Apache Ranger, servidor Thrift de Apache Spark, etc.) funcionan perfectamente para el usuario autenticado.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. Los administradores pueden crear entonces directivas de autorización seguras con Apache Ranger para proporcionar control de acceso basado en rol para los recursos del clúster.Administrators can then create strong authorization policies by using Apache Ranger to provide role-based access control for resources in the cluster.

Integración de HDInsight con Active DirectoryIntegrate HDInsight with Active Directory

Apache Hadoop de código abierto se basa en el protocolo Kerberos para proporcionar autenticación y seguridad.Open-source Apache Hadoop relies on the Kerberos protocol for authentication and security. Por consiguiente, los nodos del clúster de HDInsight con Enterprise Security Package (ESP) se combinan en un dominio que administra Azure AD DS.Therefore, HDInsight cluster nodes with Enterprise Security Package (ESP) are joined to a domain that's managed by Azure AD DS. Se configura la seguridad de Kerberos para los componentes de Hadoop en el clúster.Kerberos security is configured for the Hadoop components on the cluster.

Las siguientes cosas se crean automáticamente:The following things are created automatically:

  • Una entidad de servicio para cada componente de Hadoop.A service principal for each Hadoop component
  • Una entidad de seguridad de máquina para cada máquina unida al dominio.A machine principal for each machine that's joined to the domain
  • Una unidad organizativa (UO) para cada clúster para almacenar estas entidades de servicio y de máquina.An Organizational Unit (OU) for each cluster to store these service and machine principals

En resumen, es necesario configurar un entorno con:To summarize, you need to set up an environment with:

  • Un dominio de Active Directory (administrado por Azure AD DS).An Active Directory domain (managed by Azure AD DS). El nombre de dominio debe tener 39 caracteres como máximo para funcionar con Azure HDInsight.The domain name must be 39 characters or less to work with Azure HDInsight.
  • LDAP seguro (LDAPS) habilitado en Azure AD DS.Secure LDAP (LDAPS) enabled in Azure AD DS.
  • Conectividad de red adecuada desde la red virtual de HDInsight a la red virtual de Azure AD DS, si elige redes virtuales independientes para ellas.Proper networking connectivity from the HDInsight virtual network to the Azure AD DS virtual network, if you choose separate virtual networks for them. Una máquina virtual dentro de la red virtual de HDInsight debe tener una línea de visión a Azure AD DS a través del emparejamiento de la red virtual.A VM inside the HDInsight virtual network should have a line of sight to Azure AD DS through virtual network peering. Si HDInsight y Azure AD DS se implementan en la misma red virtual, la conectividad se proporciona de manera automática y no es necesaria ninguna otra acción.If HDInsight and Azure AD DS are deployed in the same virtual network, the connectivity is automatically provided, and no further action is needed.

Configuración de distintos controladores de dominioSet up different domain controllers

HDInsight actualmente solo admite Azure AD DS como el controlador de dominio principal que el clúster usa para la comunicación de Kerberos.HDInsight currently supports only Azure AD DS as the main domain controller that the cluster uses for Kerberos communication. Pero hay otras configuraciones complejas de Active Directory que son posibles, siempre que dicha configuración lleve a habilitar Azure AD DS para el acceso de HDInsight.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 proporciona un dominio administrado que es totalmente compatible con Windows Server Active Directory.Azure AD DS provides a managed domain that's fully compatible with Windows Server Active Directory. Microsoft se encarga de administrar y supervisar el dominio, y de aplicarle los parches, en una configuración de alta disponibilidad (HA).Microsoft takes care of managing, patching, and monitoring the domain in a highly available (HA) setup. Puede implementar el clúster sin preocuparse por mantener los controladores de dominio.You can deploy your cluster without worrying about maintaining domain controllers.

Los usuarios, los grupos y las contraseñas se sincronizan desde Azure AD.Users, groups, and passwords are synchronized from Azure AD. La sincronización unidireccional desde la instancia de Azure AD a Azure AD DS permite que los usuarios inicien sesión en el clúster con las mismas credenciales corporativas.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.

Para más información, consulte Configuración de clústeres de HDInsight con Enterprise Security Package mediante Azure Active Directory Domain Services.For more information, see Configure HDInsight clusters with ESP using Azure AD DS.

Active Directory local o Active Directory en máquinas virtuales de IaaSOn-premises Active Directory or Active Directory on IaaS VMs

Si tiene una instancia de Active Directory local o configuraciones más complejas de Active Directory para el dominio, puede sincronizar esas identidades con Azure AD mediante Azure AD Connect.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. Luego puede habilitar Azure AD DS en ese inquilino de Active Directory.You can then enable Azure AD DS on that Active Directory tenant.

Como Kerberos se basa en valores hash de contraseña, debe habilitar la sincronización de hash de contraseñas en Azure AD DS.Because Kerberos relies on password hashes, you must enable password hash sync on Azure AD DS.

Si está usando la federación con los Servicios de federación de Active Directory (AD FS), debe habilitar la sincronización del hash de contraseña. (Para ver una configuración recomendada, consulte este vídeo.) La sincronización del hash contraseña le permite llevar a cabo la recuperación ante desastres en caso de que su infraestructura de AD FS falle; asimismo, también le ayudará a proporcionar protección para las credenciales filtradas.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. Para más información, consulte Implementación de la sincronización de hash de contraseñas con la sincronización de Azure AD Connect.For more information, see Enable password hash sync with Azure AD Connect sync.

El uso de una instancia de Active Directory local o de Active Directory solo en máquinas virtuales de IaaS, sin Azure AD ni Azure AD DS, no es una configuración compatible con los clústeres de HDInsight con ESP.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.

Si se está usando la federación y los hash de contraseña se sincronizan correctamente, pero recibe errores de autenticación, compruebe si está habilitada la autenticación de contraseña en la nube para la entidad de servicio de PowerShell.If federation is being used and password hashes are synced correctly, but you're getting authentication failures, check if cloud password authentication is enabled for the PowerShell service principal. De lo contrario, debe establecer una directiva para la Detección del dominio principal (HRD) en el inquilino de Azure AD.If not, you must set a Home Realm Discovery (HRD) policy for your Azure AD tenant. Para comprobar y establecer la directiva de HRD:To check and set the HRD policy:

  1. Instale la versión preliminar del módulo de PowerShell de Azure AD.Install the preview Azure AD PowerShell module.

    Install-Module AzureAD
    
  2. Conéctese con las credenciales de un administrador global (administrador de inquilinos).Connect using global administrator (tenant administrator) credentials.

    Connect-AzureAD
    
  3. Compruebe si ya se ha creado la entidad de servicio "Microsoft Azure PowerShell".Check if the Microsoft Azure PowerShell service principal has already been created.

    Get-AzureADServicePrincipal -SearchString "Microsoft Azure Powershell"
    
  4. Si no existe, cree la entidad de servicio.If it doesn't exist, then create the service principal.

    $powershellSPN = New-AzureADServicePrincipal -AppId 1950a258-227b-4e31-a9cf-717495945fc2
    
  5. Cree y asocie la directiva a la entidad de servicio.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
    

Pasos siguientesNext steps