将机密资源添加到 Databricks 应用

Databricks 机密添加为 Databricks Apps 资源,以安全将敏感值(如 API 密钥或令牌)传递到应用。 Databricks Apps 支持存储在 机密范围中的机密。 应用在运行时检索这些机密,使这些机密远离应用程序代码和环境定义。

添加机密资源

在将机密添加为应用资源之前,请查看 资源先决条件

  1. 创建或编辑应用时,导航到 “配置” 步骤。
  2. “应用资源 ”部分中,单击“ + 添加资源”。
  3. 选择 “机密 ”作为资源类型。
  4. 选择机密范围。
  5. 在该范围内选择要在应用中使用的密钥。
  6. 为范围选择权限级别(而不是单个机密):
    • 可以读取: 授予应用对所选范围中的所有机密的读取访问权限。
    • 可以写入: 授予应用更新作用域中的任何机密的权限。
    • 可以管理: 授予应用读取、更新和删除作用域中的任何机密的权限。
  7. (可选)指定自定义资源密钥,即在应用配置中引用机密的方式。 默认键为 secret.

Note

这些步骤允许应用通过将选定机密作为环境变量传递,安全地从作用域中访问选定的机密。

但是,机密权限在 范围 级别应用,而不是单个机密。 若要限制应用之间的访问,请为每个应用创建单独的机密范围,并仅存储该范围内所需的机密。

环境变量

部署使用机密资源的应用时,Azure Databricks 会将每个机密作为环境变量注入。 每个变量的名称与添加机密时定义的资源密钥匹配。

若要从应用访问机密,请使用该环境变量。 在您的应用配置文件(例如 app.yaml)中,定义一个使用 valueFrom 字段引用机密的变量。 此设置可确保 Azure Databricks 安全地管理实际机密值,并且不会以明文形式公开。

如果在具有不同资源键的多个资源条目之间使用相同的机密,则每个密钥在引用 valueFrom时都会成为单独的环境变量。

有关详细信息,请参阅从资源访问环境变量

Important

切勿直接将敏感值存储在环境变量或应用代码中。 而是将资源密钥作为环境变量传递给 Azure Databricks,并在运行时安全地检索机密值。

删除机密资源

从应用中删除机密资源时,机密本身将保留在机密范围内。 但是,除非再次添加机密,否则应用将失去对机密的访问权限。

最佳做法

在应用中管理机密时,请遵循以下最佳做法:

  • 不要公开原始机密值。 直接注入的机密值,因为环境变量在应用的 “环境 ”页上以纯文本形式显示。 若要避免这种情况,请使用应用配置中的字段引用机密 valueFrom ,并在应用代码中安全地检索该值。
  • 将应用的访问权限限制为仅需要的特定范围。 避免授予对工作区中所有作用域的访问权限。
  • 为所有机密建立轮换计划,并在团队成员更改角色或离开组织时立即轮换。