Есть ли способ аутентифицировать приложение python в Azure без добавления секретов в мой код? Поскольку я использую ненадежные вычислительные ресурсы, я не могу сохранять свои секреты в качестве переменных среды или хранить файлы конфигурации локально.
Дано:
- A Субъект службы был создан через портал для этого приложения (
python-sp
) - Субъект службы получил роль
Contributor
для Azure Key Vault
Пример:
- Я хочу использовать python sdk для программного создания и управления Azure ресурсами
- Чтобы создать новую группу ресурсов, мне сначала нужно пройти аутентификацию приложение python. Единственный метод, который мне удалось найти, который не требует добавления
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 для получить ключи / секреты аутентификации?
- Я не могу получить доступ к Azure Key Vault без каких-либо учетных данных в коде.
Все перечисленные здесь методы, похоже, требуют хранения учетных данных и доступа к ним в каком-либо файле или жестко запрограммированы.
Курица и яйцо! Но я думаю, это имеет смысл. Есть идеи?