Python용 Azure Key Vault 라이브러리Azure 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. Key Vault용 Python SDK API는 클라이언트 라이브러리와 관리 라이브러리로 분할됩니다.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
- Key Vault 액세스 정책 제어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. 서비스 주체 인증에 대한 자세한 내용은 Python용 Azure SDK로 인증을 참조하십시오.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.