你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure HDInsight 中创建和配置企业安全性套餐群集

对于 Azure 中的 Apache Hadoop 群集,你可以通过用于 Azure HDInsight 的企业安全性套餐 (ESP) 来访问基于 Active Directory 的身份验证、多用户支持以及基于角色的访问控制。 遵循严格的企业安全策略的组织可以使用 HDInsight ESP 群集安全地处理敏感数据。

本指南介绍了如何创建启用了 ESP 的 Azure HDInsight 群集。 此外还介绍了如何创建在其上启用了 Active Directory 和域名系统 (DNS) 的 Windows IaaS VM。 可以使用本指南来配置必要的资源,以允许本地用户登录到启用了 ESP 的 HDInsight 群集。

你创建的服务器将充当实际本地环境的替代项。 可以将它用于设置和配置步骤。 稍后你将在自己的环境中重复这些步骤。

该指南也将帮助你通过将密码哈希同步与 Microsoft Entra ID 结合使用来创建混合标识环境。 本指南是对在 HDInsight 中使用 ESP 的补充。

在你自己的环境中使用此过程之前,请执行以下操作:

  • 设置 Active Directory 和 DNS。
  • 启用 Microsoft Entra ID。
  • 将本地用户帐户同步到 Microsoft Entra ID。

Microsoft Entra architecture diagram.

创建本地环境

在本部分中,你将使用 Azure 快速入门部署模板来创建新的 VM、配置 DNS 以及添加新的 Active Directory 林。

  1. 请转到快速入门部署模板,以便使用新的 Active Directory 林创建 Azure VM

  2. 选择“部署到 Azure”。

  3. 登录到 Azure 订阅。

  4. 在“使用新的 AD 林创建 Azure VM”页中提供以下信息:

    属性
    订阅 选择要在其中部署资源的订阅。
    资源组 选择“新建”,并输入名称 OnPremADVRG
    位置 选择一个位置。
    管理员用户名 HDIFabrikamAdmin
    管理员密码 输入密码。
    域名 HDIFabrikam.com
    DNS 前缀 hdifabrikam

    保留其余默认值。

    Template for Create an Azure VM with a new Microsoft Entra Forest.

  5. 查看“条款和条件”,然后选择“我同意上述条款和条件”。

  6. 选择“购买”,监视部署并等待其完成。 部署需要大约 30 分钟才能完成。

配置用于群集访问的用户和组

在此部分中,你将创建在本指南结束时有权访问 HDInsight 群集的用户。

  1. 使用远程桌面连接到域控制器。

    1. 在 Azure 门户中,导航到“资源组”>“OnPremADVRG”>“adVM”>“连接”。
    2. 从“IP 地址”下拉列表中,选择公共 IP 地址。
    3. 选择“下载 RDP 文件”,然后打开该文件。
    4. 使用 HDIFabrikam\HDIFabrikamAdmin 作为用户名。
    5. 输入为管理员帐户选择的密码。
    6. 选择“确定” 。
  2. 从域控制器的“服务器管理器”仪表板导航到“工具”>“Active Directory 用户和计算机”。

    On the Server Manager dashboard, open Active Directory Management.

  3. 创建两个新用户:HDIAdminHDIUser。 这两个用户将登录到 HDInsight 群集。

    1. 在“Active Directory 用户和计算机”页中右键单击“HDIFabrikam.com”,然后导航到“新建”>“用户”。

      Create a new Active Directory user.

    2. 在“新建对象 - 用户”页上,输入 HDIUser 作为名字用户登录名。 其他字段会自动填充。 然后,选择“下一步”。

      Create the first admin user object.

    3. 在出现的弹出窗口中,输入新帐户的密码。 选择“密码永不过期”,然后在弹出消息中选择“确定”。

    4. 选择“下一步”,然后选择“完成”以创建新帐户。

    5. 重复上述步骤以创建用户 HDIAdmin

      Create a second admin user object.

  4. 创建全局安全组。

    1. 在“Active Directory 用户和计算机”中右键单击“HDIFabrikam.com”,然后导航到“新建”>“组”。

    2. 在“组名”文本框中输入 HDIUserGroup

    3. 选择“确定”

    Create a new Active Directory group.

    Create a new object.

  5. HDIUserGroup 中添加成员。

    1. 右键单击“HDIUser”并选择“添加到组...”。

    2. 在“输入要选择的对象名称”文本框中输入“HDIUserGroup”。 接着选择“确定”,然后再在弹出窗口中选择“确定”。

    3. 针对 HDIAdmin 帐户重复前面的步骤。

      Add the member HDIUser to the group HDIUserGroup.

