Библиотеки Azure Key Vault для PythonAzure Key Vault libraries for Python

Azure Key Vault — это система Azure для хранения криптографических ключей, секретов и сертификатов, а также управления ими.Azure Key Vault is Azure's storage and management system for cryptographic keys, secrets, and certificate management. API пакета SDK Python для Key Vault реализован в виде клиентских библиотек и библиотек управления.The Python SDK API for Key Vault is split between client libraries and management libraries.

Используйте клиентские библиотеки, чтобы:Use the client library to:

  • обновлять, удалять элементы Azure Key Vault или получать к ним доступ;Access, update, or delete items stored in an Azure Key Vault
  • получать метаданные для сохраненных сертификатов;Get metadata for stored certificates
  • проверять подписи на соответствие симметричным ключам в Key Vault.Verify signatures against symmetric keys in Key Vault

Используйте библиотеки управления, чтобы:Use the management library to:

  • создавать, обновлять или удалять новые хранилища Key Vault;Create, update, or delete new Key Vault stores
  • управлять политиками доступа к хранилищу;Control vault access policies
  • выводить список хранилищ по подписке или группе ресурсов;List vaults by subscription or resource group
  • проверять, свободно ли имя для хранилища.Check for vault name availability

Установка библиотекInstall the libraries

Клиентская библиотекаClient library

pip install azure-keyvault

ПримерыExamples

В примерах ниже используется аутентификация с помощью субъекта-службы, которая является рекомендуемым способом входа для подключающихся к Azure приложений.The following examples use service principal authentication, which is the recommended sign in method for applications that connect to Azure. Подробные сведения об аутентификации с помощью субъекта-службы см. в статье Проверка подлинности с помощью библиотек управления Azure для Python.To learn about service principal authentication, see Authenticate with the Azure SDK for Python

Извлеките открытую часть ассиметричного ключа из хранилища:Retrieve the public portion of an asymmetric key from a vault:

from azure.keyvault import KeyVaultClient
from azure.common.credentials import ServicePrincipalCredentials

credentials = ServicePrincipalCredentials(
    client_id = '...',
    secret = '...',
    tenant = '...'
)

client = KeyVaultClient(credentials)

# VAULT_URL must be in the format 'https://<vaultname>.vault.azure.net'
# KEY_VERSION is required, and can be obtained with the KeyVaultClient.get_key_versions(self, vault_url, key_name) API
key_bundle = client.get_key(VAULT_URL, KEY_NAME, KEY_VERSION)
key = key_bundle.key

Извлеките секрет из хранилища:Retrieve a secret from a vault:

from azure.keyvault import KeyVaultClient
from azure.common.credentials import ServicePrincipalCredentials

credentials = ServicePrincipalCredentials(
    client_id = '...',
    secret = '...',
    tenant = '...'
)

client = KeyVaultClient(credentials)

# VAULT_URL must be in the format 'https://<vaultname>.vault.azure.net'
# SECRET_VERSION is required, and can be obtained with the KeyVaultClient.get_secret_versions(self, vault_url, secret_id) API
secret_bundle = client.get_secret(VAULT_URL, SECRET_ID, SECRET_VERSION)
secret = secret_bundle.value

Библиотека управленияManagement library

pip install azure-mgmt-keyvault

ПримерExample

В следующем примере показано, как создать Azure Key Vault.The following example shows how to create an Azure Key Vault.

from azure.mgmt.keyvault import KeyVaultManagementClient
from azure.common.credentials import ServicePrincipalCredentials


credentials = ServicePrincipalCredentials(
    client_id = '...',
    secret = '...',
    tenant = '...'
)

# Even when using service principal credentials, a subscription ID is required. For service principals,
# this should be the subscription used to create the service principal. Storing a token like a valid
# subscription ID in code is not recommended and only shown here for example purposes.
SUBSCRIPTION_ID = '...'
client = KeyVaultManagementClient(credentials, SUBSCRIPTION_ID)

# The object ID and organization ID (tenant) of the user, application, or service principal for access policies.
# These values can be found through the Azure CLI or the Portal.
ALLOW_OBJECT_ID = '...'
ALLOW_TENANT_ID = '...'

RESOURCE_GROUP = '...'
VAULT_NAME = '...'

# Vault properties may also be created by using the azure.mgmt.keyvault.models.VaultCreateOrUpdateParameters
# class, rather than a map. 
operation = client.vaults.create_or_update(
    RESOURCE_GROUP,
    VAULT_NAME,
    {
        'location': 'eastus',
        'properties': {
            'sku': {
                'name': 'standard'
            },
            'tenant_id': TENANT_ID,
            'access_policies': [{
                'object_id': OBJECT_ID,
                'tenant_id': ALLOW_TENANT_ID,
                'permissions': {
                    'keys': ['all'],
                    'secrets': ['all']
                }
            }]
        }
    }
)

vault = operation.result()
print(f'New vault URI: {vault.properties.vault_uri}')

ПримерыSamples

Просмотрите полный список примеров для Azure Key Vault.View the complete list of Azure Key Vault samples.