问题:
>
已装入ADLS gen2容器,将服务主体机密用作Azure Key Vault支持的机密作用域中的机密。一切都很好,可以访问数据。
删除了AAD中服务主体的机密,添加了新的、更新的Azure密钥库机密(添加了新版本,禁用了旧机密)。一切都很好,可以访问数据。
重新启动的集群。无法访问挂载点,错误:"AADToken: HTTP连接从AzureAD获取令牌失败。HTTP响应: 401未授权"
卸载/安装使用相同的配置帮助。
有没有办法刷新用于装载点的秘密,我可以将其添加到init脚本中以避免这个问题?我宁愿避免在init脚本中卸载/挂载所有挂载点,并希望有类似dbutils的东西。财政司司长。refreshMounts()会有所帮助(refreshMounts对这个特定问题没有帮助)。
我使用服务主体oauth2安装了ADLS Gen2。0和azure key vault支持的机密作用域,遵循以下文档:https://docs.microsoft.com/en-us/azure/databricks/data/data-sources/azure/azure-datalake-gen2#mount-azure-data-lake-gen2
还有——出于好奇:有人知道ADLS Gen2上的一个标记可以使用多长时间吗?只要集群没有重新启动,我就能够访问我的mnt,即使机密已被删除和更新(即,机密已在AAD和密钥库中更新;在重新启动集群之前,没有任何故障——更新后超过12小时)。
这是已知的限制。每当使用来自Azure Key Vault支持的机密范围的凭据创建挂载点时,凭据将存储在挂载点中,并且永远不会再次刷新。
这是在装载点创建时的一次性读取活动。因此,每次在Azure Key Vault中旋转凭据时,都需要重新创建装载点以刷新那里的凭据。
我建议你提供同样的反馈:
Azure Databricks-反馈
负责构建Azure的Microsoft工程团队将对您在这些论坛中分享的所有反馈进行监控和审查。
我的最终目标是将 ADLS 第 2 代容器装载到我的数据砖工作区中,作为我在 Azure 服务主体主持下的 Terraform 托管部署的一部分。这是一个单一部署,用于创建所有 Azure 资源(网络、防火墙、存储帐户、数据砖工作区等),然后使用数据砖 Terraform 提供程序配置数据砖工作区。 这个回答说我不能使用服务主体进行AAD passthrough挂载,这意味着我必须使用OAuth2
目前,在我看来,有很多方法可以引用秘密: 使用@或 直接,在存储库中为fx一个名为secret的秘密,然后直接引用它 具有Azure函数,或 配置已运行的应用程序,并将密钥存储库添加到堆栈 我很难看出什么时候用什么。
代码段:
使用AKV管理存储帐户:https://docs.microsoft.com/en-us/Azure/key-vault/key-vault-overview-storage-keys-powershell#manage-storage-account-keys 使用Azure Automation进行密钥循环:https://docs.microsoft.com/en-us/Azure/key-
是否有一种方法可以在不更改秘密标识符的情况下更改密钥库的秘密值?我在azure portal中尝试了new version按钮,但秘密标识符改变了。 谢了,亚当。