你现在已创建了 Active Directory 环境。 你已添加了可以访问 HDInsight 群集的两个用户和一个用户组。

用户将与 Microsoft Entra ID 同步。

创建 Microsoft Entra 目录

  1. 登录 Azure 门户。

  2. 选择“创建资源”,然后键入 directory。 选择“Microsoft Entra ID”>“创建”。

  3. 在“组织名称”下,输入 HDIFabrikam

  4. 在“初始域名”下,输入 HDIFabrikamoutlook

  5. 选择创建

    Create a Microsoft Entra directory.

创建自定义域

  1. 在新的 Microsoft Entra ID 中的“管理”下,选择“自定义域名”。

  2. 选择“+ 添加自定义域”。

  3. 在“自定义域名”下输入 HDIFabrikam.com,然后选择“添加域”。

  4. 然后完成将 DNS 信息添加到域注册机构的操作。

    Create a custom domain.

创建组

  1. 在新的 Microsoft Entra ID 中的“管理”下,选择“组”。
  2. 选择“+ 新建组”。
  3. 在“组名”文本框中输入 AAD DC Administrators
  4. 选择创建

配置 Microsoft Entra 租户

现在需要配置 Microsoft Entra 租户,以便将本地 Active Directory 实例中的用户和组同步到云。

创建 Active Directory 租户管理员。

  1. 登录到 Azure 门户,并选择 Microsoft Entra 租户 HDIFabrikam。

  2. 导航到“管理”>“用户”>“新建用户”。

  3. 为新用户输入以下详细信息:

    标识

    属性 说明
    用户名 在文本框中输入 fabrikamazureadmin。 从域名下拉列表中,选择 hdifabrikam.com
    名称 输入 fabrikamazureadmin

    密码

    1. 选择“让我创建密码”。
    2. 输入你选择的安全密码。

    组和角色

    1. 选择“已选择 0 个组”。

    2. 选择“AAD DC 管理员”,然后选择“选择”。

      The Microsoft Entra groups dialog box.

    3. 选择“用户”。

    4. 选择“全局管理员”,然后选择“选择”。

      The Microsoft Entra role dialog box.

  4. 选择创建

  5. 然后让新用户登录到 Azure 门户,系统会提示用户更改密码。 在配置 Microsoft Entra Connect 之前,需要执行此操作。

将本地用户同步到 Microsoft Entra ID

配置 Microsoft Entra Connect

  1. 从域控制器下载 Microsoft Entra Connect

  2. 打开已下载的可执行文件,同意许可条款。 选择“继续”。

  3. 选择“使用快速设置”。

  4. 在“连接到 Microsoft Entra ID”页面上,为 Microsoft Entra ID 输入全局管理员的用户名和密码。 使用在配置 Active Directory 租户时创建的用户名 fabrikamazureadmin@hdifabrikam.com。 然后,选择“下一步”。

    Connect to Microsoft Entra ID.

  5. 在“连接到 Active Directory 域服务”页上,输入企业管理员帐户的用户名和密码。 使用之前创建的用户名 HDIFabrikam\HDIFabrikamAdmin 及其密码。 然后,选择“下一步”。

    Connect to A D D S page.

  6. 在“Microsoft Entra 登录配置”页上,选择“下一步”。

    Microsoft Entra sign-in configuration page.

  7. 在“已准备好进行配置”页上,选择“安装” 。

    Ready to configure page.

  8. 在“配置完成”页面上,选择“退出” 。 Configuration complete page.

  9. 完成同步后,确认在 IaaS 目录上创建的用户是否已同步到 Microsoft Entra ID。

    1. 登录 Azure 门户。
    2. 选择“Microsoft Entra ID”>“HDIFabrikam”>“用户”。

