Tous les produits
Search
Centre de documentation

Key Management Service:Secrets Manager Client

Dernière mise à jour :Sep 21, 2026

Le Secrets Manager Client est un wrapper personnalisé construit au-dessus des API OpenAPI de KMS et des API d'instance KMS. Il intègre nativement la mise en cache et l'actualisation des secrets pour faciliter l'intégration dans vos applications. Cette approche améliore la stabilité de vos services et simplifie le travail des développeurs. Ce client permet de récupérer les valeurs des secrets pour tous les types pris en charge.

SDK du Secrets Manager Client

Le SDK du Secrets Manager Client encapsule les API KMS et intègre les bonnes pratiques ainsi que les modèles de conception liés à la mise en cache des secrets. Il facilite ainsi l'intégration de la gestion des secrets dans vos systèmes applicatifs. Ce SDK présente les avantages suivants :

  • Intégrez la gestion des secrets dans vos applications avec une seule ligne de code pour lire les valeurs des secrets.

  • Bénéficiez de fonctionnalités natives de mise en cache et d'actualisation des secrets directement dans votre application.

  • Profitez d'une logique de nouvelle tentative automatique en cas d'erreur d'API, avec une gestion intelligente des erreurs côté serveur.

  • Tirez parti d'une architecture basée sur des plugins qui vous permet de personnaliser la mise en cache, la logique de nouvelle tentative et d'autres modules.

Remarque
  • Alibaba Cloud propose également le SDK d'instance KMS et le SDK Alibaba Cloud, qui permettent eux aussi de récupérer les valeurs des secrets. Pour plus d'informations, reportez-vous à Références des SDK.

  • Pour réaliser des opérations de gestion sur les secrets, utilisez impérativement le SDK Alibaba Cloud.

Versions du SDK

Le SDK 2.0 est désormais disponible et constitue la version recommandée. Le tableau suivant compare le SDK 1.0 et le SDK 2.0.

  • Prise en charge des identifiants

    Type d'identifiant

    SDK 1.0

    SDK 2.0

    AccessKey

    Supported

    Supported

    OIDC Role Arn

    Unsupported

    Supported

    ECS RAM Role

    Supported

    Supported

    RAM Role Arn

    Supported

    Supported

    Remarque

    Le SDK 2.0 ne prend pas en charge la lecture des informations RAM Role ARN depuis les variables d'environnement et les fichiers de configuration par défaut. Vous devez utiliser l'approche codée en dur. Si cette fonctionnalité vous est nécessaire, contactez le support technique.

    Client Key

    Supported

    Unsupported

    Chaîne de fournisseurs d'identifiants par défaut

    Unsupported

    Supported

  • Fonctionnalités de sécurité

    Fonctionnalité

    SDK 1.0

    SDK 2.0

    Certificat CA intégré

    Unsupported

    Supported

Flux d'authentification du SDK

Le Secrets Manager Client s'authentifie à l'aide d'identifiants d'accès. Le processus d'authentification varie légèrement selon le type de passerelle auquel vous vous connectez. Le SDK détecte automatiquement les paramètres configurés et sélectionne la passerelle appropriée. Grâce à ce mécanisme d'authentification flexible, aucune configuration manuelle du type de passerelle n'est requise. Voici les étapes d'authentification :

  1. Définissez les variables d'environnement ou préparez le fichier de configuration, en veillant à inclure toutes les informations d'identification nécessaires. Les paramètres diffèrent entre les passerelles dédiées et les passerelles partagées.

  2. Initialisez le client. Le SDK lit automatiquement la configuration et identifie le type de passerelle.

  3. Une fois l'authentification terminée, poursuivez avec les opérations sur la passerelle.

Périmètre

  • Types de secrets pris en charge : secret générique, secret RAM, secret ECS, secret de base de données.

  • Langages de programmation pris en charge : Java (Java 8 ou version ultérieure), Python, Go, Node.js.

Installer le Secrets Manager Client

Les instructions suivantes expliquent comment installer le SDK 2.0. Pour l'installation du SDK 1.0, reportez-vous aux dépôts de code source respectifs du SDK.

Java

Installez le Secrets Manager Client dans votre projet à l'aide de Maven.

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>alibabacloud-secretsmanager-client-v2</artifactId>
    <version>x.x.x</version>
</dependency>
          
Important

Utilisez la dernière version du SDK 2.0 pour bénéficier des fonctionnalités et optimisations les plus récentes. Consultez alibabacloud-secretsmanager-client-java-v2 pour accéder au code d'exemple et au code source du SDK 2.0. Pour le SDK 1.0, rendez-vous sur alibabacloud-secretsmanager-client-java.

Python

Installez le Secrets Manager Client à l'aide de pip.

# If the following command fails, replace pip with pip3
pip install alibabacloud_secretsmanager_client_v2
          
Important
  • L'installation du SDK Python V2 du Secrets Manager Client nécessite Python 3.7 ou version ultérieure. Exécutez python3 --version pour vérifier votre version actuelle. Si celle-ci est antérieure à la 3.7, mettez Python à niveau avant de lancer la commande d'installation.

  • Privilégiez le SDK 2.0 pour profiter des dernières fonctionnalités et optimisations. Consultez aliyun-secretsmanager-client-python-v2 pour accéder au code d'exemple et au code source du SDK 2.0. Pour le SDK 1.0, rendez-vous sur aliyun-secretsmanager-client-python.

Go

Installez le Secrets Manager Client à l'aide de la commande go get.

go get -u github.com/aliyun/alibabacloud-secretsmanager-client-go-v2          
Important
  • Pour Go, la dépendance alibaba-cloud-sdk-go doit être antérieure à la V1.63.0. Vérifiez votre fichier go.mod pour confirmer la version et éviter tout problème de compatibilité.

  • Adoptez le SDK 2.0 afin de bénéficier des dernières fonctionnalités et optimisations. Consultez alibabacloud-secretsmanager-client-go-v2 pour accéder au code d'exemple et au code source du SDK 2.0. Pour le SDK 1.0, rendez-vous sur aliyun-secretsmanager-client-go.

Node.js

Installez le Secrets Manager Client à l'aide de npm ou yarn.

  • npm

    npm install alibabacloud-secretsmanager-client-v2
  • yarn

    yarn add alibabacloud-secretsmanager-client-v2
Important
  • L'installation du SDK V2 du Secrets Manager Client requiert Node.js 16.0.0 ou version ultérieure.

  • Optez pour le SDK 2.0 afin de profiter des dernières fonctionnalités et optimisations. Consultez alibabacloud-secretsmanager-client-nodejs-v2 pour accéder au code d'exemple et au code source du SDK 2.0.

Configurer les identifiants d'accès

ECS RAM Role

Étape 1 : Créer un rôle RAM et configurer les permissions

Un rôle RAM d'instance ECS vous permet d'obtenir un identifiant d'accès temporaire (jeton STS) depuis une instance ECS pour appeler les opérations d'API KMS, sans avoir à configurer de paire d'AccessKey.

Pour plus d'informations, reportez-vous à Rôles RAM d'instance.

  1. Connectez-vous à la console RAM et créez un rôle RAM pour un service Alibaba Cloud de confiance.

    • Trusted Entity Type : sélectionnez Elastic Compute Service.

    • Entité de confiance : sélectionnez Elastic Compute Service (ECS).

  2. Accordez au rôle RAM les permissions d'accès à KMS.

    • Méthode 1 : configurer une politique basée sur l'identité

      Dans la colonne Actions du rôle RAM, cliquez sur Grant Permission pour attacher au rôle RAM une politique de permissions système intégrée pour KMS. Pour plus d'informations sur les politiques de permissions système pour KMS, reportez-vous à Politiques système pour KMS.

      Remarque

      Vous avez également la possibilité de créer des politiques de permissions personnalisées. Pour plus d'informations, reportez-vous à Créer une politique personnalisée.

    • Méthode 2 : configurer une politique basée sur les ressources

      KMS prend en charge les politiques basées sur les ressources, qui accordent des permissions d'accès à des clés et des secrets individuels. Ces politiques vous permettent de contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, reportez-vous à Politiques de clé et Politiques de secret.

  3. Connectez-vous à la console ECS et attachez le rôle RAM à une instance ECS.

Étape 2 : Définir les variables d'environnement ou le fichier de configuration

Le SDK propose deux méthodes pour obtenir les identifiants d'accès :

  • Variables d'environnement : les méthodes de configuration varient selon le système d'exploitation. Pour plus d'informations, consultez la section relative à la définition des identifiants d'accès dans les variables d'environnement.

    Avertissement

    Ne modifiez pas les noms des paramètres. Dans le cas contraire, le SDK ne pourra pas les reconnaître.

  • Fichier de configuration : le fichier de configuration par défaut est secretsmanager.properties (son nom ne peut pas être modifié). Pour garantir le chargement correct du fichier de configuration par votre application, placez-le dans le répertoire de configuration approprié. Voici les répertoires de configuration courants selon les langages :

    • Java : placez le fichier de configuration dans le répertoire src/main/resources afin qu'il soit automatiquement inclus dans le classpath lors de la compilation.

    • Go : placez le fichier de configuration à la racine du projet ou dans un répertoire config dédié, puis chargez-le via le code.

    • Python : placez le fichier de configuration dans le répertoire du projet ou dans un répertoire config spécifique, puis utilisez une méthode adaptée (comme os.path ou pkg_resources) pour le charger.

  • Si vous utilisez un fichier de configuration personnalisé, spécifiez son chemin (#customConfigFileName#) lors de l'initialisation du client.

Fichier de configuration

  • Passerelle dédiée

    # Credential type
    credentials_type=ecs_ram_role
    # ECS RAM Role name
    credentials_role_name=#credentials_role_name#
    # Associated KMS region and instance endpoint
    cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]
                
  • Passerelle partagée

    # Credential type
    credentials_type=ecs_ram_role
    # ECS RAM Role name
    credentials_role_name=#credentials_role_name#
    # Associated KMS region
    cache_client_region_id=[{"regionId":"#regionId#"}]
                
  • Passerelle partagée (VPC)

    # Credential type
    credentials_type=ecs_ram_role
    # ECS RAM Role name
    credentials_role_name=#credentials_role_name#
    # Associated KMS region and VPC Endpoint
    cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
                

Variables d'environnement

Paramètre

Valeur

credentials_type

Valeur fixe : ecs_ram_role.

credentials_role_name

Nom du rôle RAM.

