ML模型的关键文件库实施

时间:2019-09-19 07:31:16

标签: python azure machine-learning

  1. 我们在json文件中具有硬编码的dbconnections和Azure存储帐户。如下图所示
"connection_information": {
     "server_name": "xxxx",
     "database_name": "xxxx",
     "database_username": "xxxx",
     "database_password": "xxxxx",
     "storage_account": "xxxxx",
     "storage_key": "xxxxx"
}
  1. 我们在 appconfig.py 文件中调用这些json参数。该文件如下所示:
@property
def server_name(self):
    return self.data['connection_information']['server_name']

@property
def database_name(self):
    return self.data['connection_information']['database_name']

@property
def database_username(self):
    return self.data['connection_information']['database_username']

@property
def database_password(self):
    return self.data['connection_information']['database_password']

@property
def storage_account(self):
    return self.data['connection_information']['storage_account']

@property
def storage_key(self):
    return self.data['connection_information']['storage_key']
  1. 现在我们要实现密钥库,我已经创建了密钥库,机密,天蓝色的应用程序,活动目录,访问策略。我试图通过在本地工作的python代码来揭开秘密。

  2. 当前,我们正在使用在json中进行硬编码的dbconnections,并将参数发送到应用程序配置。

第一个问题:有什么方法可以通过现有json中的密钥库而不是确切的密码来传递,而是用天蓝色的秘密值代替?如果有,我不需要在ML代码中进行太多更改。

第二个问题:如何通过使用python代码和天蓝色的密钥库秘密来捕获所有参数值?基本上,如何使用python调用多个秘密并将其发送到应用配置参数?

第三个问题:实现密钥库天蓝色和python的最佳方法是什么?请提出最佳方法。

第四个问题:现在我们正在使用存储帐户密钥,这意味着它适用于所有文件,blob,队列,表等,我该如何明智地限制Blob的存储?

我看到了一些使用ARM模板的博客。请为我建议最好的方法。

我已用现有json中的秘密替换了原始值,并且无法正常工作。

@Microsoft.KeyVault(SecretUri=https://prexxxxxx.vault.azure.net/secrets/Serverxxxx/43251e0xxxxx)

此代码从python中的azure检索秘密值。一切正常。

from azure.keyvault import KeyVaultClient
from azure.common.credentials import ServicePrincipalCredentials

credentials = ServicePrincipalCredentials(
    client_id = '...',
    secret = '...',
    tenant = '...'
)
client = KeyVaultClient(credentials)
secret_bundle = client.get_secret(VAULT_URL, SECRET_ID, SECRET_VERSION)
secret = secret_bundle.value

0 个答案:

没有答案