创建用户分配的托管标识

创建用户分配的托管标识,你可使用它来配置 Microsoft Entra 域服务。 有关详细信息,请参阅使用 Azure 门户创建、列出、删除用户分配的托管标识或为其分配角色

  1. 登录到 Azure 门户。
  2. 选择“创建资源”,然后键入 managed identity。 选择“用户分配的托管标识”>“创建”。
  3. 对于“资源名称”,请输入 HDIFabrikamManagedIdentity
  4. 选择订阅。
  5. 在“资源组”下,选择“新建”,然后输入 HDIFabrikam-CentralUS
  6. 在“位置”下,选择“美国中部”。
  7. 选择创建

Create a new user-assigned managed identity.

启用 Microsoft Entra 域服务

按照以下步骤启用 Microsoft Entra 域服务。 有关详细信息,请参阅使用 Azure 门户启用 Microsoft Entra 域服务

  1. 创建虚拟网络来托管 Microsoft Entra 域服务。 运行以下 PowerShell 代码。

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # If you have multiple subscriptions, set the one to use
    # Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"
    
    $virtualNetwork = New-AzVirtualNetwork -ResourceGroupName 'HDIFabrikam-CentralUS' -Location 'Central US' -Name 'HDIFabrikam-AADDSVNET' -AddressPrefix 10.1.0.0/16
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig -Name 'AADDS-subnet' -AddressPrefix 10.1.0.0/24 -VirtualNetwork $virtualNetwork
    $virtualNetwork | Set-AzVirtualNetwork
    
  2. 登录 Azure 门户。

  3. 选择“创建资源”,输入“Domain services”,然后选择“Microsoft Entra 域服务”>“创建”。

  4. 在“基本信息”页上执行以下操作:

    1. 在“目录名称”下,选择你已创建的 Microsoft Entra 目录 HDIFabrikam。

    2. 对于“DNS 域名”,请输入 HDIFabrikam.com

    3. 选择订阅。

    4. 指定资源组 HDIFabrikam-CentralUS。 对于“位置”,请选择“美国中部”。

      Microsoft Entra Domain Services basic details.

  5. 在“网络”页上,选择通过 PowerShell 脚本创建的网络 (HDIFabrikam-VNET) 和子网 (AADDS-subnet)。 或者选择“新建”,立即创建虚拟网络。

    Create virtual network step.

  6. 在“管理员组”页上,应该会显示一条通知,指出已创建名为“AAD DC 管理员”的组来管理此组。 可以根据需要修改此组的成员身份,但在此示例中,你不需要更改它。 选择“确定”

    View the Microsoft Entra administrator group.

  7. 在“同步”页上,通过选择“所有”>“确定”来启用完全同步。

    Enable Microsoft Entra Domain Services synchronization.

  8. 在“摘要”页上验证 Microsoft Entra 域服务的详细信息,然后选择“确定”。

    Enable Microsoft Entra Domain Services.

启用 Microsoft Entra 域服务后,本地 DNS 服务器将在 Microsoft Entra VM 上运行。

配置 Microsoft Entra 域服务虚拟网络

按照以下步骤将 Microsoft Entra 域服务虚拟网络 (HDIFabrikam-AADDSVNET) 配置为使用自定义 DNS 服务器。

  1. 找到自定义 DNS 服务器的 IP 地址。

    1. 选择 Microsoft Entra 域服务资源 HDIFabrikam.com
    2. 在“管理”下,选择“属性” 。
    3. 在“虚拟网络上的 IP 地址”找到此 IP 地址。

    Locate custom DNS IP addresses for Microsoft Entra Domain Services.

  2. HDIFabrikam-AADDSVNET 配置为使用自定义 IP 地址 10.0.0.4 和 10.0.0.5。

    1. 在“设置”下,选择“DNS 服务器”。
    2. 选择“自定义”。
    3. 在文本框中输入第一个 IP 地址 (10.0.0.4)。
    4. 选择“保存” 。
    5. 重复这些步骤以添加另一个 IP 地址 (10.0.0.5)。

在我们的场景中,我们配置了 Microsoft Entra 域服务来使用 IP 地址 10.0.0.4 和 10.0.0.5,在 Microsoft Entra 域服务虚拟网络上设置相同的 IP 地址:

The custom DNS servers page.

保护 LDAP 流量

轻型目录访问协议 (LDAP) 在 Microsoft Entra ID 中进行读取和写入。 可以通过使用安全套接字层 (SSL) 或传输层安全性 (TLS) 技术,确保 LDAP 流量的机密性和安全性。 可以通过安装正确格式的证书来启用基于 SSL 的 LDAP (LDAPS)。

有关安全 LDAP 的详细信息,请参阅为 Microsoft Entra 域服务托管域配置 LDAP

在本部分中,你将创建一个自签名证书,下载该证书,并为 Microsoft Entra 域服务托管域 HDIFabrikam 配置 LDAPS。

以下脚本为 HDIFabrikam 创建证书。 证书保存在 LocalMachine 路径中。

$lifetime = Get-Date
New-SelfSignedCertificate -Subject hdifabrikam.com `
-NotAfter $lifetime.AddDays(365) -KeyUsage DigitalSignature, KeyEncipherment `
-Type SSLServerAuthentication -DnsName *.hdifabrikam.com, hdifabrikam.com

注意

可以使用可创建有效公钥加密标准 (PKCS) #10 请求的任何实用工具或应用程序来生成 TLS/SSL 证书请求。

请验证证书是否安装在计算机的“个人”存储中:

  1. 启动 Microsoft 管理控制台 (MMC)。

  2. 添加用于在本地计算机上管理证书的“证书”管理单元。

  3. 展开“证书(本地计算机)”>“个人”>“证书”。 “个人”存储中应存在一个新证书。 此证书将颁发给完全限定的主机名。

    Verify local certificate creation.

  4. 在右侧窗格中,右键单击所创建的证书。 指向“所有任务”,然后选择“导出”。

  5. 在“导出私钥”页上,选择“是,导出私钥”。 要将密钥导入其中的计算机需要具有私钥才能读取加密的消息。

    The Export Private Key page of the Certificate Export Wizard.

  6. 在“导出文件格式”页上,保留默认设置,然后选择“下一步”。

  7. 在“密码”页上,键入与私钥相对应的密码。 对于“加密”,请选择“TripleDES-SHA1”。 然后,选择“下一步”。

  8. 在“要导出的文件”页上,键入导出的证书文件的路径和名称,然后选择“下一步”。 文件名必须带 .pfx 扩展名。 此文件是在 Azure 门户中配置的,用于建立安全连接。

  9. 为 Microsoft Entra 域服务托管域启用 LDAPS。

    1. 从 Azure 门户中选择 HDIFabrikam.com 域。
    2. 在“管理”下选择“安全 LDAP” 。
    3. 在“安全 LDAP”页上,在“安全 LDAP”下,选择“启用”。
    4. 在计算机上浏览查找你导出的 .pfx 证书文件。
    5. 输入证书密码。

    Enable secure LDAP.

  10. 启用 LDAPS 后,请通过启用端口 636 来确保可以访问它。

    1. HDIFabrikam-CentralUS 资源组中,选择网络安全组 AADDS-HDIFabrikam.com-NSG

    2. 在“设置”下,选择“入站安全规则”>“添加”。

    3. 在“添加入站安全规则”页上,输入以下属性,然后选择“添加” :

      属性
      任意
      源端口范围 *
      目标 任意
      目标端口范围 636
      协议 Any
      操作 Allow
      优先级 <所需数字>
      名称 Port_LDAP_636

      The Add inbound security rule dialog box.

HDIFabrikamManagedIdentity 是用户分配的托管标识。 为托管标识启用了 HDInsight 域服务参与者角色,该角色允许此标识读取、创建、修改和删除域服务操作。

Create a user-assigned managed identity.

创建启用了 ESP 的 HDInsight 群集

