Sdílet prostřednictvím


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

Další kroky

Azure Key Vault REST API