实现数据访问安全性

已完成

HDInsight 是一项 PaaS 服务,最能实现的模式是将计算与存储完全分离。 在这种模式中,数据访问安全性提供了对静态数据的保护,以及对 HDInsight 和数据层之间的流量的保护。 这些安全区域不在 HDInsight 专属安全功能的范围内,它们由 Azure 存储和网络服务中提供的安全功能来实现。 下面是有关如何在 HDInsight 群集上实现数据访问安全性的建议列表。 可根据用例选择实现其中一些或所有建议。

仅允许从安全连接请求存储

安全传输允许来自安全连接 (https) 的请求,并拒绝来自 http 的任何连接。 创建群集前,应启用安全传输。 单击“选择所选安全传输”滑块按钮,将其移到“已启用”。 了解 ADLSG2 的最佳做法安全建议,包括安全传输

Data access security

实施 ADLS Gen2 的访问控制列表 (ACL)

ADLS Gen2 访问控制模型既支持 Azure 基于角色的访问控制 (RBAC),也支持类似 POSIX 的访问控制 (ACL)。 你可选择实现适用于 HDInsight 的 POSIX 级 ACL 模型,为文件和文件夹设置直通身份验证。 ADLS Gen2 上的每个文件或目录对这些标识都有不同的权限。

  • 拥有用户
  • 拥有组
  • 命名用户
  • 命名组
  • 命名服务主体
  • 命名托管标识
  • 因此,所有其他用户可将 ADLS Gen2 文件和文件夹的 POSIX 级访问控制授予 HDInsight 域用户和组,并且在访问期间,所有 HDInsight 服务都将遵守这些授权。 详细了解 Azure Data lake Storage Gen2 上的访问控制

Azure 存储防火墙

Azure 存储防火墙使用“全部拒绝,例外许可”这一网络策略,确保只有允许名单上的实体才能访问存储帐户。 存储防火墙可配置为允许从固定的可信 IP 地址或预定的可信 IP 范围进行帐户访问。 确保受信任的 Microsoft 服务可访问存储帐户来启用日志记录等功能。 你可通过“防火墙和虚拟网络”边栏选项卡在存储帐户上启用 Azure 防火墙,如下所示。

Azure Storage Firewalls

HDInsight 群集外部的存储客户端的传输层安全性 (TLS)

在存储帐户上启用 TLS 可确保传入和传出存储帐户的数据是加密的。 Azure 存储在公共 HTTP 终结点上使用 TLS 1.2,但仍然支持 TLS 1.0 和 TLS 1.1 来实现后向兼容性。 为了确保以安全、兼容的方式连接到 Azure 存储,在发送运行 Azure 存储服务的请求之前,需要在客户端启用 TLS 1.2 或更高版本。 在本例中,当存储帐户与 HDInsight 交换数据时,默认已启用 TLS 1.2,你无需执行任何特定操作来启用它。 详细了解 Azure 存储客户端的安全 TLS

虚拟网络服务终结点

HDInsight 支持 Azure Blob 存储、Azure Data Lake Storage Gen2、Cosmos DB 和 SQL 数据库的 VNet 服务终结点。 在 HDInsight 安全性上下文中,可在存储帐户、群集元存储和 Cosmos DB 上设置 VNet 服务终结点,以便只允许从 HDInsight 子网进行访问。 从这些实体和 HDInsight 之间移动的流量始终保持在 Azure 主干上。 在存储帐户中,单击“添加现有/新的虚拟网络”,选择“允许从所选网络进行访问”单选按钮,然后提供可从其进行访问的 VNet 信息,可通过“防火墙和虚拟网络”边栏选项卡启用 VNet 服务终结点。 在本例中,你可填入你想要从中访问此存储帐户的 HDInsight VNet 和子网。 在下例中,存储帐户将只能访问来自已显式指定的 3 个 HDInsight 子网的流量。

Azure Firewalls and Virtual networks

Azure Virtual networks configurations

对于 SQL 数据库,可通过“防火墙和虚拟网络”边栏选项卡设置 VNet 服务终结点。

SQL Database Virtual networks configurations

详细了解 Azure 中的 VNet 服务终结点

客户管理的密钥

静态数据加密是在大数据环境中确保安全的一项关键要求。 Azure 存储默认使用 Microsoft 管理的密钥来加密存储帐户中的所有数据。 但是,客户可选择使用他们自己的密钥来利用对数据的额外控制。 在门户中,存储帐户上的“加密”边栏选项卡用于确定存储帐户上的密钥设置。 选择“使用你自己的密钥”,然后选择密钥 URI 或从 Azure Key Vault 中选择一个密钥。 详细了解 Azure 存储的客户管理的密钥

Customer-managed encryption keys

同样地,对于 Kafka 群集,可在创建群集时使用自己的密钥来加密所有静态代理数据。