Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Key Vault помогает защитить ключи, секреты и сертификаты, такие как ключи API и строки подключения к базе данных.
В этом руководстве вы настраиваете приложение Python для чтения сведений из Azure Key Vault с использованием управляемых удостоверений для ресурсов Azure. Вы узнаете, как:
- Создание хранилища ключей
- Хранение секрета в Key Vault
- Создание виртуальной машины Linux Azure
- Включите управляемое удостоверение для виртуальной машины.
- Предоставьте необходимые разрешения для консольного приложения для чтения данных из Key Vault
- Получение секрета из Key Vault
Прежде чем начать, прочитайте Key Vault основные понятия.
Если у вас нет подписки Azure, создайте учетную запись free.
Предпосылки
Для Windows, Mac и Linux:
- Git
- В этом руководстве требуется локальное выполнение Azure CLI. Должна быть установлена последняя версия Azure CLI. Чтобы узнать версию, выполните команду
az --version. Если необходимо установить или обновить интерфейс командной строки, см. раздел Install Azure CLI.
Войдите в Azure
Чтобы войти в Azure с помощью Azure CLI, введите следующее:
az login
Создание группы ресурсов и хранилища ключей
В этом кратком руководстве используется предварительно созданное хранилище ключей Azure. Вы можете создать хранилище ключей, выполнив действия, описанные в следующих кратких руководствах.
- быстрый старт Azure CLI
- краткое начало Azure PowerShell
- Быстрый старт Azure Portal
В качестве альтернативы, можно выполнить команды Azure CLI или Azure PowerShell.
Это важно
Каждое хранилище ключей должно иметь уникальное имя. Замените <vault-name> именем хранилища ключей в следующих примерах.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Запись секрета в хранилище ключей
Мы создадим секрет с именем mySecret и значением Success!. Секрет может быть паролем, SQL строка подключения или любой другой информацией, необходимой для обеспечения безопасности и доступности приложения.
Чтобы добавить секрет в новое созданное хранилище ключей, используйте следующую команду:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Создание виртуальной машины
Создайте виртуальную машину с именем myVM одним из следующих способов:
| Линукс | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| портал Azure | Портал Azure |
Чтобы создать виртуальную машину Linux с помощью Azure CLI, используйте команду az vm create. В примере ниже добавляется учетная запись пользователя с именем azureuser. Параметр --generate-ssh-keys автоматически создает ключ SSH и сохраняет его в стандартное расположение (~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Запишите значение publicIpAddress в выходных данных.
Назначьте удостоверение виртуальной машине
Создайте назначаемое системой удостоверение для виртуальной машины с помощью команды Azure CLI az vm identity assign:
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Обратите внимание на присвоенный системой идентификатор, который отображается в следующем коде. Выходные данные приведенной выше команды выглядят следующим образом.
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Назначение разрешения для идентификатора виртуальной машины
Чтобы получить разрешения для хранилища ключей через Role-Based контроль доступа (RBAC), назначьте роль вашему "User Principal Name" (UPN) с помощью команды Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Замените <upn>, <subscription-id>а <vault-name> также фактическими значениями. Если вы использовали другое имя группы ресурсов, замените myResourceGroup. Ваше Уникальное Имя Пользователя (UPN) обычно имеет формат адреса электронной почты (например, username@domain.com).
Вход на виртуальную машину
Чтобы войти в виртуальную машину, следуйте инструкциям в Connect и войдите на виртуальную машину Azure под управлением Linux или Connect и войдите на виртуальную машину Azure под управлением Windows.
Чтобы войти в виртуальную машину Linux, можно использовать команду ssh с <public-ip-address> заданным на шаге "Создание виртуальной машины ".
ssh azureuser@<public-ip-address>
Установка библиотек Python на виртуальной машине
На виртуальной машине установите две библиотеки Python, которые мы будем использовать в нашем скрипте Python: azure-keyvault-secrets и azure-identity.
Например, на виртуальной машине Linux их можно установить с помощью pip3:
pip3 install azure-keyvault-secrets
pip3 install azure-identity
Создание и изменение примера скрипта Python
На виртуальной машине создайте файл Python с именем sample.py. Измените файл, чтобы он содержал следующий код, заменив <vault-name> имя хранилища ключей:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<vault-name>"
key_vault_uri = f"https://{key_vault_name}.vault.azure.net"
secret_name = "mySecret"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=key_vault_uri, credential=credential)
retrieved_secret = client.get_secret(secret_name)
print(f"The value of secret '{secret_name}' in '{key_vault_name}' is: '{retrieved_secret.value}'")
Запуск примера приложения Python
Теперь выполните sample.py. Если все прошло хорошо, должно вернуться значение секрета:
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Очистка ресурсов
Когда они больше не нужны, удалите виртуальную машину и хранилище ключей. Можно быстро закончить, удалив группу ресурсов, к которой они принадлежат.
az group delete -g "myResourceGroup"