Azure Key Vault Certificates ügyfélkódtár Pythonhoz – 4.7.0-s verzió
Az Azure Key Vault a következő problémák megoldásában segít:
- Tanúsítványkezelés (ez a kódtár) – nyilvános és privát SSL-/TLS-tanúsítványok létrehozása, kezelése és üzembe helyezése
- Titkosítási kulcsok kezelése (azure-keyvault-keys) – az adatok titkosításához használt kulcsokhoz való hozzáférés létrehozása, tárolása és szabályozása
- Titkos kódok kezelése (azure-keyvault-secrets) – biztonságosan tárolhatja és szabályozhatja a jogkivonatokhoz, jelszavakhoz, tanúsítványokhoz, API-kulcsokhoz és más titkos kódokhoz való hozzáférést
- Tárolófelügyelet (azure-keyvault-administration) – szerepköralapú hozzáférés-vezérlés (RBAC), valamint tárolószintű biztonsági mentési és visszaállítási lehetőségek
Forráskód | Csomag (PyPI) | Csomag (Conda) | API-referenciadokumentáció | Termékdokumentáció | Minták
Felelősséget kizáró nyilatkozat
Az Azure SDK Python-csomagok támogatása a Python 2.7-hez 2022. január 01-én véget ért. További információkért és kérdésekért tekintse meg a következőt https://github.com/Azure/azure-sdk-for-python/issues/20691: . A csomag használatához Python 3.7 vagy újabb verzió szükséges. További részletekért tekintse meg az Azure SDK for Python verziótámogatási szabályzatát.
Első lépések
A csomag telepítése
Az azure-keyvault-certificates és az azure-identity telepítése pip használatával:
pip install azure-keyvault-certificates azure-identity
Az azure-identity az Azure Active Directory-hitelesítéshez használatos az alábbiak szerint.
Előfeltételek
- Azure-előfizetés
- Python 3.7 vagy újabb
- Egy meglévő Azure Key Vault. Ha létre kell hoznia egyet, ezt az Azure CLI használatával teheti meg a jelen dokumentum lépéseinek követésével.
Az ügyfél hitelesítése
Az Azure Key Vault szolgáltatás használatához szüksége lesz egy CertificateClient-példányra, valamint egy tároló URL-címére és egy hitelesítőadat-objektumra. Ez a dokumentum bemutatja a defaultAzureCredential használatát, amely megfelel a legtöbb forgatókönyvnek, beleértve a helyi fejlesztési és éles környezeteket is. Azt javasoljuk, hogy felügyelt identitást használjon az éles környezetekben történő hitelesítéshez.
További információt az azure-identity dokumentációjában talál a hitelesítési módszerekről és azok megfelelő hitelesítő adatairól.
Ügyfél létrehozása
Miután konfigurálta a környezetet a DefaultAzureCredential számára a megfelelő hitelesítési módszer használatára, az alábbiakat elvégezve létrehozhat egy tanúsítványügyfélt (az érték VAULT_URL
helyett a tároló URL-címét):
VAULT_URL = os.environ["VAULT_URL"]
credential = DefaultAzureCredential()
client = CertificateClient(vault_url=VAULT_URL, credential=credential)
MEGJEGYZÉS: Aszinkron ügyfél esetén importálja
azure.keyvault.certificates.aio
helyette az 's-tCertificateClient
.
Fő fogalmak
CertificateClient
A CertificateClient segítségével tanúsítványokat szerezhet be a tárolóból, új tanúsítványokat és meglévő tanúsítványok új verzióit hozhat létre, frissítheti a tanúsítvány metaadatait, és törölheti a tanúsítványokat. A tanúsítványok tanúsítványkibocsátóit, névjegyeit és felügyeleti szabályzatait is kezelheti. Ezt az alábbi példák szemléltetik .
Példák
Ez a szakasz a gyakori feladatokat lefedő kódrészleteket tartalmazza:
- Tanúsítvány létrehozása
- Tanúsítvány lekérése
- Meglévő tanúsítvány tulajdonságainak frissítése
- Tanúsítvány törlése
- Tanúsítványok tulajdonságainak listázása
- Aszinkron műveletek
- Tanúsítvány aszinkron létrehozása
- Tanúsítványok tulajdonságainak aszinkron listázása
Tanúsítvány létrehozása
begin_create_certificate létrehoz egy tanúsítványt, amely az Azure Key Vault tárolandó. Ha már létezik ugyanazzal a névvel rendelkező tanúsítvány, létrejön a tanúsítvány új verziója. Tanúsítvány létrehozása előtt létrehozhat egy felügyeleti szabályzatot a tanúsítványhoz, vagy az alapértelmezett szabályzatot fogja használni. Ez a metódus egy hosszú ideig futó műveletválasztót ad vissza.
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient, CertificatePolicy
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
create_certificate_poller = certificate_client.begin_create_certificate(
certificate_name="cert-name", policy=CertificatePolicy.get_default()
)
print(create_certificate_poller.result())
Ha ellenőrizni szeretné a tanúsítvány létrehozásának állapotát, hívhatja status()
a lekérdezést, vagy get_certificate_operation a tanúsítvány nevével.
Tanúsítvány lekérése
get_certificate lekéri az Key Vault korábban tárolt tanúsítvány legújabb verzióját.
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
certificate = certificate_client.get_certificate("cert-name")
print(certificate.name)
print(certificate.properties.version)
print(certificate.policy.issuer_name)
get_certificate_version lekéri a tanúsítvány egy adott verzióját.
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
certificate = certificate_client.get_certificate_version(certificate_name="cert-name", version="cert-version")
print(certificate.name)
print(certificate.properties.version)
Meglévő tanúsítvány tulajdonságainak frissítése
update_certificate_properties frissíti a Key Vault korábban tárolt tanúsítványt.
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
# we will now disable the certificate for further use
updated_certificate= certificate_client.update_certificate_properties(
certificate_name="cert-name", enabled=False
)
print(updated_certificate.name)
print(updated_certificate.properties.enabled)
Tanúsítvány törlése
begin_delete_certificate kérések Key Vault tanúsítvány törlését, és egy lekérdezést ad vissza, amely lehetővé teszi, hogy megvárja a törlés befejezését.
A várakozás akkor hasznos, ha a tárolóban engedélyezve van a helyreállítható törlés , és a lehető leghamarabb törölni szeretné (véglegesen törölni) a tanúsítványt. Ha a helyreállítható törlés le van tiltva, begin_delete_certificate
maga is állandó.
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
deleted_certificate_poller = certificate_client.begin_delete_certificate("cert-name")
deleted_certificate = deleted_certificate_poller.result()
print(deleted_certificate.name)
print(deleted_certificate.deleted_on)
Tanúsítványok tulajdonságainak listázása
list_properties_of_certificates felsorolja a megadott Key Vault összes tanúsítványának tulajdonságait.
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
certificates = certificate_client.list_properties_of_certificates()
for certificate in certificates:
# this list doesn't include versions of the certificates
print(certificate.name)
Aszinkron műveletek
Ez a kódtár az aszinkron API-k teljes készletét tartalmazza. A használatukhoz először telepítenie kell egy aszinkron átvitelt, például az aiohttp-t. További információért tekintse meg az Azure Core dokumentációját .
Az aszinkron ügyfeleket és a hitelesítő adatokat akkor kell bezárni, ha már nincs rájuk szükség. Ezek az objektumok aszinkron környezetkezelők, és aszinkron close
metódusokat definiálnak. Például:
from azure.identity.aio import DefaultAzureCredential
from azure.keyvault.certificates.aio import CertificateClient
credential = DefaultAzureCredential()
# call close when the client and credential are no longer needed
client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
...
await client.close()
await credential.close()
# alternatively, use them as async context managers (contextlib.AsyncExitStack can help)
client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
async with client:
async with credential:
...
Tanúsítvány aszinkron létrehozása
create_certificate létrehoz egy tanúsítványt, amely az Azure Key Vault tárolandó. Ha már létezik ugyanazzal a névvel rendelkező tanúsítvány, létrejön a tanúsítvány új verziója. Tanúsítvány létrehozása előtt létrehozhat egy felügyeleti szabályzatot a tanúsítványhoz, vagy az alapértelmezett szabályzatot fogja használni. A várakozás a create_certificate
létrehozott tanúsítványt adja vissza, ha a létrehozás sikeres, és egy Tanúsítványműveletet , ha nem.
from azure.identity.aio import DefaultAzureCredential
from azure.keyvault.certificates.aio import CertificateClient
from azure.keyvault.certificates import CertificatePolicy
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
create_certificate_result = await certificate_client.create_certificate(
certificate_name="cert-name", policy=CertificatePolicy.get_default()
)
print(create_certificate_result)
Tanúsítványok tulajdonságainak aszinkron listázása
list_properties_of_certificates felsorolja az ügyfél tárolójában található tanúsítványok összes tulajdonságát:
from azure.identity.aio import DefaultAzureCredential
from azure.keyvault.certificates.aio import CertificateClient
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
certificates = certificate_client.list_properties_of_certificates()
async for certificate in certificates:
print(certificate.name)
Hibaelhárítás
azure-keyvault-certificates
A különböző hibaforgatókönyvek diagnosztizálásának részleteiért tekintse meg a hibaelhárítási útmutatót.
Általános kérdések
Key Vault ügyfelek kivételeket emelnek ki az Azure-Core-ban. Ha például olyan kulcsot próbál lekérni, amely nem létezik a tárolóban, a CertificateClient a ResourceNotFoundError erőforrást emeli ki:
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient
from azure.core.exceptions import ResourceNotFoundError
credential = DefaultAzureCredential()
certificate_client = CertificateClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
try:
certificate_client.get_certificate("which-does-not-exist")
except ResourceNotFoundError as e:
print(e.message)
Naplózás
Ez a kódtár a szabványos naplózási kódtárat használja a naplózáshoz. A HTTP-munkamenetekkel (URL-címekkel, fejlécekkel stb.) kapcsolatos alapvető információk az INFO szintjén naplózva lesznek.
Részletes HIBAKERESÉSi szintű naplózás, beleértve a kérelem-/választörzseket és a nem felügyelt fejléceket, engedélyezhető egy ügyfélen az logging_enable
argumentummal:
from azure.identity import DefaultAzureCredential
from azure.keyvault.certificates import CertificateClient
import sys
import logging
# Create a logger for the 'azure' SDK
logger = logging.getLogger('azure')
logger.setLevel(logging.DEBUG)
# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
credential = DefaultAzureCredential()
# This client will log detailed information about its HTTP sessions, at DEBUG level
client = CertificateClient(
vault_url="https://my-key-vault.vault.azure.net/",
credential=credential,
logging_enable=True
)
A hálózati nyomkövetés naplózása bármely művelethez engedélyezhető:
certificate = certificate_client.get_certificate(certificate_name="cert-name", logging_enable=True)
Következő lépések
Az Azure SDK for Python GitHub-adattárban számos minta érhető el. Ezek a minták példakódot nyújtanak további Key Vault forgatókönyvekhez: | Fájl | Leírás | |-------------|-------------| | hello_world.py (aszinkron verzió) | tanúsítványok létrehozása/lekérése/frissítése/törlése | | backup_restore_operations.py (aszinkron verzió) | tanúsítványok biztonsági mentése és helyreállítása | | import_certificate.py (aszinkron verzió) | PKCS#12 (PFX) és PEM formátumú tanúsítványok importálása Key Vault | | list_operations.py (aszinkron verzió) | tanúsítványok listázása | | recover_purge_operations.py (aszinkron verzió) | tanúsítványok helyreállítása és végleges törlése | | issuers.py (aszinkron verzió) | tanúsítványkibocsátók kezelése | | contacts.py (aszinkron verzió) | tanúsítvány névjegyeinek kezelése | | parse_certificate.py (aszinkron verzió) | tanúsítvány titkos kulcsának kinyerása |
További dokumentáció
Az Azure Key Vault részletesebb dokumentációját az API referenciadokumentációjában találja.
Közreműködés
A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. További részletekért lásd: https://cla.microsoft.com.
A lekéréses kérelmek elküldésekor egy CLA-robot automatikusan meghatározza, hogy kell-e biztosítania CLA-t, és megfelelően kitölti a lekéréses kérelmet (például címke, megjegyzés). Egyszerűen csak kövesse a robot által megadott utasításokat. Ezt csak egyszer kell elvégeznie az összes olyan tárházban, amely a CLA-t használja.
A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért keresse fel a Viselkedési szabályzattal kapcsolatos gyakori kérdések oldalát, illetve küldje el kérdéseit vagy észrevételeit a következő címre: opencode@microsoft.com.
Azure SDK for Python
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: