Sdílet prostřednictvím


Rychlý start: Klientská knihovna klíčů služby Azure Key Vault pro Python

Začínáme s klientskou knihovnou služby Azure Key Vault pro Python Pomocí těchto kroků nainstalujte balíček a vyzkoušejte si ukázkový kód pro základní úlohy. Použitím služby Key Vault k ukládání kryptografických klíčů se vyhnete ukládání takových klíčů do kódu, což zvyšuje zabezpečení vaší aplikace.

Referenční dokumentace k | rozhraní API – Balíček zdrojového kódu | knihovny (index balíčků Pythonu)

Požadavky

V tomto rychlém startu se předpokládá, že používáte Azure CLI nebo Azure PowerShell v okně terminálu s Linuxem.

Nastavení místního prostředí

V tomto rychlém startu se k ověření uživatele ve službách Azure používá knihovna identit Azure s Azure CLI nebo Azure PowerShellem. Vývojáři také můžou k ověření volání použít Visual Studio nebo Visual Studio Code. Další informace najdete v tématu Ověřování klienta pomocí klientské knihovny Azure Identity.

Přihlášení k Azure

  1. Spusťte příkaz login.

    az login
    

    Pokud rozhraní příkazového řádku může otevřít výchozí prohlížeč, provede to a načte přihlašovací stránku Azure.

    V opačném případě otevřete stránku https://aka.ms/devicelogin prohlížeče a zadejte autorizační kód zobrazený v terminálu.

  2. Přihlaste se pomocí přihlašovacích údajů vašeho účtu v prohlížeči.

Instalace balíčků

  1. V terminálu nebo příkazovém řádku vytvořte vhodnou složku projektu a pak vytvořte a aktivujte virtuální prostředí Pythonu, jak je popsáno v tématu Použití virtuálních prostředí Pythonu.

  2. Nainstalujte knihovnu identit Microsoft Entra:

    pip install azure-identity
    
  3. Nainstalujte klientskou knihovnu klíčů služby Key Vault:

    pip install azure-keyvault-keys
    

Vytvoření skupiny prostředků a trezoru klíčů

  1. az group create Pomocí příkazu vytvořte skupinu prostředků:

    az group create --name myResourceGroup --location eastus
    

    Pokud chcete, můžete změnit "eastus" na nejbližší místo.

  2. Slouží az keyvault create k vytvoření trezoru klíčů:

    az keyvault create --name <your-unique-keyvault-name> --resource-group myResourceGroup
    

    Nahraďte <your-unique-keyvault-name> ho jedinečným názvem ve všech Azure. Obvykle používáte svůj osobní název nebo název společnosti spolu s dalšími čísly a identifikátory.

Nastavení proměnné prostředí KEY_VAULT_NAME

Náš skript použije hodnotu přiřazenou KEY_VAULT_NAME proměnné prostředí jako název trezoru klíčů. Tuto hodnotu proto musíte nastavit pomocí následujícího příkazu:

export KEY_VAULT_NAME=<your-unique-keyvault-name>

Udělení přístupu k trezoru klíčů

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.

Vytvoření ukázkového kódu

Klientská knihovna klíčů služby Azure Key Vault pro Python umožňuje spravovat kryptografické klíče. Následující ukázka kódu ukazuje, jak vytvořit klienta, nastavit klíč, načíst klíč a odstranit klíč.

Vytvořte soubor s názvem kv_keys.py , který obsahuje tento kód.

import os
from azure.keyvault.keys import KeyClient
from azure.identity import DefaultAzureCredential

keyVaultName = os.environ["KEY_VAULT_NAME"]
KVUri = "https://" + keyVaultName + ".vault.azure.net"

credential = DefaultAzureCredential()
client = KeyClient(vault_url=KVUri, credential=credential)

keyName = input("Input a name for your key > ")

print(f"Creating a key in {keyVaultName} called '{keyName}' ...")

