Kurz: Použití 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 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. Získáte informace o těchto tématech:

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

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

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é Rozhraní příkazového řádku 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, přečtěte si téma Instalace Azure CLI 2.0.

Přihlaste se 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 podle kroků v rychlém startu Azure CLI, Azure PowerShell rychlém startu nebo Azure Portal rychlém startu.

Alternativně můžete jednoduše spustit Azure CLI nebo Azure PowerShell příkazy níže.

Důležité

Každý trezor klíčů musí mít jedinečný název. V následujících příkladech nahraďte <your-unique-keyvault-name> názvem vašeho trezoru klíčů.

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

az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"

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 zajištění zabezpečení a dostupnosti pro vaši aplikaci.

Pokud chcete přidat tajný kód 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

Pomocí jedné z následujících metod vytvořte virtuální počítač s názvem myVM :

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. Parametr --generate-ssh-keys se používá 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

Poznamenejte si hodnotu 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 "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

Spuštěním následujícího příkazu teď můžete trezoru klíčů přiřadit dříve vytvořená oprávnění identity:

az keyvault set-policy --name "<your-unique-keyvault-name>" --object-id "<systemAssignedIdentity>" --secret-permissions get list

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řihlášení k virtuálnímu počítači Azure s Linuxem nebo Připojení a přihlášení 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 parametrem <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í počítač nainstalujte dvě knihovny Pythonu, které budeme používat ve skriptu Pythonu: azure-keyvault-secrets a azure.identity.

Na virtuálním počítači s Linuxem je například můžete nainstalovat pomocí :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 <your-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še funguje dobře, měl 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 rychle udělat tak, že odstraníte skupinu prostředků, do které patří:

az group delete -g myResourceGroup

Další kroky

Azure Key Vault REST API