Реализация ключевых хранилищ для моделей ML - PullRequest
0 голосов
/ 19 сентября 2019
  1. у нас есть жестко закодированные соединения db и учетные записи хранения Azure в файле json.Это выглядит ниже
"connection_information": {
     "server_name": "xxxx",
     "database_name": "xxxx",
     "database_username": "xxxx",
     "database_password": "xxxxx",
     "storage_account": "xxxxx",
     "storage_key": "xxxxx"
}
И мы вызываем эти параметры json в appconfig.py файле. Этот файл выглядит следующим образом
@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']

Теперь мы хотим реализовать хранилище ключей, я создал хранилище ключей, секреты, приложение в лазури, активный каталог, политики доступа.Я пытался извлечь секрет, используя локально работающий код Python.

В настоящее время мы используем соединения db, которые жестко запрограммированы в json и отправляют параметры в конфигурацию приложения.

Первый вопрос : Есть ли способ передать ключевые хранилища в существующем json вместо точных паролей, заменив их лазурным секретным значением?Если это так, мне не нужно слишком много изменений в ML-коде.

Второй вопрос : как перехватить все значения параметров с помощью кода Python и секретных ключей Azure?В основном, как вызывать несколько секретов с помощью python и отправлять их в параметры конфигурации приложения?

Третий вопрос : Каковы наилучшие способы реализации Azure и Python хранилища ключей?Пожалуйста, предложите лучший способ.

Четвертый вопрос : прямо сейчас мы берем ключ учетной записи хранения, это означает, что он предназначен для всех файлов, больших двоичных объектов, очередей, таблиц и т. Д. Как я могу ограничить хранилище BLOB-объектов?

Я видел некоторые блоги, использующие шаблоны ARM.Пожалуйста, предложите лучший подход для меня.

Я заменил исходное значение на секрет в существующем json, и он не работает.

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

Этот код для получения секретного значения из лазури в python,Работает нормально.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...