是否可以在不向我的代码添加秘密的情况下向Azure验证python应用程序?因为我使用的是不受信任的计算资源,所以我无法将机密保存为环境变量,也无法在本地存储“ config”文件。
给出:
python-sp
)创建了服务主体Contributor
角色到Azure Key Vault 示例:
clientSecret
添加到代码中的方法就是使用az login
... sp_name = 'python-sp'
sp_file = 'sp_creds.json'
!az login
!az ad sp create-for-rbac -n $sp_name --sdk-auth > $sp_file
!export AZURE_AUTH_LOCATION=$sp_file
with open(sp_file) as data_file:
sp_details = json.load(data_file)
os.remove(sp_file)
不幸的是,这需要交互,因此代码并不是真正没有头的。除此之外,即使只有一小会儿,凭据也位于内存中的json文件中。
我该如何访问Azure Key Vault来检索身份验证密钥/秘密?
这里列出的方法似乎都要求在一个文件中存储和访问凭据或对其进行硬编码。
鸡肉和鸡蛋!但是我想这很有道理。有什么想法吗?
答案 0 :(得分:1)
好吧,这个问题并非特定于Azure Python SDK。不管您使用哪种类型的SDK(甚至平台),答案都是相同的。因此,请将凭据作为环境变量传递,使用证书,使用保管库,使用托管身份等。所有这些方法都允许进行无头认证。