Usar Enterprise Security Package no HDInsightUse Enterprise Security Package in HDInsight

O cluster do Azure HDInsight padrão é um cluster de usuário único.The standard Azure HDInsight cluster is a single-user cluster. É adequado para a maioria das empresas que têm equipes de aplicativos menores que criam grandes cargas de trabalho de dados.It's suitable for most companies that have smaller application teams building large data workloads. Cada usuário pode criar um cluster dedicado sob demanda e destruí-lo quando não for mais necessário.Each user can create a dedicated cluster on demand and destroy it when it's not needed anymore.

Muitas empresas mudaram para um modelo no qual as equipes de ti gerenciam clusters e várias equipes de aplicativos compartilham clusters.Many enterprises have moved toward a model in which IT teams manage clusters, and multiple application teams share clusters. Essas empresas maiores precisam de acesso multiusuário a cada cluster no Azure HDInsight.These larger enterprises need multiuser access to each cluster in Azure HDInsight.

O HDInsight conta com um provedor de identidade popular – Active Directory--de uma maneira gerenciada.HDInsight relies on a popular identity provider--Active Directory--in a managed way. Ao integrar o HDInsight ao Azure Active Directory Domain Services (Azure AD DS), você pode acessar os clusters usando suas credenciais de domínio.By integrating HDInsight with Azure Active Directory Domain Services (Azure AD DS), you can access the clusters by using your domain credentials.

As máquinas virtuais (VMs) no HDInsight são ingressadas no domínio em seu domínio fornecido.The virtual machines (VMs) in HDInsight are domain joined to your provided domain. Portanto, todos os serviços em execução no HDInsight (Apache Ambari, Apache Hive Server, Apache Ranger, Apache Spark Server thrift e outros) funcionam sem problemas para o usuário 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. Os administradores podem criar políticas de autorização fortes usando o Apache Ranger para fornecer controle de acesso baseado em função para recursos no cluster.Administrators can then create strong authorization policies by using Apache Ranger to provide role-based access control for resources in the cluster.

Integrar o HDInsight no Active DirectoryIntegrate HDInsight with Active Directory

O Apache Hadoop de código-fonte aberto depende do protocolo Kerberos para autenticação e segurança.Open-source Apache Hadoop relies on the Kerberos protocol for authentication and security. Portanto, os nós do cluster HDInsight com Enterprise Security Package (ESP) são Unidos a um domínio gerenciado pelo AD DS do Azure.Therefore, HDInsight cluster nodes with Enterprise Security Package (ESP) are joined to a domain that's managed by Azure AD DS. A segurança Kerberos está configurada para os componentes do Hadoop no cluster.Kerberos security is configured for the Hadoop components on the cluster.

Os itens a seguir são criados automaticamente:The following things are created automatically:

  • Uma entidade de serviço para cada componente do HadoopA service principal for each Hadoop component
  • Uma entidade de máquina para cada computador ingressado no domínioA machine principal for each machine that's joined to the domain
  • Uma UO (unidade organizacional) para cada cluster para armazenar essas entidades de serviço e computadorAn Organizational Unit (OU) for each cluster to store these service and machine principals

Para resumir, você precisa configurar um ambiente com:To summarize, you need to set up an environment with:

  • Um domínio Active Directory (gerenciado pelo AD DS do Azure).An Active Directory domain (managed by Azure AD DS). O nome de domínio deve ter 39 caracteres ou menos para funcionar com o Azure HDInsight.The domain name must be 39 characters or less to work with Azure HDInsight.
  • LDAP Seguro (LDAPs) habilitados no AD DS do Azure.Secure LDAP (LDAPS) enabled in Azure AD DS.
  • Conectividade de rede adequada da rede virtual do HDInsight para a rede virtual do Azure AD DS, se você escolher redes virtuais separadas para elas.Proper networking connectivity from the HDInsight virtual network to the Azure AD DS virtual network, if you choose separate virtual networks for them. Uma VM dentro da rede virtual HDInsight deve ter uma linha de visão do Azure AD DS por meio do emparelhamento de rede virtual.A VM inside the HDInsight virtual network should have a line of sight to Azure AD DS through virtual network peering. Se o HDInsight e o AD DS do Azure forem implantados na mesma rede virtual, a conectividade será fornecida automaticamente e nenhuma ação adicional será necessária.If HDInsight and Azure AD DS are deployed in the same virtual network, the connectivity is automatically provided, and no further action is needed.

Configurar controladores de domínio diferentesSet up different domain controllers

Atualmente, o HDInsight dá suporte apenas ao Azure AD DS como o controlador de domínio principal que o cluster usa para comunicação Kerberos.HDInsight currently supports only Azure AD DS as the main domain controller that the cluster uses for Kerberos communication. Mas outras configurações de Active Directory complexas são possíveis, desde que essa configuração leve a habilitar o AD DS do Azure para acesso ao 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

O Azure AD DS fornece um domínio gerenciado que é totalmente compatível com o Windows Server Active Directory.Azure AD DS provides a managed domain that's fully compatible with Windows Server Active Directory. A Microsoft cuida do gerenciamento, aplicação de patches e monitoramento do domínio em uma configuração de alta disponibilidade (HA).Microsoft takes care of managing, patching, and monitoring the domain in a highly available (HA) setup. Você pode implantar o cluster sem se preocupar com a manutenção de controladores de domínio.You can deploy your cluster without worrying about maintaining domain controllers.

Usuários, grupos e senhas são sincronizados do Azure AD.Users, groups, and passwords are synchronized from Azure AD. A sincronização unidirecional de sua instância do Azure AD para o Azure AD DS permite que os usuários entrem no cluster usando as mesmas credenciais 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 obter mais informações, consulte Configurar clusters HDInsight com ESP usando o Azure AD DS.For more information, see Configure HDInsight clusters with ESP using Azure AD DS.

Active Directory local ou Active Directory em VMs IaaSOn-premises Active Directory or Active Directory on IaaS VMs

Se você tiver uma instância de Active Directory local ou configurações de Active Directory mais complexas para seu domínio, poderá sincronizar essas identidades com o Azure AD usando 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. Em seguida, você pode habilitar o Azure AD DS nesse locatário de Active Directory.You can then enable Azure AD DS on that Active Directory tenant.

Como o Kerberos depende de hashes de senha, você deve habilitar a sincronização de hash de senha no Azure AD DS.Because Kerberos relies on password hashes, you must enable password hash sync on Azure AD DS.

Se você estiver usando a Federação com Serviços de Federação do Active Directory (AD FS) (AD FS), deverá habilitar a sincronização de hash de senha. (Para uma instalação recomendada, consulte este vídeo.) A sincronização de hash de senha ajuda na recuperação de desastres caso sua infraestrutura de AD FS falhe e também ajude a fornecer proteção contra credenciais vazadas.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 obter mais informações, consulte habilitar Sincronização de hash de senha com sincronização de Azure ad Connect.For more information, see Enable password hash sync with Azure AD Connect sync.

Usar o Active Directory local ou Active Directory em VMs IaaS sozinho, sem o Azure AD e o Azure AD DS, não é uma configuração com suporte para clusters HDInsight com 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.

Se a Federação estiver sendo usada e os hashes de senha forem sincronizados corretamente, mas você estiver obtendo falhas de autenticação, verifique se a autenticação de senha de nuvem está habilitada para a entidade de serviço do PowerShell.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. Caso contrário, você deve definir uma política de HRD (descoberta de realm inicial) para seu locatário do Azure AD.If not, you must set a Home Realm Discovery (HRD) policy for your Azure AD tenant. Para verificar e definir a política de HRD:To check and set the HRD policy:

  1. Instale o módulo versão prévia do PowerShell do Azure ad.Install the preview Azure AD PowerShell module.

    Install-Module AzureAD
    
  2. Conecte-se usando credenciais de administrador global (administrador de locatários).Connect using global administrator (tenant administrator) credentials.

    Connect-AzureAD
    
  3. Verifique se a entidade de serviço Microsoft Azure PowerShell já foi criada.Check if the Microsoft Azure PowerShell service principal has already been created.

    Get-AzureADServicePrincipal -SearchString "Microsoft Azure Powershell"
    
  4. Se ele não existir, crie a entidade de serviço.If it doesn't exist, then create the service principal.

    $powershellSPN = New-AzureADServicePrincipal -AppId 1950a258-227b-4e31-a9cf-717495945fc2
    
  5. Crie e anexe a política a essa entidade de serviço.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
    

Passos seguintesNext steps