Gerenciar a segurança do aplicativo/middleware

Concluído

Organizações de grande porte têm vários usuários de vários grupos de negócios que precisam:

  • Fazer logon no cluster de maneira segura
  • Impor o PLOP (princípio de privilégios mínimos) quando se trata do acesso aos dados subjacentes
  • Registrar os eventos que têm significância para a segurança.

A finalidade da segurança do aplicativo no HDInsight é fornecer maneiras de autenticar vários usuários com segurança no HDInsight, impondo a prática de limitar os direitos de acesso para usuários em dados às permissões mínimas necessárias para realizar seu trabalho e, por fim, registrar em log os eventos que têm significância para a segurança, como um logon, uma tentativa de executar uma ação privilegiada ou uma modificação de um registro importante.

Autenticação

A autenticação é o processo que estabelece uma identidade que leva à validação de que os usuários são quem dizem ser. Os clusters do HDInsight em cenários de produção normalmente precisam permitir que uma ampla variedade de usuários de diferentes grupos de negócios se autentiquem no cluster para executarem atividades como configurar, enviar, executar e monitorar cargas de trabalho. Habilitar o recurso ESP ("Enterprise Security Package") durante a criação do cluster do HDInsight permite ingressar os clusters no domínio e que os usuários do domínio usem suas credenciais de domínio para autenticação no cluster. Grupos do Active Directory podem ser usados para criar grupos de usuários individuais que representam uma função ou um departamento dentro de uma organização e vários desses grupos podem ser sincronizados com o cluster no momento da criação. Os clusters devem ter um administrador de cluster de domínio e um ou vários grupos de usuários com acesso restrito. Veja abaixo uma representação dos componentes e das partes envolvidas no processo de autenticação do HDInsight.

HDInsight Authentication Process

Os componentes a seguir no domínio de identidade Enterprise participam do processo de configuração e autenticação de um cluster do ESP.

  • Windows Server Active Directory: controlador de domínio local e armazena o nome UPN (por exemplo: John.Doe@Contoso.com) e suas respectivas senhas de domínio.
  • AD Connect(Active Directory Connect): ferramenta da Microsoft desenvolvida para realizar a configuração de identidade híbrida. Funcionalidades como a sincronização de hash de senha são críticas na configuração do ESP no HDInsight.
  • Diretório de Atividades do Azure (Microsoft Entra ID): Serviço de gerenciamento de acesso e identidade baseado em nuvem da Microsoft.
  • Descobrir o Microsoft Entra Domain Services (Microsoft Entra Domain Services): Fornece serviços de domínio gerenciado, como ingresso no domínio, política de grupo, protocolo de acesso de diretório leve (LDAP) e autenticação Kerberos/NTLM totalmente compatível com o Active Directory do Windows Server. Você pode usar esses serviços de domínio sem a necessidade de implantar, gerenciar e aplicar um patch em controladores de domínio na nuvem. O Microsoft Entra Domain Services se integra ao locatário existente do Microsoft Entra, o que permite aos usuários entrarem usando suas credenciais atuais. Além disso, você pode usar contas de usuário e grupos existentes para proteger o acesso a recursos, garantindo um lift-and-shift mais tranquilo dos recursos locais para o Azure.

O HDInsight dá suporte a dois tipos de cenários de autenticação

  • Quando os hashes de senha são sincronizados com o Microsoft Entra ID.
  • Quando os hashes de senha são controladores de domínio locais retidos. Observe que o usuário pode optar por criar o cluster do HDInsight com o WASB (Microsoft Azure Storage Blob) ou o armazenamento ADLS Gen2 e o processo de autenticação difere ligeiramente em cada um deles. Embora todas as etapas no processo de autenticação sejam realizadas automaticamente e abstraídas do usuário, isso ajuda a entender, em um alto nível, a sequência de eventos envolvidos em autenticar um usuário.

Autenticação: quando os hashes de senha são sincronizados com o Microsoft Entra ID

Authentication: When password hashes are synchronized to Microsoft Entra ID

  1. O usuário John Doe é autenticado em um serviço do HDInsight (por exemplo, Ambari, SSH, Zeppelin etc.) com suas credenciais de domínio John.Doe@contoso.onmicrosoft.com (conhecidas como nome UPN) e a senha. O gateway contém o nome de usuário e a senha.
  2. O gateway do HDInsight envia o UPN e a senha fornecidos pelo usuário para o Microsoft Entra ID usando o fluxo ROPC (credenciais de senha de proprietário do recurso) e faz uma solicitação de acesso OAuth. O Microsoft Entra ID confirma a identidade do usuário e emite um token de atualização que é salvo no serviço de credencial, que é executado no nó principal. Em clusters com contas de armazenamento do ADLS Gen 2, os drivers de armazenamento se comunicam com o serviço de credencial para recuperar o token OAuth com a finalidade de autenticação de passagem para ADLS.
  3. Em seguida, o gateway autentica o usuário com o Microsoft Entra Domain Services e obtém um Tíquete Kerberos. O gateway então passa o tíquete do Kerberos para os nós de principais e autentica o usuário no cluster.

Autenticação MFA: quando os hashes de senha não são sincronizados com o Microsoft Entra ID

Observação

Essa configuração também é chamada de HIB (agente de identidade do HDInsight) e dá suporte à MFA (autenticação multifator). Nessa configuração, se os hashes de senha não forem sincronizados com o Microsoft Entra ID, o usuário ainda poderá se autenticar no gateway.

