Kurz: Použití služby Azure Key Vault s virtuálním počítačem v Pythonu
Azure Key Vault pomáhá chránit klíče, tajné kódy a certifikáty, jako jsou klíče rozhraní API a databázové připojovací řetězec.
V tomto kurzu nastavíte aplikaci Pythonu pro čtení informací ze služby Azure Key Vault pomocí spravovaných identit pro prostředky Azure. Získáte informace pro:
- Vytvořte trezor klíčů.
- Uložení tajného kódu ve službě Key Vault
- Vytvoření virtuálního počítače Azure s Linuxem
- Povolení spravované identity pro virtuální počítač
- Udělení požadovaných oprávnění ke čtení dat ze služby Key Vault pro konzolovou aplikaci
- Načtení tajného klíče ze služby Key Vault
Než začnete, přečtěte si základní koncepty služby Key Vault.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
Požadavky
Pro Windows, Mac a Linux:
- Git
- Tento kurz vyžaduje místní spuštění Azure CLI. Musíte mít nainstalované Azure CLI verze 2.0.4 nebo novější. Verzi zjistíte spuštěním příkazu
az --version
. Pokud potřebujete instalaci nebo upgrade rozhraní příkazového řádku (CLI), přečtěte si téma Instalace Azure CLI 2.0.
Přihlášení k Azure
Pokud se chcete přihlásit k Azure pomocí Azure CLI, zadejte:
az login
Vytvoření skupiny prostředků a trezoru klíčů
V tomto rychlém startu se používá předem vytvořený trezor klíčů Azure. Trezor klíčů můžete vytvořit pomocí kroků v rychlém startu Azure CLI, rychlém startu Azure PowerShellu nebo rychlém startu webu Azure Portal.
Alternativně můžete spustit tyto příkazy Azure CLI nebo Azure PowerShellu.
Důležité
Každý trezor klíčů musí mít jedinečný název. Nahraďte <název-unique-keyvault-name> názvem vašeho trezoru klíčů v následujících příkladech.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization
Naplnění trezoru klíčů tajným kódem
Pojďme vytvořit tajný kód s názvem mySecret s hodnotou Success!. Tajným kódem může být heslo, připojovací řetězec SQL nebo jakékoli jiné informace, které potřebujete k zabezpečení a dostupnosti aplikace.
K přidání tajného kódu do nově vytvořeného trezoru klíčů použijte následující příkaz:
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "mySecret" --value "Success!"
Vytvoření virtuálního počítače
Vytvořte virtuální počítač s názvem myVM pomocí jedné z následujících metod:
Linux | Windows |
---|---|
Azure CLI | Azure CLI |
PowerShell | PowerShell |
Azure Portal | Azure Portal |
Pokud chcete vytvořit virtuální počítač s Linuxem pomocí Azure CLI, použijte příkaz az vm create . Následující příklad přidá uživatelský účet s názvem azureuser. Tento --generate-ssh-keys
parametr slouží k automatickému vygenerování klíče SSH a jeho umístění do výchozího umístění klíče (~/.ssh).
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Všimněte si hodnoty publicIpAddress
ve výstupu.
Přiřazení identity k virtuálnímu počítači
Pomocí příkazu Azure CLI az vm identity assign vytvořte identitu přiřazenou systémem pro virtuální počítač:
az vm identity assign --name "myVM" --resource-group "myResourceGroup"
Poznamenejte si identitu přiřazenou systémem, která se zobrazí v následujícím kódu. Výstup předchozího příkazu by byl:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Přiřazení oprávnění identitě virtuálního počítače
Pokud chcete aplikaci udělit oprávnění k trezoru klíčů prostřednictvím řízení přístupu na základě role (RBAC), přiřaďte roli pomocí příkazu Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<app-id>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Nahraďte <app-id>
hodnoty <resource-group-name>
<subscription-id>
a <your-unique-keyvault-name>
skutečnými hodnotami. <app-id>
je ID aplikace (klienta) vaší registrované aplikace v Microsoft Entra.
Přihlášení k virtuálnímu počítači
Pokud se chcete přihlásit k virtuálnímu počítači, postupujte podle pokynů v tématu Připojení a přihlaste se k virtuálnímu počítači Azure se systémem Linux nebo Connect a přihlaste se k virtuálnímu počítači Azure s Windows.
Pokud se chcete přihlásit k virtuálnímu počítači s Linuxem, můžete použít příkaz ssh s <publicIpAddress> zadaným v kroku Vytvoření virtuálního počítače :
ssh azureuser@<PublicIpAddress>
Instalace knihoven Pythonu na virtuální počítač
Na virtuálním počítači nainstalujte dvě knihovny Pythonu, které budeme používat v našem skriptu Pythonu: azure-keyvault-secrets
a azure.identity
.
Například na virtuálním počítači s Linuxem můžete nainstalovat tyto možnosti:pip3
pip3 install azure-keyvault-secrets
pip3 install azure.identity
Vytvoření a úprava ukázkového skriptu Pythonu
Na virtuálním počítači vytvořte soubor Pythonu s názvem sample.py. Upravte soubor tak, aby obsahoval následující kód a nahraďte <název-unique-keyvault-name> názvem vašeho trezoru klíčů:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<your-unique-keyvault-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}'")
Spuštění ukázkové aplikace v Pythonu
Nakonec spusťte sample.py. Pokud všechno dobře zmizelo, mělo by vrátit hodnotu vašeho tajného kódu:
python3 sample.py
The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'
Vyčištění prostředků
Pokud už je nepotřebujete, odstraňte virtuální počítač a trezor klíčů. Můžete to udělat rychle odstraněním skupiny prostředků, do které patří:
az group delete -g myResourceGroup