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

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.aiohelyette az 's-t CertificateClient .

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

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.

Megjelenések