Usar o pacote de segurança Enterprise no HDInsightUse Enterprise Security Package in HDInsight

O cluster HDInsight do Azure 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 compilando 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 adotaram um modelo no qual os clusters são gerenciados por equipes de TI 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 para 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 -- o Active Directory -- de maneira gerenciada.HDInsight relies on a popular identity provider--Active Directory--in a managed way. Ao integrar o HDInsight com Azure AD DS (Azure Active Directory Domain Services), será possível acessar os clusters usando as 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 VMs (máquinas virtuais) no HDInsight são ingressadas no domínio para o 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, servidor Apache Hive, Apache Ranger, servidor thrift do Apache Spark e outros) funcionam perfeitamente 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, então, 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 ao Active DirectoryIntegrate HDInsight with Active Directory

O software livre Apache Hadoop 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 de cluster do HDInsight com o Enterprise Security Package (ESP) são unidos a um domínio gerenciado pelo Azure AD DS.Therefore, HDInsight cluster nodes with Enterprise Security Package (ESP) are joined to a domain that's managed by Azure AD DS. A segurança do Kerberos é configurada para os componentes do Hadoop no cluster.Kerberos security is configured for the Hadoop components on the cluster.

As seguintes coisas são criadas 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 segurança do computador para cada computador que tenha 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 de segurança do 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 do Active Directory (gerenciado pelo Azure AD DS).An Active Directory domain (managed by Azure AD DS).
  • LDAP Seguro (LDAPS) habilitado no Azure AD DS.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 do HDInsight deve ter uma linha de visão para o Azure AD DS por meio de 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 Azure AD DS forem implantados na mesma rede virtual, a conectividade será fornecida automaticamente e nenhuma outra ação 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

O HDInsight atualmente dá suporte somente ao Azure AD DS como o controlador de domínio principal que o cluster usa para comunicação de Kerberos.HDInsight currently supports only Azure AD DS as the main domain controller that the cluster uses for Kerberos communication. Mas outras configurações complexas do Active Directory são possíveis, desde que essa configuração leve à habilitação do Azure AD DS 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 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 HA (altamente disponível).Microsoft takes care of managing, patching, and monitoring the domain in a highly available (HA) setup. Você pode implantar o cluster sem se preocupar em manter os 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 da instância do Azure AD para 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 os clusters do HDInsight com o ESP usando o Azure AD DS.For more information, see Configure HDInsight clusters with ESP using Azure AD DS.

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

Se você tiver uma instância do Active Directory local ou configurações mais complexas do Active Directory para o domínio, poderá sincronizá-las com o Azure AD usando o 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. É possível habilitar o Azure AD DS nesse locatário do Active Directory.You can then enable Azure AD DS on that Active Directory tenant.

Como o Kerberos depende de hashes de senha, é necessário 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 estiver usando a federação com os Serviços de Federação do Active Directory (AD FS), você deverá habilitar a sincronização de hash de senha. (Para uma configuração recomendada, confira este vídeo.) A sincronização de hash de senha ajuda com a recuperação de desastres no caso de falha na infraestrutura do AD FS e também ajuda a fornecer proteção para 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 a sincronização do Azure AD Connect.For more information, see Enable password hash sync with Azure AD Connect sync.

O uso do Active Directory local ou do Active Directory somente em VMs IaaS, 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 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. Se não, você deverá definir uma política de HRD (Home Realm Discovery) 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 do PowerShell do Azure AD.Install the Azure AD PowerShell module.

    Install-Module AzureADPreview
    
  2. Insira Connect-AzureAD usando credenciais de um administrador global (administrador de locatários).Enter Connect-AzureAD by using global administrator (tenant administrator) credentials.

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

    $powershellSPN = Get-AzureADServicePrincipal -SearchString "Microsoft Azure Powershell"
    
  4. Se ela não existir (ou seja, se ($powershellSPN -eq $null)), crie a entidade de serviço.If it doesn't exist (that is, if ($powershellSPN -eq $null)), 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.

    $policy = New-AzureADPolicy -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AllowCloudPasswordValidation`":true}}") -DisplayName EnableDirectAuth -Type HomeRealmDiscoveryPolicy
    
    Add-AzureADServicePrincipalPolicy -Id $powershellSPN.ObjectId -refObjectID $policy.ID
    

Próximas etapasNext steps