需要编写一个Databricks在Azure云上运行,它需要访问企业内部的API获取JSON格式的数据,企业有网关和防火墙,API有公司的okta身份认证,通过公司的域账号来授权访问,现在需要创建一个专用的域账号,让Databricks访问Azure Key Vault,来获取账号密码,然后通过配置访问公司内部API的数据,请写出所有的开发配置步骤,以及完成这一功能的所有的Python源代码,需要确保安全性和可靠性。
完整开发配置步骤
一、前置条件准备
-
企业网络配置:
- 在Azure与企业内部网络之间建立 ExpressRoute 或 Site-to-Site VPN 确保Databricks可访问内网API。
- 在防火墙规则中允许来自Azure Databricks的IP范围和端口。
-
创建专用域账号:
- 在企业的Active Directory中创建专用服务账号(如
svc-databricks-api
),授予该账号API访问权限。
- 在企业的Active Directory中创建专用服务账号(如
二、Azure资源配置
-
创建Azure Key Vault:
- 在Azure Portal中创建Key Vault(如
kv-company-secrets
)。 - 启用 软删除 和 清除保护 增强安全性。
- 在Azure Portal中创建Key Vault(如
-
存储敏感信息到Key Vault:
az keyvault secret set --vault-name kv-company-secrets --name "api-username" --value "svc-databricks-api" az keyvault secret set --vault-name kv-company-secrets --name "api-password" --value "P@ssw0rd!" az keyvault secret set --vault-name kv-company-secrets --name "okta-client-id" --value "0oa12b3c4d" az keyvault secret set --vault-name kv-company-secrets --name "okta-client-secret" --value "abc123-secret"
-
配置Azure Databricks托管身份:
- 在Databricks工作空间启用 Managed Identity。
- 在Key Vault的访问策略中,授予该托管身份 Get 和 List 秘密的权限。
三、Okta应用配置
- 在Okta管理控制台:
- 创建新应用(如
Databricks Internal API
),选择 OAuth 2.0 Client Credentials 或 Resource Owner Password 授权类型。 - 绑定专用域账号并配置所需权限(Scopes)。
- 创建新应用(如