cache_client_region_id

  • Passerelle dédiée : [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Passerelle partagée : [{"regionId":"<your_region_id>"}].

  • Passerelle partagée (VPC) : [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Important
    • Remplacez <regionId> par l'ID de région réel et <your_kms_instance_id> par l'ID d'instance réel.

    • Sous Linux, lorsque vous définissez des variables d'environnement avec la commande export, utilisez des caractères d'échappement, par exemple : [{\"regionId\":\"<your_region_id>"}].

AccessKey

Instructions

  1. Lisez le texte anglais pour comprendre CE qui doit être communiqué.

  2. Rédigez le français À PARTIR DE ZÉRO — oubliez la structure des phrases anglaises.

  3. Conservez exactement toute la mise en forme Markdown, les blocs de code, les liens et les images.

  4. Balises xref (<a data-tag="xref" ...>texte</a>) — conservez la balise ENTIÈRE avec tous ses attributs dans leur ordre et casse d'origine, traduisez UNIQUEMENT le texte visible entre > et .

  5. Appliquez strictement toutes les règles spécifiques à la langue.

  6. Appliquez les règles relatives aux mots vides (stopwords) avec une tolérance zéro.

  7. Utilisez le mode impératif dans les étapes numérotées et les listes à puces procédurales.

  8. Assurez la cohérence terminologique — un même terme = une même traduction partout.

  9. Variez les débuts de phrase dans les listes et tableaux — aucun début de phrase ne doit apparaître plus de 3 fois.

  10. Retournez UNIQUEMENT le document Markdown en français, sans explication.

    Étape 1 : Créer un AccessKey et configurer les permissions

    Avertissement

    Par défaut, un compte Alibaba Cloud dispose de permissions d'administrateur sur toutes les ressources. Ces permissions ne peuvent pas être modifiées. Pour garantir la sécurité de vos ressources, nous vous recommandons d'utiliser un utilisateur RAM pour créer une paire d'AccessKey et de lui accorder uniquement les permissions nécessaires.

    1. Connectez-vous à la console RAM. Dans la page Users, cliquez sur le nom de l'utilisateur RAM cible.

    2. Dans l'onglet Secret Management, section AccessKey, cliquez sur Create AccessKey.

    3. Accordez à l'utilisateur RAM les permissions d'accès à KMS.

      • Méthode 1 : Configurer une politique basée sur l'identité

        Dans la colonne Actions correspondant à l'utilisateur RAM, cliquez sur Grant Permission afin d'attacher une politique de permissions système intégrée pour KMS. Pour plus d'informations sur ces politiques, consultez Politiques système pour KMS.

        Remarque

        Vous avez également la possibilité de créer des politiques de permissions personnalisées. Pour plus d'informations, consultez Créer une politique personnalisée.

      • Méthode 2 : Configurer une politique basée sur les ressources

        KMS prend en charge les politiques basées sur les ressources, qui accordent des permissions d'accès à des clés et des secrets individuels. Ces politiques permettent de contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, consultez Politiques de clé et Politiques de secret.

    Étape 2 : Définir des variables d'environnement ou un fichier de configuration

    Le SDK propose deux méthodes pour obtenir les identifiants d'accès :

    • Variables d'environnement : la méthode de configuration varie selon le système d'exploitation. Pour plus d'informations, consultez la documentation relative à la définition des identifiants d'accès dans les variables d'environnement.

      Avertissement

      Ne modifiez pas les noms des paramètres. Le cas échéant, le SDK ne pourra pas les reconnaître.

    • Fichier de configuration : le fichier par défaut est secretsmanager.properties (son nom ne peut pas être modifié). Pour que votre application charge correctement ce fichier, placez-le dans le répertoire de configuration approprié. Voici les répertoires courants selon les langages :

      • Java : placez le fichier de configuration dans le répertoire src/main/resources afin qu'il soit automatiquement inclus dans le classpath lors de la compilation.

      • Go : placez le fichier de configuration à la racine du projet ou dans un répertoire config dédié, puis chargez-le via le code.

      • Python : placez le fichier de configuration dans le répertoire du projet ou dans un répertoire config spécifique, puis utilisez une méthode adaptée (comme os.path ou pkg_resources) pour le charger.

    • Si vous utilisez un fichier de configuration personnalisé, spécifiez son chemin (#customConfigFileName#) lors de l'initialisation du client.

    Fichier de configuration

    • Passerelle dédiée

      # Credential type
      credentials_type=ak
      # AccessKey ID
      credentials_access_key_id=#access_key_id#
      # AccessKey Secret
      credentials_access_secret=#access_key_secret#
      # Use the following configuration for dedicated KMS instance gateway
      cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]
                  
    • Passerelle partagée

      # Credential type
      credentials_type=ak
      # AccessKey ID
      credentials_access_key_id=#access_key_id#
      # AccessKey Secret
      credentials_access_secret=#access_key_secret#
      # Associated KMS region
      cache_client_region_id=[{"regionId":"#regionId#"}]
                  
    • Passerelle partagée (VPC)

      # Credential type
      credentials_type=ak
      # AccessKey ID
      credentials_access_key_id=#access_key_id#
      # AccessKey Secret
      credentials_access_secret=#access_key_secret#
      # Associated KMS region and VPC Endpoint
      cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
                  

    Variables d'environnement

    Paramètre

    Valeur

    credentials_type

    Valeur fixe : ak.

    credentials_access_key_id

    L'ID de l'AccessKey.

    credentials_access_secret

    Le secret de l'AccessKey.

    cache_client_region_id

    • Passerelle dédiée : [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

    • Passerelle partagée : [{"regionId":"<your_region_id>"}].

    • Passerelle partagée (VPC) : [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

      Important
      • Remplacez <regionId> par l'ID réel de la région et <your_kms_instance_id> par l'ID réel de l'instance.

      • Sous Linux, lorsque vous définissez des variables d'environnement avec la commande export, utilisez des caractères d'échappement. Par exemple : [{\"regionId\":\"<your_region_id>"}].

OIDC Role ARN

Remarque

Seul le SDK 2.0 prend en charge les identifiants OIDC Role ARN. Ce n'est pas le cas du SDK 1.0.

Étape 1 : Créer un OIDC Role ARN et configurer les permissions

  1. Créer un fournisseur OIDC

    1. Connectez-vous à la console RAM en tant qu'administrateur RAM. Dans la page SSO, cliquez sur l'onglet Role-based SSO.

    2. Dans l'onglet OIDC, cliquez sur Create IdP.

    3. Sur la page Create IdP, configurez les informations du fournisseur. Pour plus d'informations, consultez Gérer les fournisseurs OIDC.

  2. Obtenir et enregistrer les informations d'identité OIDC (ARN et Client ID)

    1. Accédez à la page SSO, puis, dans l'onglet IdP, cliquez sur le nom du fournisseur OIDC cible.

    2. Sur la page de détails IdP, consultez l'ARN et le Client ID.

  3. Créer et autoriser un rôle RAM pour le fournisseur OIDC

    1. Connectez-vous à la console RAM en tant qu'administrateur RAM, puis accédez à la page Identities > Roles.

    2. Cliquez sur Create Role. Dans l'angle supérieur droit de la page de création, cliquez sur Switch to Policy Editor.

    3. Dans l'éditeur de politiques, spécifiez le fournisseur OIDC. Sélectionnez l'éditeur visuel et configurez les paramètres comme décrit ci-dessous.

      Remarque

      Pour plus d'informations sur les autres modes, consultez Créer un rôle RAM pour un fournisseur d'identité OIDC.

      1. Dans la section Select Trusted Entity, sélectionnez IdP.

      2. Dans la section Edit Trust Policy, configurez les paramètres suivants.

        • IdP Type : sélectionnez OIDC.

        • IdP : sélectionnez le fournisseur OIDC créé précédemment.

  4. Accorder au rôle RAM OIDC les permissions d'accès à KMS

    • Méthode 1 : Configurer une politique basée sur l'identité

      Revenez à la page de liste Identities > Roles, puis cliquez sur Grant Permission dans la colonne Actions du rôle OIDC cible. Cette action permet d'attacher directement une politique de permissions système intégrée KMS au rôle RAM. Pour plus d'informations sur ces politiques, consultez Référence des politiques de permissions système Key Management Service.

      Remarque

      Les politiques de permissions personnalisées sont également prises en charge. Pour plus d'informations, consultez Créer une politique personnalisée.

    • Méthode 2 : Configurer une politique basée sur les ressources

      KMS prend en charge les politiques basées sur les ressources, qui accordent des permissions d'accès à des clés et des secrets individuels. Ces politiques permettent de contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, consultez Politiques de clé et Politiques de secret.

  5. Obtenir l'OIDC Role ARN cible

    1. Dans la page Identities > Roles, cliquez sur le nom du rôle cible.

    2. Sur la page de détails du rôle, recherchez l'OIDC Role ARN dans la section ARN.

      Remarque

      Le Role ARN correspond à l'ARN du rôle RAM à endosser. Son format est acs:ram::$accountID:role/$roleName, où $accountID représente l'ID du compte Alibaba Cloud et $roleName le nom du rôle RAM.

  6. Émettre et enregistrer le fichier de jeton OIDC

    Alibaba Cloud ne prend pas en charge la connexion OIDC directe depuis la console. Vous pouvez toutefois réaliser le processus SSO OIDC par programmation. L'obtention d'un jeton OIDC implique un flux OAuth, généralement via un processus OAuth 2.0 standard auprès du fournisseur d'identité OIDC (IdP).

    Par exemple, lorsqu'une application s'exécute dans un cluster ACK avec RRSA activé, le cluster crée et monte automatiquement le fichier de jeton OIDC du compte de service correspondant pour le pod de l'application.

Étape 2 : Définir des variables d'environnement ou un fichier de configuration

Le SDK propose deux méthodes pour obtenir les identifiants d'accès :

  • Variables d'environnement : la méthode de configuration varie selon le système d'exploitation. Pour plus d'informations, consultez la documentation relative à la définition des identifiants d'accès dans les variables d'environnement.

    Avertissement

    Ne modifiez pas les noms des paramètres. Le cas échéant, le SDK ne pourra pas les reconnaître.

  • Fichier de configuration : le fichier par défaut est secretsmanager.properties (son nom ne peut pas être modifié). Pour que votre application charge correctement ce fichier, placez-le dans le répertoire de configuration approprié. Voici les répertoires courants selon les langages :

    • Java : placez le fichier de configuration dans le répertoire src/main/resources afin qu'il soit automatiquement inclus dans le classpath lors de la compilation.

    • Go : placez le fichier de configuration à la racine du projet ou dans un répertoire config dédié, puis chargez-le via le code.

    • Python : placez le fichier de configuration dans le répertoire du projet ou dans un répertoire config spécifique, puis utilisez une méthode adaptée (comme os.path ou pkg_resources) pour le charger.

  • Si vous utilisez un fichier de configuration personnalisé, spécifiez son chemin (#customConfigFileName#) lors de l'initialisation du client.

Fichier de configuration

  • Passerelle dédiée

    # Credential type
    credentials_type=oidc_role_arn
    # Role ARN (optional. If not specified, the Default credential provider chain is used)
    credentials_role_arn=<role_arn>
    # OIDC provider ARN (optional. If not specified, the Default credential provider chain is used)
    credentials_oidc_provider_arn=<oidc_provider_arn>
    # OIDC token file path (optional. If not specified, the Default credential provider chain is used)
    credentials_oidc_token_file_path=<oidc_token_file_path>
    # KMS region and instance endpoint
    cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]            
  • Passerelle partagée

    # Credential type
    credentials_type=oidc_role_arn
    # Role ARN (optional. If not specified, the Default credential provider chain is used)
    credentials_role_arn=<role_arn>
    # OIDC provider ARN (optional. If not specified, the Default credential provider chain is used)
    credentials_oidc_provider_arn=<oidc_provider_arn>
    # OIDC token file path (optional. If not specified, the Default credential provider chain is used)
    credentials_oidc_token_file_path=<oidc_token_file_path>
    # Associated KMS region
    cache_client_region_id=[{"regionId":"<regionId>"}]
                
  • Passerelle partagée (VPC)

    # Credential type
    credentials_type=oidc_role_arn
    # Role ARN (optional. If not specified, the Default credential provider chain is used)
    credentials_role_arn=<role_arn>
    # OIDC provider ARN (optional. If not specified, the Default credential provider chain is used)
    credentials_oidc_provider_arn=<oidc_provider_arn>
    # OIDC token file path (optional. If not specified, the Default credential provider chain is used)
    credentials_oidc_token_file_path=<oidc_token_file_path>
    # Associated KMS region and VPC Endpoint
    cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
                

Variables d'environnement

Paramètre

Valeur

credentials_type

Valeur fixe : oidc_role_arn.

credentials_role_arn

L'ARN du rôle RAM associé au fournisseur d'identité OIDC. Facultatif. Si ce paramètre n'est pas spécifié, la chaîne de fournisseurs d'identifiants par défaut est utilisée.

credentials_oidc_provider_arn

L'ARN du fournisseur d'identité OIDC. Facultatif. Si ce paramètre n'est pas spécifié, la chaîne de fournisseurs d'identifiants par défaut est utilisée.

credentials_oidc_token_file_path

Le chemin relatif ou absolu vers le fichier contenant le jeton OIDC. Facultatif. Si ce paramètre n'est pas spécifié, la chaîne de fournisseurs d'identifiants par défaut est utilisée.

cache_client_region_id

  • Passerelle dédiée : [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Passerelle partagée : [{"regionId":"<your_region_id>"}].

  • Passerelle partagée (VPC) : [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Important
    • Remplacez <regionId> par l'ID réel de la région et <your_kms_instance_id> par l'ID réel de l'instance.

    • Sous Linux, lorsque vous définissez des variables d'environnement avec la commande export, utilisez des caractères d'échappement. Par exemple : [{\"regionId\":\"<your_region_id>"}].

AK+RamRoleArn

Remarque

Seul le SDK 1.0 permet de lire les informations RAM Role ARN depuis les variables d'environnement et les fichiers de configuration par défaut. Le SDK 2.0 ne prend pas en charge cette fonctionnalité. Si vous en avez besoin avec le SDK 2.0, contactez le support technique.

Instructions

  1. Read the English to understand WHAT needs to be communicated

  2. Write the French FROM SCRATCH — forget the English sentence structure

  3. Preserve all markdown formatting, code blocks, links, and images exactly

  4. xref tags (<a data-tag="xref" ...>text</a>) — preserve the ENTIRE tag with all attributes in original order and casing, ONLY translate the visible text between > and

  5. Apply all language-specific rules strictly

  6. Apply stopword rules with zero tolerance

  7. Use imperative mood in numbered steps and procedural bullet lists

  8. Enforce terminology consistency — same term = same translation everywhere

  9. Vary sentence openers in lists/tables — no opener repeated 3+ times

  10. Return ONLY the French markdown document, no explanation

    Étape 1 : Créer un ARN de rôle RAM et configurer les permissions

    Les utilisateurs RAM ou les services cloud peuvent endosser un rôle afin d'obtenir des permissions temporaires (jeton STS) plutôt que d'utiliser des clés à long terme. Cette approche réduit le risque de fuite de clés. Par exemple, lors d'une tâche de traitement de données temporaire, un utilisateur RAM ou un service cloud endosse temporairement un rôle associé à un RamRoleArn spécifique. Une fois la tâche terminée, les permissions du rôle sont révoquées, ce qui limite au maximum le risque d'exposition.

    1. Créez une paire d'AccessKey pour l'utilisateur.

      1. Connectez-vous à la console RAM. Dans le volet de navigation de gauche, choisissez Identities > Users. Sur la page Users, cliquez sur le nom de l'utilisateur RAM cible.

      2. Attachez à l'utilisateur RAM la politique système AliyunSTSAssumeRoleAccess ou une politique personnalisée incluant l'action sts:AssumeRole.

      3. Sur l'onglet Secret Management, dans la section AccessKey, cliquez sur Create AccessKey.

    2. Créez et autorisez un rôle RAM :

      1. Dans le volet de navigation de gauche, choisissez Identities > Roles. Sur la page Roles, cliquez sur Create Role. Pour plus d'informations, consultez Créer un rôle RAM.

      2. Accordez au rôle RAM les permissions nécessaires pour accéder à KMS.

        • Méthode 1 : Configurer une politique basée sur l'identité

          Dans la colonne Actions correspondant au rôle RAM, cliquez sur Grant Permission pour attacher au rôle une politique de permissions système intégrée pour KMS. Pour en savoir plus sur les politiques de permissions système de KMS, consultez Politiques système pour KMS.

          Remarque

          Vous pouvez également créer des politiques de permissions personnalisées. Pour plus d'informations, consultez Créer une politique personnalisée.

        • Méthode 2 : Configurer une politique basée sur les ressources

          KMS prend en charge les politiques basées sur les ressources, qui accordent des permissions d'accès à des clés et des secrets individuels. Ces politiques permettent de contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, consultez Politiques de clé et Politiques de secret.

    3. Récupérez le RamRoleArn du rôle RAM cible. Pour plus d'informations, consultez Consulter les informations d'un rôle RAM.

      1. Dans le volet de navigation de gauche, choisissez Identities > Roles. Sur la page Roles, cliquez sur le nom du rôle cible.

      2. Sur la page de détails du rôle, repérez le RamRoleArn dans la section ARN.

        Remarque

        Le RamRoleArn correspond à l'Alibaba Cloud Resource Name (ARN) du rôle RAM à endosser. Son format est acs:ram::$accountID:role/$roleName, où $accountID représente l'ID du compte Alibaba Cloud et $roleName le nom du rôle RAM.

    Étape 2 : Définir des variables d'environnement ou un fichier de configuration

    Le SDK propose deux méthodes pour obtenir les identifiants d'accès :

    • Variables d'environnement : les méthodes de configuration varient selon le système d'exploitation. Pour plus d'informations, consultez la rubrique relative à la définition des identifiants d'accès dans les variables d'environnement.

      Avertissement

      Ne modifiez pas les noms des paramètres. Le cas échéant, le SDK ne pourra pas les reconnaître.

    • Fichier de configuration : le fichier par défaut est secretsmanager.properties (son nom ne peut pas être modifié). Pour garantir un chargement correct par votre application, placez-le dans le répertoire de configuration approprié. Voici les répertoires courants selon le langage :

      • Java : placez le fichier de configuration dans le répertoire src/main/resources afin qu'il soit automatiquement inclus dans le classpath lors de la compilation.

      • Go : placez le fichier de configuration à la racine du projet ou dans un répertoire config dédié, puis chargez-le via le code.

      • Python : placez le fichier de configuration dans le répertoire du projet ou dans un répertoire config spécifique, puis utilisez une méthode adaptée (comme os.path ou pkg_resources) pour le charger.

    • Si vous utilisez un fichier de configuration personnalisé, spécifiez son chemin (#customConfigFileName#) lors de l'initialisation du client.

    Fichier de configuration

    • Passerelle dédiée

      # Credential type
      credentials_type=ram_role
      # Role session name
      credentials_role_session_name=#role_session_name#
      # Role ARN
      credentials_role_arn=#role_arn#
      # AccessKey ID
      credentials_access_key_id=#access_key_id#
      # AccessKey Secret
      credentials_access_secret=#access_key_secret#
      # Use the following configuration for dedicated KMS instance gateway
      cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]          
    • Passerelle partagée

      # Credential type
      credentials_type=ram_role
      # Role session name
      credentials_role_session_name=#role_session_name#
      # Role ARN
      credentials_role_arn=#role_arn#
      # AccessKey ID
      credentials_access_key_id=#access_key_id#
      # AccessKey Secret
      credentials_access_secret=#access_key_secret#
      # Associated KMS region
      cache_client_region_id=[{"regionId":"#regionId#"}]           
    • Passerelle partagée (VPC)

      # Credential type
      credentials_type=ram_role
      # Role session name
      credentials_role_session_name=#role_session_name#
      # Role ARN
      credentials_role_arn=#role_arn#
      # AccessKey ID
      credentials_access_key_id=#access_key_id#
      # AccessKey Secret
      credentials_access_secret=#access_key_secret#
      # Associated KMS region and VPC Endpoint
      cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]           

    Variables d'environnement

    Paramètre

    Valeur

    credentials_type

    ram_role ou sts

    credentials_role_session_name

    Nom de la session du rôle RAM.

    credentials_role_arn

    ARN du rôle RAM.

    credentials_access_key_id

    Identifiant AccessKey.

    credentials_access_secret

    Secret AccessKey.

    cache_client_region_id

    • Passerelle dédiée : [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

    • Passerelle partagée : [{"regionId":"<your_region_id>"}].

    • Passerelle partagée (VPC) : [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

      Important
      • Remplacez <regionId> par l'ID réel de la région et <your_kms_instance_id> par l'ID réel de l'instance.

      • Sous Linux, lorsque vous définissez des variables d'environnement avec la commande export, utilisez des caractères d'échappement, par exemple : [{\"regionId\":\"<your_region_id>"}].

ClientKey (obsolète)

Remarque

Seul le SDK 1.0 prend en charge le type d'identifiant ClientKey. Ce n'est pas le cas du SDK 2.0.

Passerelle partagée

Étape 1 : Créer un ClientKey
  1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Application Access > Multi-Cloud Access (formerly AAP).

  2. (Facultatif) Créez une règle réseau.

    Remarque

    La configuration d'une règle réseau visant à restreindre l'accès par adresse IP source est facultative. Nous vous recommandons toutefois d'en définir une pour renforcer la sécurité.

    1. Cliquez sur l'onglet Network Access Rules, puis sur Create Network Access Rule.

    2. Dans le panneau Create Network Access Rule, définissez Network Type sur Public, saisissez les Allowed Source IP Addresses, puis cliquez sur OK.

  3. Créez une politique de permissions.

    1. Cliquez sur l'onglet Policies, puis sur Create Policy.

    2. Dans le panneau Create Policy, configurez les paramètres de la passerelle partagée comme décrit ci-dessous, puis cliquez sur OK.

      1. Scope : Shared KMS Gateway

      2. Accessible Resources : sélectionnez les secrets auxquels vous souhaitez accéder.

      3. (Facultatif) Network Access Rules : sélectionnez la règle réseau créée à l'étape précédente.

  4. Créez un point d'accès à l'application (AAP).

    1. Cliquez sur l'onglet Application Access, puis sur Create AAP.

    2. Dans le panneau Create AAP, définissez Mode sur Standard Creation, puis configurez les paramètres comme décrit ci-dessous.

      Paramètre

      Description

      Authentication Method

      Sélectionnez ClientKey.

      Encryption Password

      Saisissez une chaîne de 8 à 64 caractères contenant des chiffres, des lettres et des caractères spéciaux : ~!@#$%^&*?_-.

      Validity Period

      Important

      Nous vous recommandons de définir une période de validité d'un an afin de réduire le risque de fuite du ClientKey. Veillez à effectuer la rotation du ClientKey avant son expiration pour éviter toute interruption de service. Pour plus d'informations, consultez Effectuer la rotation d'un ClientKey.

      Policies

      Sélectionnez la politique de permissions créée à l'étape précédente.

    3. Cliquez sur OK. Le navigateur télécharge automatiquement le ClientKey. Celui-ci comprend les fichiers suivants :

      • Credential (ClientKeyContent) : le nom de fichier par défaut est clientKey_****.json.

      • Mot de passe de l'identifiant (ClientKeyPassword) : le nom de fichier par défaut est clientKey_****_Password.txt.

Étape 2 : Configurer des variables d'environnement ou un fichier de configuration
  • Variables d'environnement : les méthodes de configuration varient selon le système d'exploitation. Pour plus d'informations, consultez la rubrique relative à la définition des identifiants d'accès dans les variables d'environnement.

    Avertissement

    Ne modifiez pas les noms des paramètres. Le cas échéant, le SDK ne pourra pas les reconnaître.

  • Fichier de configuration : le fichier par défaut est secretsmanager.properties (son nom ne peut pas être modifié). Pour garantir un chargement correct par votre application, placez-le dans le répertoire de configuration approprié. Voici les répertoires courants selon le langage :

    • Java : placez le fichier de configuration dans le répertoire src/main/resources afin qu'il soit automatiquement inclus dans le classpath lors de la compilation.

    • Go : placez le fichier de configuration à la racine du projet ou dans un répertoire config dédié, puis chargez-le via le code.

    • Python : placez le fichier de configuration dans le répertoire du projet ou dans un répertoire config spécifique, puis utilisez une méthode adaptée (comme os.path ou pkg_resources) pour le charger.

  • Si vous utilisez un fichier de configuration personnalisé, spécifiez son chemin (#customConfigFileName#) lors de l'initialisation du client.

Fichier de configuration

  • Approche 1 : Configurer le chemin du fichier

    # Credential type
    credentials_type=client_key
    
    # File path to the ClientKeyPassword file (clientKey_****_Password.txt)
    client_key_password_from_file_path=#client_key_password_file_path#
    
    # File path to the ClientKeyContent file (clientKey_****.json)
    client_key_private_key_path=#client_key_private_key_file_path#
    
    # Associated KMS region
    cache_client_region_id=[{"regionId":"#regionId#"}]
                  
  • Approche 2 : Configurer le mot de passe via une variable d'environnement

    Avertissement

    Commencez par stocker le ClientKeyPassword issu du fichier clientKey_****_Password.txt dans une variable d'environnement personnalisée, telle que clientKeyPassword_content.

    # Credential type
    credentials_type=client_key
    
    # Environment variable name that stores the ClientKeyPassword content
    client_key_password_from_env_variable=#client_key_password_env_var_name#
    
    # ClientKey private key file path
    client_key_private_key_path=#client_key_private_key_file_path#
    
    # Associated KMS region
    cache_client_region_id=[{"regionId":"#regionId#"}]
                  

Variables d'environnement

Le SDK propose deux approches pour configurer le mot de passe de l'identifiant ClientKey :

  • Approche 1 : Configurer le chemin du fichier contenant le mot de passe ClientKey (clientKey__Password.txt)

    Paramètre

    Valeur

    credentials_type

    Valeur fixe : client_key.

    client_key_password_from_file_path

    Chemin absolu ou relatif vers le fichier ClientKeyPassword (clientKey_****_Password.txt).

    client_key_private_key_path

    Chemin absolu ou relatif vers le fichier Credential-ClientKeyContent (clientKey_****.json).

    cache_client_region_id

    Format : [{"regionId":"<your_region_id>"}]. Sous Linux, utilisez des caractères d'échappement : [{\"regionId\":\"<your_region_id>"}].

  • Approche 2 : Configurer directement le contenu du mot de passe ClientKey

    Avertissement

    Commencez par stocker le contenu de clientKey_****_Password.txt dans une variable d'environnement personnalisée (par exemple, clientKeyPassword_content).

    Paramètre

    Valeur

    credentials_type

    Valeur fixe : client_key.

    client_key_password_from_env_variable

    Nom de la variable d'environnement contenant le ClientKeyPassword, par exemple clientKeyPassword_content.

    client_key_private_key_path

    Chemin absolu ou relatif vers le fichier clientKey_****.json.

    cache_client_region_id

    Format : [{"regionId":"<your_region_id>"}]. Sous Linux, utilisez des caractères d'échappement.

Passerelle dédiée

Instructions

  1. Lisez le texte anglais pour comprendre CE qui doit être communiqué.

  2. Rédigez le français À PARTIR DE ZÉRO — oubliez la structure des phrases anglaises.

  3. Conservez exactement toute la mise en forme Markdown, les blocs de code, les liens et les images.

  4. Balises xref (<a data-tag="xref" ...>texte</a>) : conservez LA BALISE ENTIÈRE avec tous ses attributs dans l'ordre et la casse d'origine, traduisez UNIQUEMENT le texte visible entre > et .

  5. Appliquez strictement toutes les règles spécifiques à la langue.

  6. Appliquez les règles relatives aux mots vides (stopwords) sans aucune tolérance.

  7. Utilisez le mode impératif dans les étapes numérotées et les listes à puces procédurales.

  8. Garantissez la cohérence terminologique : un même terme = une même traduction partout.

  9. Variez les débuts de phrase dans les listes et les tableaux : aucun début de phrase ne doit apparaître plus de trois fois.

  10. Retournez UNIQUEMENT le document Markdown en français, sans explication.

    Étape 1 : Créer une ClientKey

    Vous pouvez créer une ClientKey en mode Quick Create ou Standard Create. Pour plus d'informations sur les ClientKeys, consultez Points d'accès aux applications et Créer un point d'accès à une application.

    • Méthode 1 : Quick Create

      Pratique et rapide, cette méthode convient parfaitement aux phases de test et de développement. L'identifiant d'accès ainsi créé accorde un accès complet à toutes les ressources de l'instance KMS.

      1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Application Access > Access Control (Formerly Access Point).

      2. Dans l'onglet Application Access, cliquez sur Create AAP. Configurez ensuite les paramètres dans le panneau Create AAP.

        Paramètre

        Description

        Mode

        Sélectionnez Quick Creation.

        Scope (KMS Instance)

        Choisissez l'instance KMS à laquelle votre application doit accéder.

        Application Access Point Name

        Saisissez un nom pour le point d'accès à l'application.

        Authentication Method

        Cette valeur est définie sur ClientKey et ne peut pas être modifiée.

        Encryption Algorithm

        Indiquez l'algorithme de chiffrement utilisé pour chiffrer la ClientKey. Valeurs valides : TripleDES-CBC et RC2-CBC (par défaut).

        Remarque

        L'algorithme RC2-CBC fonctionne dans la plupart des environnements et reste recommandé. Si votre environnement impose des exigences algorithmiques plus strictes et ne prend pas en charge RC2-CBC, optez pour TripleDES-CBC.

        Default Permission Policy

        La valeur correspond à key/ secret/ et ne peut pas être modifiée. Ainsi, l'application peut accéder à toutes les clés et à tous les secrets de l'instance KMS spécifiée.

      3. Cliquez sur OK. Le navigateur télécharge automatiquement la ClientKey. Celle-ci comprend les fichiers suivants :

        • <!--@uicontrol {"id":"bfc4b70efacgp","data-isbold="true","data-init-id":"5bf75a5e9b7ap"}-->Credential (ClientKeyContent) : le nom de fichier par défaut est clientKey_****.json.

        • Mot de passe de l'identifiant (ClientKeyPassword) : le nom de fichier par défaut est clientKey_****_Password.txt.

    • Méthode 2 : Standard Create

      Si vous devez configurer des permissions d'accès granulaires pour vos ressources, privilégiez la méthode Standard Create.

      1. Suivez les instructions de création standard décrites dans Créer un point d'accès à une application afin de créer une ClientKey permettant d'accéder à la passerelle dédiée. Les principaux paramètres sont décrits ci-dessous :

        1. Lors de la configuration des règles réseau, sélectionnez Private comme type de réseau.

        2. Au moment de définir la portée de la règle de permission, sélectionnez l'ID d'instance KMS correspondant.

      2. Une fois la création terminée, votre navigateur télécharge automatiquement la ClientKey, qui comprend :

        • Credential (ClientKeyContent) : le fichier porte par défaut le nom clientKey_****.json.

        • Mot de passe de l'identifiant (ClientKeyPassword) : le fichier porte par défaut le nom clientKey_****_Password.txt.

    Étape 2 : Configurer les variables d'environnement ou le fichier de configuration
    • Variables d'environnement : les méthodes de configuration varient selon le système d'exploitation. Pour plus d'informations, consultez la rubrique relative à la définition des identifiants d'accès dans les variables d'environnement.

      Avertissement

      Ne modifiez pas les noms des paramètres. Le cas échéant, le SDK ne pourra pas les reconnaître.

    • Fichier de configuration : le fichier de configuration par défaut est secretsmanager.properties (son nom ne peut pas être modifié). Pour garantir que votre application charge correctement ce fichier, placez-le dans le répertoire de configuration approprié. Voici les répertoires couramment utilisés selon les langages :

      • Java : placez le fichier de configuration dans le répertoire src/main/resources afin qu'il soit automatiquement inclus dans le classpath lors de la compilation.

      • Go : déposez le fichier dans le répertoire racine du projet ou dans un répertoire config dédié, puis chargez-le via le code.

      • Python : stockez le fichier dans le répertoire du projet ou dans un répertoire config spécifique, et utilisez une méthode adaptée (comme os.path ou pkg_resources) pour le charger.

    • Si vous utilisez un fichier de configuration personnalisé, vous devez spécifier son chemin (#customConfigFileName#) lors de l'initialisation du client.

    Fichier de configuration

    Approche 1 : Configurer le chemin du fichier

    cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromFilePath":"<your_password_file_path>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
                  

    Approche 2 : Configurer le mot de passe via une variable d'environnement

    cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
                  

    Variables d'environnement

    Le SDK propose deux approches pour configurer le mot de passe de l'identifiant ClientKey :

    • Approche 1 : Configurer le chemin du fichier contenant le mot de passe de la ClientKey

      Paramètre

      Valeur

      cache_client_dkms_config_info

      Format : [{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromFilePath":"<your_password_file_path>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}].

    • Approche 2 : Définir le contenu du mot de passe de la ClientKey via une variable d'environnement

      Paramètre

      Valeur

      cache_client_dkms_config_info

      Format : [{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}].

Paramètres de cache_client_dkms_config_info

Paramètre

Description

regionId

Identifiant de la région où l'instance KMS est déployée. Pour consulter la liste des identifiants de région, reportez-vous à Régions et zones.

endpoint

Endpoint de l'instance KMS, au format {instance_id}.kms.aliyuncs.com.

clientKeyFile

Chemin absolu ou relatif vers le fichier Credential-ClientKeyContent (clientKey_****.json).

passwordFromFilePath

Chemin absolu ou relatif vers le fichier ClientKeyPassword (clientKey_****_Password.txt).

passwordFromEnvVariable

Nom de la variable d'environnement stockant le contenu de ClientKeyPassword, par exemple clientKeyPassword_content.

ignoreSslCerts

Détermine s'il faut ignorer la validation du certificat SSL de l'instance KMS. Cette dernière intègre un certificat SSL natif, exploité avec le protocole SSL/TLS pour vérifier l'identité et chiffrer les communications. Valeurs valides :

  • true : ignore la validation. La configuration de caFilePath n'est alors pas nécessaire.

  • false : valide le certificat SSL.

caFilePath

Chemin absolu ou relatif vers le fichier du certificat CA de l'instance KMS.

Remarque

Le certificat CA sert à valider le certificat SSL de l'instance KMS. Pour savoir comment obtenir ce certificat CA, consultez Obtenir le certificat CA de l'instance KMS.

Récupérer des secrets

Tous les exemples ci-dessous reposent sur le SDK 2.0. Pour consulter ceux relatifs au SDK 1.0, accédez au référentiel de code source du SDK 1.0.

Java

Utiliser la configuration par défaut

Le SDK lit automatiquement les informations d'identification depuis le fichier secretsmanager.properties ou depuis les variables d'environnement.

import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;

public class CacheClientEnvironmentSample {

    public static void main(String[] args) {
        try {
            SecretCacheClient client = SecretCacheClientBuilder.newClient();
            SecretInfo secretInfo = client.getSecretInfo("#secretName#");
            System.out.println(secretInfo);
        } catch (CacheSecretException e) {
            e.printStackTrace();
        }
    }
}
          

Utiliser un fichier de configuration personnalisé

Adoptez cette approche lorsque le fichier de configuration ne porte pas le nom par défaut ou ne se trouve pas dans le chemin attendu. Spécifiez alors le chemin du fichier de configuration (#customConfigFileName#).

import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;

public class CacheClientCustomConfigFileSample {

    public static void main(String[] args) {
        try {
            SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                    BaseSecretManagerClientBuilder.standard()
                        .withCustomConfigFile("#customConfigFileName#")
                        .build())
                    .build();
            SecretInfo secretInfo = client.getSecretInfo("#secretName#");
            System.out.println(secretInfo);
        } catch (CacheSecretException e) {
            System.out.println("CacheSecretException: " + e.getMessage());
        }
    }
}
          

Utiliser des identifiants codés en dur

Cette méthode permet de transmettre directement l'AccessKey et les informations de région lors de l'initialisation du client, sans écrire l'AccessKey dans un fichier de configuration ni dans des variables d'environnement.

import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils;

public class CacheClientWithCaCertificateSample {
    public static void main(String[] args) {
        try {
            // Create a RegionInfo with the CA certificate path
            RegionInfo regionInfo = new RegionInfo();
            regionInfo.setRegionId("#regionId#");
            // Dedicated gateway endpoint. Omit if using shared gateway.
            regionInfo.setEndpoint("<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com");

            SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                    BaseSecretManagerClientBuilder.standard()
                            .withCredentialsProvider(CredentialsProviderUtils.withAccessKey(
                                    System.getenv("#accessKeyId#"),
                                    System.getenv("#accessKeySecret#")))
                            .addRegion(regionInfo)
                            .build())
                    .build();
            SecretInfo secretInfo = client.getSecretInfo("#secretName#");
        } catch (CacheSecretException e) {
            e.printStackTrace();
        }
    }
}
          

Utiliser la chaîne de fournisseurs d'identifiants par défaut d'Alibaba Cloud

La chaîne de fournisseurs d'identifiants par défaut constitue une stratégie de repli. Elle recherche les identifiants selon un ordre prédéfini jusqu'à en trouver de valides. Si toutes les méthodes échouent, l'authentification échoue et aucun identifiant ne peut être obtenu.

import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;

public class CacheClientDefaultCredentialChainSample {

    public static void main(String[] args) {
        try {
            SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                    BaseSecretManagerClientBuilder.standard()
                        .withRegion("#regionId#")
                        .build())
                    .build();
            SecretInfo secretInfo = client.getSecretInfo("#secretName#");
            System.out.println(secretInfo);
        } catch (CacheSecretException e) {
            e.printStackTrace();
        }
    }
}
          
Remarque

Pour découvrir d'autres exemples, consultez Exemples du SDK Secrets Manager Client.

Python

Utiliser la configuration par défaut

Le SDK lit automatiquement les informations d'identification depuis le fichier secretsmanager.properties ou depuis les variables d'environnement.

from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder

if __name__ == '__main__':
    secret_cache_client = SecretManagerCacheClientBuilder.new_client()
    secret_info = secret_cache_client.get_secret_info("#secretName#")
    print(secret_info.__dict__)
          

Utiliser un fichier de configuration personnalisé

Retenez cette méthode si le fichier de configuration ne porte pas le nom par défaut ou ne se trouve pas dans le chemin attendu.

from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder

if __name__ == '__main__':
    secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
        DefaultSecretManagerClientBuilder.standard()
            .with_custom_config_file("#customConfigFileName#")
            .build()
    ).build()
    secret_info = secret_cache_client.get_secret_info("#secretName#")
    print(secret_info.__dict__)
          

Instructions

  1. Lisez le texte anglais pour comprendre CE qui doit être communiqué.

  2. Rédigez le français À PARTIR DE ZÉRO — oubliez la structure des phrases anglaises.

  3. Conservez exactement toute la mise en forme Markdown, les blocs de code, les liens et les images.

  4. Balises xref (<a data-tag="xref" ...>texte</a>) : conservez la balise INTÉGRALE avec tous ses attributs dans l'ordre et la casse d'origine, traduisez UNIQUEMENT le texte visible entre > et .

  5. Appliquez strictement toutes les règles spécifiques à la langue.

  6. Appliquez les règles relatives aux mots vides (stopwords) avec une tolérance zéro.

  7. Utilisez l'impératif dans les étapes numérotées et les listes à puces procédurales.

  8. Garantissez la cohérence terminologique — un même terme doit toujours avoir la même traduction.

  9. Variez les débuts de phrase dans les listes et les tableaux — aucune formule introductive ne doit apparaître plus de trois fois.

  10. Retournez UNIQUEMENT le document Markdown en français, sans aucune explication.

    Utiliser des identifiants codés en dur

    Cette méthode transmet directement l'AccessKey et les informations de région lors de l'initialisation du client.

    import os
    
    from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
    from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \
        DefaultSecretManagerClientBuilder
    from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo
    
    if __name__ == '__main__':
        # Create a RegionInfo with the CA certificate path
        region_info = RegionInfo(
            region_id="#regionId#",
            endpoint="#kmsInstanceEndpoint#",  # Dedicated gateway endpoint. Omit if using shared gateway.
        )
        secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
            DefaultSecretManagerClientBuilder.standard()
                .with_access_key(
                    os.getenv("#accessKeyId#"),
                    os.getenv("#accessKeySecret#")
                )
                .add_region_info(region_info)
                .build()
        ).build()
        # ... use the client
              

    Utiliser la chaîne de fournisseurs d'identifiants par défaut d'Alibaba Cloud

    from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
    from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
    
    if __name__ == '__main__':
        secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
            DefaultSecretManagerClientBuilder.standard()
                .with_region("#regionId#")
                .build()
        ).build()
        secret_info = secret_cache_client.get_secret_info("#secretName#")
        print(secret_info.__dict__)
              
    Remarque

    Pour consulter d'autres exemples, reportez-vous aux exemples du SDK Secrets Manager Client.

Go

Utiliser la configuration par défaut

package main

import "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"

func main() {
    client, err := sdk.NewClient()
    if err != nil {
        // Handle exceptions
        panic(err)
    }
    secretInfo, err := client.GetSecretInfo("#secretName#")
    if err != nil {
        // Handle exceptions
        panic(err)
    }
}
          

Utiliser un fichier de configuration personnalisé

package main

import (
    "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
    "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
)

func main() {
    client, err := sdk.NewSecretCacheClientBuilder(
            service.NewDefaultSecretManagerClientBuilder().Standard().
                WithCustomConfigFile("#customConfigFileName#").Build()).Build()
    if err != nil {
        // Handle exceptions
        panic(err)
    }
    secretInfo, err := client.GetSecretInfo("#secretName#")
    if err != nil {
        // Handle exceptions
        panic(err)
    }
}
          

Utiliser des identifiants codés en dur

package main

import (
    "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
    "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models"
    "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
    "os"
)

func main() {
    regionInfo := &models.RegionInfo{
        RegionId: "#regionId#",
        // Dedicated gateway endpoint. Omit if using shared gateway.
        Endpoint: "<kmsInstanceId>.cryptoservice.kms.aliyuncs.com",
    }

    client, err := sdk.NewSecretCacheClientBuilder(
        service.NewDefaultSecretManagerClientBuilder().
            Standard().
            WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")).
            AddRegionInfo(regionInfo).
            Build()).Build()
    if err != nil {
        // Handle exceptions
        panic(err)
    }
    secretInfo, err := client.GetSecretInfo("#secretName#")
    if err != nil {
        // Handle exceptions
        panic(err)
    }
}
          

Utiliser la chaîne de fournisseurs d'identifiants par défaut d'Alibaba Cloud

package main

import (
    "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
    "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
)

func main() {
    client, err := sdk.NewSecretCacheClientBuilder(
            service.NewDefaultSecretManagerClientBuilder().Standard().
                WithRegion("#regionId#").Build()).Build()
    if err != nil {
        // Handle exceptions
        panic(err)
    }
    secretInfo, err := client.GetSecretInfo("#secretName#")
    if err != nil {
        // Handle exceptions
        panic(err)
    }
}
          
Remarque

Pour consulter d'autres exemples, reportez-vous aux exemples du SDK Secrets Manager Client.

Node.js

Utiliser la configuration par défaut

Le SDK lit automatiquement les informations d'identification depuis le fichier secretsmanager.properties ou depuis les variables d'environnement.

import { SecretCacheClientBuilder } from 'alibabacloud-secretsmanager-client-v2';

async function example() {
  try {
    // Build client via environment variables or default configuration
    const client = await SecretCacheClientBuilder.newClient();
    const secretInfo = await client.getSecretInfo('#secretName#');
    console.log(secretInfo);
  } catch (error) {
    console.error('Error:', error);
  }
}

example();

Utiliser un fichier de configuration personnalisé

Privilégiez cette approche lorsque le fichier de configuration n'utilise ni le nom ni le chemin par défaut. Spécifiez alors le chemin du fichier de configuration.

import {
  SecretCacheClientBuilder,
  BaseSecretManagerClientBuilder,
  CredentialsProviderUtils
} from 'alibabacloud-secretsmanager-client-v2';

async function example() {
  try {
    const client = await SecretCacheClientBuilder.newCacheClientBuilder(
      BaseSecretManagerClientBuilder.standard().withCustomConfigFile('#customConfigFileName#').build()
    ).build();

    const secretInfo = await client.getSecretInfo('#secretName#');
    console.log(secretInfo);
  } catch (error) {
    console.error('Error:', error);
  }
}

example();

Utiliser des identifiants codés en dur

Cette méthode transmet directement l'AccessKey et les informations de région lors de l'initialisation du client.

import {
  SecretCacheClientBuilder,
  BaseSecretManagerClientBuilder,
  CredentialsProviderUtils,
  RegionInfo
} from 'alibabacloud-secretsmanager-client-v2';

async function example() {
  try {
    // Create RegionInfo with CA certificate path
    const regionInfo = new RegionInfo();
    regionInfo.setRegionId('#regionId#');
    regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // Specify KMS instance address
    
    const client = await SecretCacheClientBuilder.newCacheClientBuilder(
        BaseSecretManagerClientBuilder.standard()
          .withCredentialsProvider(
            CredentialsProviderUtils.withAccessKey(
              process.env['#accessKeyId#'],
              process.env['#accessKeySecret#']
            )
        )
        .addRegionInfo(regionInfo) // Use RegionInfo with CA certificate path
        .build()
    ).build();

    const secretInfo = await client.getSecretInfo('#secretName#');
    console.log(secretInfo);
  } catch (error) {
    console.error('Error:', error);
  }
}

example();

Utiliser la chaîne de fournisseurs d'identifiants par défaut d'Alibaba Cloud

import {
  SecretCacheClientBuilder,
  BaseSecretManagerClientBuilder,
  CredentialsProviderUtils
} from 'alibabacloud-secretsmanager-client-v2';

async function example() {
  try {
    const client = await SecretCacheClientBuilder.newCacheClientBuilder(
      BaseSecretManagerClientBuilder.standard()
        .withCredentialsProvider(CredentialsProviderUtils.withDefaultCredential())
        .withRegion('#regionId#')
        .build()
    ).build();

    const secretInfo = await client.getSecretInfo('#secretName#');
    console.log(secretInfo);
  } catch (error) {
    console.error('Error:', error);
  }
}

example();
Remarque

FAQ

  • Que faire si l'erreur « cannot find the built-in CA certificate for region[$regionId], please provide the caFilePath parameter. » s'affiche ?

    • Cause : le certificat CA intégré à la région spécifiée est absent du SDK.

    • Solution :

      • Mettez à jour le SDK vers la dernière version V2.0.

      • Si l'erreur persiste après la mise à jour, téléchargez le dernier certificat CA (disponible dans la console KMS sous Instance Management > Instance Details), puis transmettez son chemin. Plusieurs méthodes sont possibles :

        Transmission via une variable d'environnement

        Ajoutez le paramètre caFilePath à la configuration cache_client_region_id :

        # Associated KMS region, including the CA certificate path and instance endpoint
        cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]
                  

        Transmission via un fichier de configuration

        Ajoutez le paramètre caFilePath au fichier secretsmanager.properties ou à un fichier de configuration personnalisé :

        # Associated KMS region, including the CA certificate path and instance endpoint
        cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]
                  

        Transmission via des identifiants codés en dur

        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils;
        
        public class CacheClientWithCaCertificateSample {
            public static void main(String[] args) {
                try {
                    // Create a RegionInfo with the CA certificate path
                    RegionInfo regionInfo = new RegionInfo();
                    regionInfo.setRegionId("#regionId#");
                    regionInfo.setEndpoint("#kmsInstanceEndpoint#"); // Specify KMS instance endpoint
                    regionInfo.setCaFilePath("#caFilePath#"); // Specify CA certificate file path
        
                    SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                            BaseSecretManagerClientBuilder.standard()
                                    .withCredentialsProvider(CredentialsProviderUtils.withAccessKey(
                                            System.getenv("#accessKeyId#"),
                                            System.getenv("#accessKeySecret#")))
                                    .addRegion(regionInfo) // Use RegionInfo with CA certificate path
                                    .build())
                            .build();
                    // ... use the client
                } catch (CacheSecretException e) {
                    e.printStackTrace();
                }
            }
        }
                  
        import os
        
        from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
        from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \
            DefaultSecretManagerClientBuilder
        from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo
        
        if __name__ == '__main__':
            # Create a RegionInfo with the CA certificate path
            region_info = RegionInfo(
                region_id="#regionId#",
                endpoint="#kmsInstanceEndpoint#",  # Specify KMS instance endpoint
                ca_file_path="#caFilePath#"  # Specify CA certificate file path
            )
            secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
                DefaultSecretManagerClientBuilder.standard()
                    .with_access_key(
                        os.getenv("#accessKeyId#"),
                        os.getenv("#accessKeySecret#")
                    )
                    .add_region_info(region_info)  # Use RegionInfo with CA certificate path
                    .build()
            ).build()
            # ... use the client
                  
        package main
        
        import (
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models"
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
            "os"
        )
        
        func main() {
            // Create a RegionInfo with the CA certificate path
            regionInfo := &models.RegionInfo{
                RegionId:   "#regionId#",
                Endpoint:   "#kmsInstanceEndpoint#", // Specify KMS instance endpoint
                CaFilePath: "#caFilePath#",          // Specify CA certificate file path
            }
        
            client, err := sdk.NewSecretCacheClientBuilder(
                service.NewDefaultSecretManagerClientBuilder().
                    Standard().
                    WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")).
                    AddRegionInfo(regionInfo). // Use RegionInfo with CA certificate path
                    Build()).Build()
            if err != nil {
                // Handle exceptions
                panic(err)
            }
            secretInfo, err := client.GetSecretInfo("#secretName#")
            if err != nil {
                // Handle exceptions
                panic(err)
            }
        }
                  
        import {
          SecretCacheClientBuilder,
          BaseSecretManagerClientBuilder,
          CredentialsProviderUtils,
          RegionInfo
        } from 'alibabacloud-secretsmanager-client-v2';
        
        async function example() {
          try {
            // Create RegionInfo with CA certificate path
            const regionInfo = new RegionInfo();
            regionInfo.setRegionId('#regionId#');
            regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // Specify KMS instance address
            regionInfo.setCaFilePath('#caFilePath#'); // Specify CA certificate file path
            
            const client = await SecretCacheClientBuilder.newCacheClientBuilder(
                BaseSecretManagerClientBuilder.standard()
                  .withCredentialsProvider(
                    CredentialsProviderUtils.withAccessKey(
                      process.env['#accessKeyId#'],
                      process.env['#accessKeySecret#']
                    )
                )
                .addRegionInfo(regionInfo) // Use RegionInfo with CA certificate path
                .build()
            ).build();
        
            const secretInfo = await client.getSecretInfo('#secretName#');
            console.log(secretInfo);
          } catch (error) {
            console.error('Error:', error);
          }
        }
        
        example();
  • Que faire si l'erreur « env/config credentials type[client_key] is illegal » s'affiche ?

    • Cause : le SDK Alibaba Cloud Secrets Manager Client 2.0 ne prend pas en charge le type d'identifiant ClientKey.

    • Solution :

      • Adoptez un type d'identifiant pris en charge, tel qu'un AccessKey, un rôle RAM ECS ou un ARN de rôle OIDC. Pour plus d'informations, consultez la rubrique Configurer les identifiants d'accès.

      • Revenez au SDK 1.0 (déconseillé).

  • **Comment résoudre l'erreur NoSuchMethodError: setFetchExtendedConfig rencontrée avec Secrets Manager Client V1.x ?**

    • Cause : lorsque vous utilisez alibabacloud-secretsmanager-client V1.x et que la version de aliyun-java-sdk-kms présente dans le classpath d'exécution est antérieure à 2.14.0, tout appel à getSecretValue déclenche l'exception NoSuchMethodError: void com.aliyuncs.kms.model.v20160120.GetSecretValueRequest.setFetchExtendedConfig(java.lang.Boolean). En effet, la méthode setFetchExtendedConfig a été introduite dans aliyun-java-sdk-kms 2.14.0 ; elle n'existe donc pas dans la classe GetSecretValueRequest des versions précédentes.

    • Solution : déclarez explicitement aliyun-java-sdk-kms 2.14.0 ou une version ultérieure dans votre fichier pom.xml, puis mettez à jour aliyun-java-sdk-core vers la version 4.5.17 :

      <dependency>
          <groupId>com.aliyun</groupId>
          <artifactId>aliyun-java-sdk-kms</artifactId>
          <version>2.14.0</version>
      </dependency>
      <dependency>
          <groupId>com.aliyun</groupId>
          <artifactId>aliyun-java-sdk-core</artifactId>
          <version>4.5.17</version>
      </dependency>