Tous les produits
Search
Centre de documentation

Key Management Service:Exemple de code pour récupérer la valeur d'un secret

Dernière mise à jour :Aug 09, 2026

Utilisez le SDK Python 3 pour appeler l'API GetSecretValue et récupérer la valeur d'un secret depuis une instance KMS.

Pour Python 2, consultez la source GitHub. Pour Python 3, consultez la source GitHub.

Prérequis

Avant de commencer, initialisez un client SDK pour l'instance KMS. Consultez la rubrique Initialiser le client.

Exemple complet

L'exemple suivant initialise un client et appelle GetSecretValue pour récupérer un secret par son nom.

# -*- coding: utf-8 -*-
"""
Retrieve a secret value from a KMS instance using the GetSecretValue API.
"""
import os

from openapi.models import Config
from openapi_util.models import RuntimeOptions
from sdk.client import Client
from sdk.models import GetSecretValueRequest

# Configure the client
config = Config()
# KMS instance services only allow access through HTTPS.
config.protocol = "https"
# Path to your Client Key file.
config.client_key_file = "<CLIENT_KEY_FILE>"
# Client Key decryption password, read from an environment variable.
config.password = os.getenv('CLIENT_KEY_PASSWORD')
# Endpoint format: <your-kms-instance-id>.cryptoservice.kms.aliyuncs.com
config.endpoint = "<ENDPOINT>"
client = Client(config)

def get_secret_value(secret_name):
    request = GetSecretValueRequest()
    request.secret_name = secret_name

    runtime_options = RuntimeOptions()
    # Ignore server-side certificate.
    # runtime_options.ignore_ssl = True
    # Path to the KMS instance CA certificate.
    runtime_options.verify = "<CA_CERTIFICATE_FILE_PATH>"

    resp = client.get_secret_value_with_options(request, runtime_options)
    print(resp)

secret_name = "<SECRET_NAME>"
get_secret_value(secret_name)

Remplacez les espaces réservés suivants par vos valeurs réelles :

Espace réservé Description Exemple
<CLIENT_KEY_FILE> Chemin d'accès à votre fichier Client Key /etc/kms/clientKey.json
<ENDPOINT> Endpoint de l'instance KMS kms-instance-id.cryptoservice.kms.aliyuncs.com
<CA_CERTIFICATE_FILE_PATH> Chemin d'accès au certificat CA de l'instance KMS /etc/kms/ca.pem
<SECRET_NAME> Nom du secret à récupérer my-db-password

Détails de l'exemple

Initialiser le client

import os

from openapi.models import Config
from sdk.client import Client

config = Config()
# KMS instance services only allow access through HTTPS.
config.protocol = "https"
# Path to your Client Key file.
config.client_key_file = "<CLIENT_KEY_FILE>"
# Client Key decryption password, read from an environment variable.
config.password = os.getenv('CLIENT_KEY_PASSWORD')
# Endpoint format: <your-kms-instance-id>.cryptoservice.kms.aliyuncs.com
config.endpoint = "<ENDPOINT>"
client = Client(config)

La variable CLIENT_KEY_PASSWORD est lue depuis une variable d'environnement plutôt que d'être codée en dur, ce qui évite d'exposer les identifiants dans votre code source.

Appeler l'API GetSecretValue

def get_secret_value(secret_name):
    request = GetSecretValueRequest()
    request.secret_name = secret_name

    runtime_options = RuntimeOptions()
    # Ignore server-side certificate.
    # runtime_options.ignore_ssl = True
    # Path to the KMS instance CA certificate.
    runtime_options.verify = "<CA_CERTIFICATE_FILE_PATH>"

    resp = client.get_secret_value_with_options(request, runtime_options)
    print(resp)

La méthode get_secret_value_with_options accepte un objet GetSecretValueRequest et un objet RuntimeOptions. Le champ verify pointe vers le certificat CA de l'instance KMS, utilisé par le SDK pour valider la connexion au serveur.