azure - 如何强制刷新用于挂载 ADLS Gen2 的 key ? Azure Databricks 使用 Azure KeyVault 支持的范围安装 - SP secret 更新

标签 azure databricks azure-databricks

问题:

  1. 使用服务主体 secret 作为 Azure Key Vault 支持的 secret 范围中的 secret 来安装 ADLS gen2 容器。一切顺利,可以访问数据。

  2. 从 AAD 中的服务主体中删除了 key ,添加了新的、更新的 Azure Key Vault key (添加了新版本,禁用了旧 key )。一切都还好,可以访问数据。

  3. 已重新启动集群。无法访问装载点,错误:“AADToken:从 AzureAD 获取 token 的 HTTP 连接失败。 HTTP 响应:401 未经授权”

  4. 使用相同的配置卸载/挂载有帮助。

有没有办法刷新用于挂载点的 secret ,我可以将其添加到初始化脚本中以避免此问题?我宁愿避免在初始化脚本中卸载/挂载所有挂载点,并希望有像 dbutils.fs.refreshMounts() 这样的东西可以提供帮助(refreshMounts 对这个特定问题没有帮助)。

我使用服务主体、oauth2.0 和 Azure Key Vault 支持的 secret 范围安装了 ADLS Gen2,遵循以下文档:https://learn.microsoft.com/en-us/azure/databricks/data/data-sources/azure/azure-datalake-gen2#mount-azure-data-lake-gen2

另外 - 出于好奇:有人知道安装到 ADLS Gen2 的 token 的生命周期有多长吗?只要集群没有重新启动,即使 key 被删除和更新(即 key 在 AAD 和 Key Vault 中更新),我也能够访问我的 mnt;在重新启动集群之前没有出现任何故障 - 这已经是 12 小时后的事了更新)。

最佳答案

这是一个已知的限制。每当您使用来自 Azure Key Vault 支持的 secret 范围的凭据创建装载点时,凭据将存储在装载点中,并且永远不会再次刷新。

这是安装点创建时的一次性读取事件。因此,每次轮换 Azure Key Vault 中的凭据时,您都需要重新创建挂载点以刷新那里的凭据。

我建议您提供同样的反馈:

Azure Databricks - Feedback

您在这些论坛中分享的所有反馈都将由负责构建 Azure 的 Microsoft 工程团队进行监控和审核。

关于azure - 如何强制刷新用于挂载 ADLS Gen2 的 key ? Azure Databricks 使用 Azure KeyVault 支持的范围安装 - SP secret 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61948579/

相关文章:

asp.net - 将跨域添加到 Azure Blob 存储的根目录

csv - Spark 数据帧保存在 hdfs 位置的单个文件中

azure - 是否可以更改 Azure 临时存储驱动器的驱动器号?

azure - 使用 Azure 数据工厂导入 .tar 文件

apache-spark - 如何检查是否在有限的持续时间或记录数内停止从kafka主题进行流式传输?

azure - pyspark从所有列的数据中删除控制字符的最佳方法

apache-spark-sql - 在 azure 数据 block 中查询 sql server 表

python - 迭代 databricks Repos 中的文件

apache-spark - 如何在 Databricks 中配置自定义 Spark 插件?

node.js - 如何在Azure(Ubuntu VM)上管理私有(private)公共(public)端口?