Kurz: Použití Azure Key Vault s virtuálním počítačem v Python

Azure Key Vault pomáhá chránit klíče, tajné kódy a certifikáty, jako jsou klíče rozhraní API a připojovací řetězce databáze.

V tomto kurzu nastavíte aplikaci Python pro čtení informací z Azure Key Vault pomocí spravovaných identit pro prostředky Azure. Naučíte se:

  • Vytvořte trezor klíčů.
  • Uložení tajného kódu do Key Vault
  • Vytvoření virtuálního počítače Azure s Linuxem
  • Umožněte spravovanou identitu pro virtuální počítač
  • Udělte požadovaná oprávnění ke čtení dat z Key Vault konzolové aplikace.
  • Načtení tajného kódu z Key Vault

Než začnete, přečtěte si základní koncepty Key Vault.

Pokud nemáte předplatné Azure, vytvořte si účet free.

Požadavky

Pro Windows, Mac a Linux:

  • Git
  • Tento kurz vyžaduje místní spuštění Azure CLI. Musíte mít nainstalovanou nejnovější verzi Azure CLI. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete nainstalovat nebo upgradovat rozhraní příkazového řádku, přečtěte si téma Instalace Azure CLI.

Přihlášení k Azure

Pokud se chcete přihlásit k Azure pomocí Azure CLI, zadejte:

az login

Vytvořte skupinu prostředků a trezor klíčů

V tomto rychlém startu se používá předem vytvořený trezor klíčů Azure. Pro vytvoření úložiště klíčů postupujte podle kroků uvedených v těchto rychlých úvodech.

Případně můžete tyto příkazy Azure CLI nebo Azure PowerShell spustit.

Důležité

Každý trezor klíčů musí mít jedinečný název. Nahraďte <vault-name> názvem trezoru klíčů v následujících příkladech.

az group create --name "myResourceGroup" -l "EastUS"

az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true

Naplnit trezor klíčů tajemstvím

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 vaší 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 "<vault-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
portál Azure Portál Azure

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 <resource-group> \
  --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

Vytvořte identitu přiřazenou systémem pro virtuální počítač pomocí příkazu Azure CLI az vm identity assign:

az vm identity assign --name "myVM" --resource-group "<resource-group>"

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 získat oprávnění k trezoru klíčů prostřednictvím Role-Based Access Control (RBAC), přiřaďte roli k "User Principal Name" (UPN) pomocí příkazu 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>"

Nahraďte hodnoty <upn>, <subscription-id> a <vault-name> skutečnými hodnotami. Pokud jste použili jiný název skupiny prostředků, nahraďte také myResourceGroup. Hlavní název uživatele (UPN) bude obvykle v formátu e-mailové adresy (např. username@domain.com).

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 Připojení a přihlášení 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 se spuštěným Windows.

Pokud se chcete přihlásit k virtuálnímu počítači s Linuxem, můžete použít příkaz ssh s <public-ip-address> daným krokem Vytvoření virtuálního počítače :

ssh azureuser@<public-ip-address>

Instalace knihoven Python na virtuální počítač

Na virtuálním počítači nainstalujte dvě knihovny Python, které budeme používat v našem skriptu Python: azure-keyvault-secrets a azure-identity.

Například na virtuálním počítači s Linuxem můžete nainstalovat následující pomocí pip3.

pip3 install azure-keyvault-secrets

pip3 install azure-identity

Vytvoření a úprava ukázkového skriptu Python

Na virtuálním počítači vytvořte soubor Python s názvem sample.py. Upravte soubor tak, aby obsahoval následující kód a nahraďte <vault-name> ho názvem trezoru klíčů:

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}'")

Spuštění ukázkové aplikace Python

Nakonec spusťte sample.py. Pokud všechno proběhlo dobře, mělo by vrátit hodnotu vašeho tajemství.

python3 sample.py

The value of secret 'mySecret' in '<vault-name>' is: 'Success!'

Upravte zdroje

Pokud už je nepotřebujete, odstraňte virtuální počítač a trezor klíčů. Rychle se můžete zbavit skupiny prostředků, do které patří, tím, že ji odstraníte.

az group delete -g "myResourceGroup"

Další kroky

Azure Key Vault REST API