机密工作流示例

在此工作流示例中,我们使用机密来设置用于连接到 Azure Data Lake Store 的 JDBC 凭据。

创建机密范围

创建名为 jdbc 的机密范围。

若要创建 Databricks 支持的机密范围:

databricks secrets create-scope jdbc

若要创建 Azure Key Vault 支持的机密范围,请按照创建 Azure Key Vault-支持的机密范围中的说明操作。

注意

如果帐户没有高级计划,则必须创建范围,并将 MANAGE 权限授予所有用户(“用户”)。 例如:

databricks secrets create-scope jdbc --initial-manage-principal users

创建机密

创建机密的方法取决于你使用的是 Azure Key Vault 支持的范围还是 Databricks 支持的范围。

在 Azure Key Vault 支持的范围创建机密

使用 Azure 设置机密 REST API 或 Azure 门户 UI 添加机密 usernamepassword

将机密添加到 Azure Key Vault

在 Databricks 支持的范围内创建机密

添加机密 usernamepassword。 运行以下命令,然后在打开的编辑器中输入机密值。

databricks secrets put-secret jdbc username
databricks secrets put-secret jdbc password

在笔记本中使用机密

在笔记本中,读取存储在机密范围 jdbc 中的机密以配置 JDBC 连接器:

val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
val connectionProperties = new java.util.Properties()
connectionProperties.setProperty("Driver", driverClass)

val jdbcUsername = dbutils.secrets.get(scope = "jdbc", key = "username")
val jdbcPassword = dbutils.secrets.get(scope = "jdbc", key = "password")
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")

现在,可以将这些 ConnectionProperties 与 JDBC 连接器结合使用,以便与你的数据源通信。 从该范围中获取的值永远不会显示在笔记本中(请参阅机密编辑)。

授予对另一个组的访问权限

注意

此步骤要求帐户拥有高级计划

验证凭据配置无误后,通过向 datascience 组授权读取机密范围并列出可用机密,与该组共享这些凭据以用于分析。

通过发出以下请求,向 datascience 组授予对这些凭据的读取权限

databricks secrets put-acl jdbc datascience READ

有关机密访问控制的详细信息,请参阅机密 ACL