此步骤需要的先决条件如下:

  1. 在“美国西部”位置创建新的资源组“HDIFabrikam-WestUS”。

  2. 创建一个虚拟网络,用于承载启用了 ESP 的 HDInsight 群集。

    $virtualNetwork = New-AzVirtualNetwork -ResourceGroupName 'HDIFabrikam-WestUS' -Location 'West US' -Name 'HDIFabrikam-HDIVNet' -AddressPrefix 10.1.0.0/16
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig -Name 'SparkSubnet' -AddressPrefix 10.1.0.0/24 -VirtualNetwork $virtualNetwork
    $virtualNetwork | Set-AzVirtualNetwork
    
  3. 在承载 Microsoft Entra 域服务 (HDIFabrikam-AADDSVNET) 的虚拟网络与将承载启用了 ESP 的 HDInsight 群集 (HDIFabrikam-HDIVNet) 的虚拟网络之间创建对等关系。 使用以下 PowerShell 代码将这两个虚拟网络对等互连。

    Add-AzVirtualNetworkPeering -Name 'HDIVNet-AADDSVNet' -RemoteVirtualNetworkId (Get-AzVirtualNetwork -ResourceGroupName 'HDIFabrikam-CentralUS').Id -VirtualNetwork (Get-AzVirtualNetwork -ResourceGroupName 'HDIFabrikam-WestUS')
    
    Add-AzVirtualNetworkPeering -Name 'AADDSVNet-HDIVNet' -RemoteVirtualNetworkId (Get-AzVirtualNetwork -ResourceGroupName 'HDIFabrikam-WestUS').Id -VirtualNetwork (Get-AzVirtualNetwork -ResourceGroupName 'HDIFabrikam-CentralUS')
    
  4. 创建新的名为 Hdigen2store 的 Azure Data Lake Storage Gen2 帐户。 为帐户配置用户管理的标识 HDIFabrikamManagedIdentity。 有关详细信息,请参阅将 Azure Data Lake Storage Gen2 与 Azure HDInsight 群集配合使用

  5. HDIFabrikam-AADDSVNET 虚拟网络上设置自定义 DNS。

    1. 转到 Azure 门户 >“资源组”>“OnPremADVRG”>“HDIFabrikam-AADDSVNET”>“DNS 服务器”。

    2. 选择“自定义”,然后输入 10.0.0.4 和 10.0.0.5。

    3. 选择“保存”。

      Save custom DNS settings for a virtual network.

  6. 创建新的启用了 ESP 的 HDInsight Spark 群集。

    1. 选择“自定义(大小、设置、应用)”。

    2. 在“基本信息”(第 1 部分)中输入详细信息。 确保“群集类型”为“Spark 2.3 (HDI 3.6)”。 确保“资源组”为“HDIFabrikam-CentralUS”。

    3. 对于“安全性 + 网络”(第 2 部分),请填写以下详细信息:

      • 在“企业安全性套餐”下选择“启用” 。

      • 选择“群集管理员用户”,然后选择你以本地管理员用户身份创建的 HDIAdmin 帐户。 单击“选择”。

      • 选择“群集访问组”>“HDIUserGroup”。 将来添加到此组中的任何用户都将能够访问 HDInsight 群集。

        Select the cluster access group HDIUserGroup.

    4. 完成其他的群集配置步骤,并验证“群集摘要”上的详细信息。 选择“创建” 。

  7. https://CLUSTERNAME.azurehdinsight.net 登录到新建群集的 Ambari UI。 使用管理员用户名 hdiadmin@hdifabrikam.com 及其密码。

    The Apache Ambari UI sign-in window.

  8. 从群集仪表板中选择“角色”。

  9. 在“角色”页上,在“向这些项分配角色”下,在“群集管理员”角色旁边输入 hdiusergroup 组。

    Assign the cluster admin role to hdiusergroup.

  10. 打开你的安全外壳 (SSH) 客户端并登录到群集。 使用在本地 Active Directory 实例中创建的 hdiuser

    Sign in to the cluster by using the SSH client.

如果你可以通过此帐户登录,则表明你已将 ESP 群集正确配置为与本地 Active Directory 实例同步。

后续步骤

阅读使用 ESP 实现 Apache Hadoop 安全性简介