配置身份验证

已完成

身份验证是在数字基础结构中访问资源时验证凭据的过程。 此操作确保你可验证要在你的环境中访问服务的个人或服务能否证明他们的身份。 Azure Synapse Analytics 提供多种不同的身份验证方法。

需要进行身份验证的内容

情况各式各样,这意味着必须进行身份验证才能保护存储在 Azure Synapse Analytics 场所中的数据。

身份验证的常见形式是需要访问服务中的数据的个人身份验证。 这通常被视为提供用户名和密码来针对服务进行身份验证的个人。 但是,随着身份验证请求与条件访问策略相结合,通过额外的安全步骤进一步确保身份验证过程的安全,这也会变得更加复杂。

不太明显的是,服务必须向其他服务进行身份验证,这样才能无缝运行。 例如,使用 Azure Synapse Spark 或无服务器 SQL 池来访问 Azure Data Lake 存储中的数据。 身份验证机制必须在后台执行,确保 Azure Synapse Analytics 以经过身份验证的方式访问数据湖中的数据。

最后,在某些情况下,用户和服务会同时运行。 此时,用户和服务身份验证在后台一起进行,以确保用户能够无缝地访问数据。 这种情况的一个示例是使用 Power BI 查看由专用 SQL 池提供服务的仪表板中的报表。 此时,需要管理正在进行的多个身份验证级别。

安全类型

使用 Azure Synapse Analytics 时,应注意以下类型的身份验证。

Microsoft Entra ID

Microsoft Entra ID 是一种目录服务,它支持你集中维护可保护的对象。 这些对象可包括用户帐户和计算机帐户。 组织的员工通常会在该组织的 Microsoft Entra 租户中拥有一个代表他们的用户帐户,然后他们可通过名为单一登录的过程,使用带密码的用户帐户针对存储在目录中的其他资源进行身份验证。

Microsoft Entra ID 的强大之处在于只需进行一次登录,然后 Microsoft Entra ID 将使用直通身份验证基于保存在其中的信息来管理对其他资源的访问。 如果 Azure Synapse Analytics 的用户和实例属于相同的 Microsoft Entra ID,则该用户无需明显登录即可访问 Azure Synapse Analytics。 如果正确管理,此过程将很顺畅,原因有很多,比如管理员会向用户授予访问 Azure Synapse Analytics 专用 SQL 池的权限。

在这种情况下,Azure 管理员通常会创建用户帐户,并将其分配给 Microsoft Entra ID 中相应的角色和组。 然后,数据工程师将添加用户或器所属的组来访问专用 SQL 池。

托管标识

Azure 资源的托管标识是 Microsoft Entra ID 的一项功能。 此功能为 Azure 服务提供了 Microsoft Entra ID 中的自动托管标识。 可以使用托管标识功能向支持 Microsoft Entra 身份验证的任何服务进行身份验证。

Azure 资源托管标识是以前称为托管服务标识 (MSI) 的服务的新名称。 创建工作区时,会为你的 Azure Synapse 工作区创建一个系统分配的托管标识。

Azure Synapse 也使用托管标识来集成管道。 托管标识生命周期直接绑定到 Azure Synapse 工作区。 如果删除 Azure Synapse 工作区,则还会清除托管标识。

工作区托管标识需要在管道中执行操作的权限。 授予权限时,可以使用对象 ID 或 Azure Synapse 工作区名称来查找托管标识。

可在 Azure 门户中检索托管标识。 在 Azure 门户中打开 Azure Synapse 工作区,从左侧导航栏中选择“概览” 。 托管标识的对象 ID 会显示在主屏幕中。

查看 Azure 门户中的托管标识信息。

从 Azure Synapse Studio 中创建支持托管标识身份验证的链接服务时,托管标识信息也会显示。

启动“Azure Synapse Studio” ,从左侧导航栏中选择“管理”选项卡。 然后选择“链接服务” 并选择“+ 新建” 选项来创建新的链接服务。

在“新建链接服务”窗口中,键入 Azure Data Lake Storage Gen2。 从下面的列表中选择“Azure Data Lake Storage Gen2” 资源类型,然后选择“继续”。

在下一个窗口中,选择“托管标识”作为“身份验证方法” 。 你将看到托管标识的“名称” 和“对象 ID” 。

在链接服务中设置托管标识信息。

SQL 身份验证

对于不属于 Microsoft Entra ID 的用户帐户,替代方法将是使用 SQL 身份验证。 在此实例中,会在专用 SQL 池的实例中创建用户。 如果相关用户需要管理员访问权限,则该用户的详细信息将保存在主数据库中。 如果不需要管理员访问权限,则可在特定数据库中创建用户。 然后,用户会直接连接到 Azure Synapse Analytics 专用 SQL 池;在这里,系统会提示他们使用用户名和密码来访问服务。

通常,如果有外部用户需要访问数据,或者你正在针对 Azure Synapse Analytics 专用 SQL 池使用第三方或旧版应用程序,那么此方法很有用

多重身份验证

Synapse SQL 支持使用 Active Directory 通用身份验证从 SQL Server Management Studio (SSMS) 进行连接。

使用多重身份验证登录。

这样,你就能在使用条件访问策略的环境中进行操作,这些策略会随附策略强制执行多重身份验证。

如果无法使用托管标识访问 Azure Data Lake 等资源,可使用存储帐户密钥和共享访问签名。

使用存储帐户密钥。 Azure 为创建的每个存储帐户创建两个这类密钥(主要或辅助)。 可使用这两个密钥访问帐户中的所有内容。 可在存储帐户的 Azure 门户视图中找到存储帐户密钥。 只需选择“设置”,然后单击“访问密钥”即可。

最佳做法是,不应共享存储帐户密钥,而是可使用 Azure Key Vault 来管理密钥并确保其安全。

Azure Key Vault 是一种机密存储区,一种用于存储应用机密的集中式云服务;应用机密即必须始终安全的配置值,例如密码和连接字符串。 Key Vault 通过将应用机密保存在一个中心位置,并提供安全访问、权限控制和访问日志记录,来帮助控制这些机密。

使用 Key Vault 的主要好处有以下几点:

  • 将敏感应用信息与其他配置与代码分离,从而降低意外泄漏的风险
  • 通过为需要访问权限的应用和个人定制的访问策略实现有限制的机密访问
  • 集中式机密存储,只允许在一个位置进行所需的更改
  • 访问日志记录和监视,帮助你了解在何时以何种方式访问了机密

机密存储在独立的保管库中,保管库是用于将机密组合在一起的 Azure 资源。 机密访问和保管库管理是通过 REST API 完成的,它受到所有 Azure 管理工具和多种常用语言的客户端库支持。 每个保管库具有托管其 API 的唯一 URL。

共享访问签名

如果外部第三方应用程序需要访问你的数据,则在不使用存储帐户密钥的情况下也需要确保其连接安全。 对于不受信任的客户端,请使用共享访问签名 (SAS)。 共享访问签名是一个字符串,其中包含可以附加到 URI 的安全令牌。 使用共享访问签名来委派对存储对象的访问权限并指定约束,例如权限和访问时间范围。 可向客户提供共享访问签名令牌。

共享访问签名的类型

可以使用服务级别共享访问签名来允许访问存储帐户中的特定资源。 例如,可以使用此类共享访问签名,以允许应用程序检索文件系统中的文件列表或下载文件。

使用帐户级别共享访问签名可以访问服务级别共享访问签名可以允许的任何内容以及其他资源和功能。 例如,可以使用帐户级别共享访问签名来允许创建文件系统。