When password hashes are not synchronized to Microsoft Entra ID

  1. O usuário John Doe inicia um serviço HDInsight baseado na Web, como Ambari ou Zeppelin. A página redireciona o usuário para uma tela de logon interativa. O cliente é redirecionado para o Microsoft Entra ID para que o usuário se autentique usando o UPN John.Doe@contoso.onmicrosoft.com.
  2. Ao inserir o UPN, o cliente é redirecionado para o servidor ADFS local no qual o usuário insere a senha. A autenticação MFA, se habilitada, será executada agora. Após a autenticação bem-sucedida, um token OAuth é emitido para o cliente.
  3. O cliente apresenta o token OAuth para o gateway do HDInsight.
  4. O gateway do HDInsight usa o token OAuth para adquirir um tíquete do Kerberos do nó HIB.
  5. O gateway usa o tíquete do Kerberos e registra o token OAuth no serviço de credencial dos nós principais e se autentica no cluster.

Observação

Se os hashes de senha não forem sincronizados com o Microsoft Entra ID, os usuários de domínio não poderão fazer SSH para os nós de cabeçalho. Somente o usuário SSH local poderá realizar atividades SSH. Diretrizes sobre como configurar mecanismos de autenticação para ambos os cenários são explicadas em Usar o agente de IDs para o gerenciamento de credenciais.

Autorização

A autorização no HDInsight lida com a determinação e a imposição de privilégios de usuário nos conjuntos de valores subjacentes. A autorização refinada em ações e/ou operações específicas está disponível nos serviços do HDInsight do Hive, do HBase e do Kafka e é gerenciada por meio do Apache Ranger. O Ranger fornece controle de acesso baseado em função, controle de acesso baseado em atributo e centraliza a auditoria de acesso do usuário e ações administrativas. Normalmente, você se autentica no Apache Ranger com as credenciais de domínio do administrador de cluster e então configura políticas para grupos ou usuários restritos no Ranger. No exemplo abaixo, mostramos maneiras de criar uma política do Ranger para definir permissões em uma tabela do Hive de exemplo no Ranger.

  1. Inicie o Apache Ranger usando a URL: https://CLUSTERNAME.azurehdinsight.net/Ranger/. Substitua "CLUSTERNAME" pelo nome do seu cluster. Use o administrador de domínio do cluster e a senha correspondente para fazer logon.

    Setting permissions with Apache Ranger

  2. Clique em Adicionar política para adicionar uma política do Ranger.

    Adding a new Ranger policy

  3. Preencha os detalhes da política com as seguintes informações:

    1. Nome da política: o nome da política.
    2. Banco de dados: escolha o banco de dados do Hive.
    3. Tabela: escolha a tabela do Hive no banco de dados selecionado.
    4. Coluna do Hive: escolha a coluna do Hive na qual a política será aplicada.
    5. Defina log de auditoria como Sim para habilitar o registro em log de todo o acesso.
    6. Condições de permissão:
      • as políticas podem ser aplicadas a usuários de domínio do AD (Active Directory) ou grupos de domínio na seção Permitir Condições. Se você quiser aplicar a política a todos os usuários a um grupo do AD, adicione esse grupo do AD à seção Selecionar Grupo.
      • Como alternativa, se você quiser que a política se aplique a um indivíduo ou a um conjunto selecionado de usuários, digamos, diferentes grupos do AD, poderá adicionar todas as IDs de domínio individuais dos usuários no campo Selecionar Usuário.
      • Escolha um conjunto de permissões na barra da caixa de seleção Permissões.
  4. Role para baixo e clique em Adicionar.

    Adding a policy

  5. Após a configuração, essa regra será imposta para todos os usuários incluídos na política.

As configurações de políticas do Ranger para HBase e Kafka são descritas nos respectivos hiperlinks na seção.

Auditoria

A auditoria no HDInsight, de uma perspectiva de segurança, lida com a gravação e o monitoramento de solicitações de autenticação e autorização que ocorrem durante o tempo de vida operacional do cluster e mesmo depois que o cluster é excluído.

A auditoria no HDInsight é habilitada usando logs do Azure Monitor e pode ser usada para detectar logs críticos para a segurança do cluster. Algumas tabelas de log que contêm informações críticas para a segurança do cluster estão listadas abaixo.

Nome da tabela de log Finalidade
ranger_audit_logs_CL Logs de auditoria do Apache Ranger em clusters do ESP
log_gateway_audit_CL Logs de auditoria do gateway para mostrar tentativas bem-sucedidas e com falha
log_ambari_audit_CL Logs de auditoria do Ambari
log_auth_CL Logs SSH para tentativas bem-sucedidas e com falha

O Monitoramento do Azure é habilitado no portal do Azure usando alguns cliques.

  1. No cluster do HDInsight, clique em Azure Monitor na folha à esquerda. Selecione a Integração do Azure Monitor como True e, em Selecionar um workspace, escolha um workspace do Log Analytics criado previamente no menu suspenso.

    Using Azure Monitor

  2. Inicie o workspace do Log Analytics e importe as soluções relevantes de monitoramento do HDInsight relevantes para o tipo de cluster. Inicie a solução e clique em Logs.

    Viewing logs

  3. Tabelas de log relevantes para a segurança podem ser encontradas na seção Logs Personalizados à esquerda. Em seguida, elas podem ser consultadas para extrair informações de acesso relevantes.

    Viewing custom logs