Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 | Zdrojový kód knihovny | Balíček (Index balíčků Pythonu)
Požadavky
- Předplatné Azure – vytvořte si ho zdarma.
- Python 3.7 nebo novější
- Azure CLI
V tomto rychlém úvodu se předpokládá, že používáte Azure CLI nebo Azure PowerShell v okně terminálu v systému Linux.
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 naleznete v tématu Ověřování klienta s využitím knihovny Azure Identity pro klienty.
Přihlášení k Azure
- Azure CLI
- Azure PowerShell
Spusťte příkaz
login.az loginPokud 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 prohlížeče na adrese https://aka.ms/devicelogin a zadejte autorizační kód zobrazený ve vašem terminálu.
Přihlaste se pomocí přihlašovacích údajů vašeho účtu v prohlížeči.
Instalace balíčků
V terminálu nebo příkazovém řádku vytvořte vhodnou složku pro projekt, poté vytvořte a aktivujte virtuální prostředí pro Python, jak je popsáno v části Použití virtuálních prostředí Pythonu.
Nainstalujte knihovnu identit Microsoft Entra:
pip install azure-identityNainstalujte klientskou knihovnu klíčů služby Key Vault:
pip install azure-keyvault-keys
Vytvořte skupinu prostředků a trezor klíčů
- Azure CLI
- Azure PowerShell
Použijte příkaz
az group createpro vytvoření skupiny prostředků:az group create --name "myResourceGroup" --location "EastUS"Můžete změnit "EastUS" na místo blíže k vám, pokud dáváte přednost.
Použijte
az keyvault createk vytvoření trezoru klíčů:az keyvault create --name "<vault-name>" --resource-group "myResourceGroup" --enable-rbac-authorization true --enable-purge-protection trueNahraďte
<vault-name>názvem, který je unikátní v rámci celého Azure. Obvykle používáte svůj osobní název nebo název společnosti spolu s dalšími čísly a identifikátory.
Nastavte proměnnou prostředí KEY_VAULT_NAME
Náš skript použije hodnotu přiřazenou proměnné prostředí KEY_VAULT_NAME jako název trezoru klíčů. Tuto hodnotu proto musíte nastavit pomocí následujícího příkazu:
export KEY_VAULT_NAME=<vault-name>
Udělení přístupu k trezoru klíčů
Pokud chcete získat oprávnění k trezoru klíčů prostřednictvím řízení přístupu na základě role (RBAC), přiřaďte roli k "User Principal Name" (UPN) pomocí příkazu az role assignment create v Azure CLI.
az role assignment create --role "Key Vault Crypto Officer" --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. Název uživatele (UPN) bude obvykle ve formátu e-mailové adresy (např. username@domain.com).
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í) klíč <name> 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í třídy DefaultAzureCredential, kterou poskytuje knihovna klientu Azure Identity, je doporučeným přístupem pro implementaci připojení ke službám Azure bez použití hesla 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 se DefaultAzureCredential autentizuje 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, stejný DefaultAzureCredential kód může automaticky zjišťovat a používat spravovanou identitu přiřazenou k App Service, virtuálnímu počítači nebo jiným službám. Podrobnosti naleznete v 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://<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 s klíči 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.
Volání metody create vygeneruje volání rozhraní Azure REST API pro trezor klíčů.
Když Azure zpracovává požadavek, ověří identitu volajícího (služební objekt) pomocí ověřovacího objektu, 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)
K nastavení klíče můžete použít příkaz `az keyvault key show` v Azure CLI nebo cmdlet `Get-AzKeyVaultKey` v Azure PowerShell.
Odstraňte klíč
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 dokončení procesu.
Pomocí příkazu Azure CLI az keyvault key show nebo rutiny Azure PowerShell Get-AzKeyVaultKey můžete ověřit, že byl klíč smazán.
Po odstranění zůstane klíč po určitou dobu ve stavu - je 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 tajemstvími, 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:
- Azure CLI
- Azure PowerShell
az group delete --resource-group "myResourceGroup"
Další kroky
- Přehled služby Azure Key Vault
- Zabezpečený přístup k Key Vault
- Osvědčené postupy zabezpečení specifické pro klíče
- Průvodce RBAC
- Příručka pro vývojáře ve službě Azure Key Vault
- Přihlaste se pomocí Key Vault