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 tajných klíčů 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í tajných kódů se vyhnete ukládání tajných kódů do kódu, což zvyšuje zabezpečení aplikace.
Referenční dokumentace | k rozhraní APIZdrojový kód | knihovnyBalíček (index balíčku Pythonu)
Prerequisites
- Předplatné Azure – vytvořte si ho zdarma.
- Python 3.7+.
- Azure CLI nebo Azure PowerShell.
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í
Tento rychlý start používá knihovnu Azure Identity s Azure CLI nebo Azure PowerShellem k ověření uživatele ve službách Azure. Vývojáři můžou také k ověřování 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ásit se do Azure
Spusťte příkaz
az login.az loginPokud CLI může otevřít váš výchozí prohlížeč, udělá to a načte přihlašovací stránku Azure.
Jinak otevřete stránku v prohlížeči na 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 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.
Nainstalujte knihovnu identit Microsoft Entra:
pip install azure-identityNainstalujte knihovnu tajných kódů služby Key Vault:
pip install azure-keyvault-secrets
Vytvořte skupinu prostředků a trezor klíčů
az group createPomocí příkazu vytvořte skupinu prostředků:az group create --name myResourceGroup --location eastusPokud chcete, můžete změnit "eastus" na nejbližší místo.
Pomocí
az keyvault createvytvořte úložiště klíčů:az keyvault create --name <your-unique-keyvault-name> --resource-group myResourceGroupNahraďte
<your-unique-keyvault-name>názvem, který je jedinečný v rámci celé 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 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 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 hlavnímu názvu uživatele (UPN) pomocí příkazu Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Nahraďte <upn>, <subscription-id>, <resource-group-name> a <your-unique-keyvault-name> skutečnými hodnotami. Hlavní 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 tajných kódů služby Azure Key Vault pro Python umožňuje spravovat tajné kódy. Následující ukázka kódu ukazuje, jak vytvořit klienta, nastavit tajný klíč, načíst tajný klíč a odstranit tajný klíč.
Vytvořte soubor s názvem kv_secrets.py , který obsahuje tento kód.
import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
keyVaultName = os.environ["KEY_VAULT_NAME"]
KVUri = f"https://{keyVaultName}.vault.azure.net"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)
secretName = input("Input a name for your secret > ")
secretValue = input("Input a value for your secret > ")
print(f"Creating a secret in {keyVaultName} called '{secretName}' with the value '{secretValue}' ...")
client.set_secret(secretName, secretValue)
print(" done.")
print(f"Retrieving your secret from {keyVaultName}.")
retrieved_secret = client.get_secret(secretName)
print(f"Your secret is '{retrieved_secret.value}'.")
print(f"Deleting your secret from {keyVaultName} ...")
poller = client.begin_delete_secret(secretName)
deleted_secret = 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_secrets.py. Pak kód spusťte pomocí následujícího příkazu:
python kv_secrets.py
- Pokud dojde k chybám oprávnění, ujistěte se, že jste spustili
az keyvault set-policypříkaz neboSet-AzKeyVaultAccessPolicypříkaz. - Opětovné spuštění kódu se stejným názvem tajného kódu může způsobit chybu "(Konflikt) Název< tajného >kódu je aktuálně v odstraněném, ale obnovitelném stavu." Použijte jiný název tajného kódu.
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 této rychlé příručce se DefaultAzureCredential autentizuje k úložišti klíčů pomocí přihlašovacích údajů místního vývojáře, který je přihlášený 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 = SecretClient(vault_url=KVUri, credential=credential)
Uložit tajemství
Po získání objektu klienta pro trezor klíčů můžete tajný kód uložit pomocí metody set_secret :
client.set_secret(secretName, secretValue)
Volání set_secret vygeneruje volání rozhraní Azure REST API pro trezor klíčů.
Když Azure zpracovává požadavek, ověří identitu volajícího (servisní principál) pomocí objektu přihlašovacích údajů, který jste poskytli klientovi.
Získat tajemství
Ke čtení tajného kódu ze služby Key Vault použijte metodu get_secret :
retrieved_secret = client.get_secret(secretName)
Hodnota tajného kódu je obsažena v retrieved_secret.value.
Tajný kód můžete načíst také pomocí příkazu Azure CLI az keyvault secret show nebo rutiny Azure PowerShellu Get-AzKeyVaultSecret.
Smazat tajemství
K odstranění tajného kódu použijte metodu begin_delete_secret :
poller = client.begin_delete_secret(secretName)
deleted_secret = poller.result()
Metoda begin_delete_secret je asynchronní a vrací objekt poller. Volání metody poller result čeká na jeho dokončení.
Můžete ověřit, že tajemství bylo odstraněno pomocí příkazu Azure CLI az keyvault secret show nebo rutiny Azure PowerShell Get-AzKeyVaultSecret.
Jakmile je tajemství odstraněno, zůstává po určitou dobu smazané, ale je možné jej obnovit. Pokud kód spustíte znovu, použijte jiný název tajného kódu.
Vyčistěte zdroje
Pokud chcete také experimentovat s certifikáty a klíči, 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