rsa_key = client.create_rsa_key(keyName, size=2048)

print(" done.")

print(f"Retrieving your key from {keyVaultName}.")

retrieved_key = client.get_key(keyName)

print(f"Key with name '{retrieved_key.name}' was found.")
print(f"Deleting your key from {keyVaultName} ...")

poller = client.begin_delete_key(keyName)
deleted_key = poller.result()

print(" done.")

Spuštění kódu

Ujistěte se, že kód v předchozí části je v souboru s názvem kv_keys.py. Pak kód spusťte pomocí následujícího příkazu:

python kv_keys.py

Opětovné spuštění kódu se stejným názvem klíče může způsobit chybu "(Konfliktní) název> klíče <je aktuálně v odstraněném, ale obnovitelném stavu." Použijte jiný název klíče.

Podrobnosti kódu

Ověření a vytvoření klienta

Žádosti o aplikace na většinu služeb Azure musí být autorizované. Použití defaultAzureCredential třídy poskytované klientskou knihovnou Azure Identity je doporučený postup pro implementaci připojení bez hesla ke službám Azure ve vašem kódu. DefaultAzureCredential podporuje více metod ověřování a určuje, která metoda se má použít za běhu. Tento přístup umožňuje vaší aplikaci používat různé metody ověřování v různých prostředích (místní a produkční) bez implementace kódu specifického pro prostředí.

V tomto rychlém startu DefaultAzureCredential se ověří v trezoru klíčů pomocí přihlašovacích údajů místního vývojového uživatele přihlášeného k Azure CLI. Když je aplikace nasazená do Azure, může stejný DefaultAzureCredential kód automaticky zjišťovat a používat spravovanou identitu přiřazenou ke službě App Service, virtuálnímu počítači nebo jiným službám. Další informace najdete v tématu Přehled spravované identity.

V ukázkovém kódu se název trezoru klíčů rozšíří pomocí hodnoty KVUri proměnné ve formátu "https://< your-key-vault-name.vault.azure.net>".

credential = DefaultAzureCredential()
client = KeyClient(vault_url=KVUri, credential=credential)

Uložení klíče

Po získání objektu klienta pro trezor klíčů můžete klíč uložit pomocí metody create_rsa_key :

rsa_key = client.create_rsa_key(keyName, size=2048)

Můžete také použít create_key nebo create_ec_key.

create Volání metody vygeneruje volání rozhraní Azure REST API pro trezor klíčů.

Když Azure požadavek zpracuje, ověří identitu volajícího (instanční objekt) pomocí objektu přihlašovacích údajů, který jste zadali klientovi.

Načtení klíče

Ke čtení klíče ze služby Key Vault použijte metodu get_key :

retrieved_key = client.get_key(keyName)

Klíč můžete také ověřit pomocí příkazu Azure CLI az keyvault key show nebo rutiny Azure PowerShellu Get-AzKeyVaultKey.

Odstranění klíče

Klíč odstraníte pomocí metody begin_delete_key :

poller = client.begin_delete_key(keyName)
deleted_key = poller.result()

Metoda begin_delete_key je asynchronní a vrací objekt poller. Volání metody poller result čeká na jeho dokončení.

Klíč můžete ověřit pomocí příkazu Azure CLI az keyvault key show nebo rutiny Azure PowerShellu Get-AzKeyVaultKey.

Po odstranění zůstane klíč po dobu odstraněný, ale obnovitelný. Pokud kód spustíte znovu, použijte jiný název klíče.

Vyčištění prostředků

Pokud chcete také experimentovat s certifikáty a tajnými kódy, můžete znovu použít službu Key Vault vytvořenou v tomto článku.

Jinak po dokončení práce s prostředky vytvořenými v tomto článku odstraňte skupinu prostředků a všechny její obsažené prostředky pomocí následujícího příkazu:

az group delete --resource-group myResourceGroup

Další kroky