Tous les produits
Search
Centre de documentation

Key Management Service:Plug-in de secret RAM

Dernière mise à jour :Aug 09, 2026

Après avoir stocké la clé AccessKey d'un utilisateur RAM dans Key Management Service (KMS) en tant que secret RAM, installez le plug-in de secret RAM pour permettre à tout SDK Alibaba Cloud de récupérer et de renouveler cette clé AccessKey automatiquement. Votre application ne référence que le nom du secret : le plug-in gère la mise en cache, l'actualisation des identifiants et les nouvelles tentatives en cas d'échec, ce qui vous évite de coder en dur ou de renouveler manuellement les identifiants.

Fonctionnement

Le plug-in récupère la valeur du secret RAM depuis KMS à l'aide du nom du secret et la met en cache dans la mémoire de l'application. Tous les appels sortants du SDK utilisent la clé AccessKey issue de ce cache local.

Lorsque KMS renouvelle le secret, la clé AccessKey mise en cache finit par devenir invalide. Le plug-in détecte cette situation en surveillant les codes d'erreur InvalidAccessKeyId ou InvalidAccessKeyId.NotFound dans la réponse de l'API, récupère immédiatement le nouveau secret, met à jour le cache et relance l'appel ayant échoué selon le comportement de nouvelle tentative configuré.

Comportement d'actualisation des identifiants par langage :

Langage Déclencheur d'actualisation Intervalle d'actualisation planifiée
Java Erreur InvalidAccessKeyId ou InvalidAccessKeyId.NotFound
Python Erreur InvalidAccessKeyId ou InvalidAccessKeyId.NotFound
Go Planification uniquement — aucune nouvelle tentative automatique sur InvalidAccessKeyId Toutes les 6 heures
Le plug-in de secret RAM pour Go ne prend pas en charge la nouvelle tentative automatique en cas d'erreur InvalidAccessKeyId . Son actualisation planifiée s'exécute toutes les 6 heures. Consultez Comportement spécifique à Go pour connaître les solutions de contournement.

SDK pris en charge

Important

Le plug-in de secret RAM cible des SDK Alibaba Cloud spécifiques. Si aucun des plug-ins répertoriés ci-dessous ne correspond à votre cas d'utilisation, utilisez le client de secrets ou un SDK Alibaba Cloud standard. Consultez la référence du SDK pour obtenir la liste complète.

Java (Java 8 et versions ultérieures)

SDK Module de plug-in
Alibaba Cloud SDK for Java (V2.0) aliyun-java-tea-openapi-sdk-managed-credentials-provider
Alibaba Cloud SDK for Java (V1.0) aliyun-java-sdk-managed-credentials-provider
OSS SDK for Java V1 aliyun-oss-java-sdk-managed-credentials-provider
Message Queue for Apache RocketMQ TCP SDK for Java ons-client-managed-credentials-provider

Python

SDK Module de plug-in Notes
Alibaba Cloud SDK for Python (V1.0) aliyun-openapi-python-sdk-managed-credentials-provider V1.0 uniquement. Pour la V2.0, utilisez le client de secrets ou le SDK Alibaba Cloud.
OSS Python SDK aliyun-oss-python-sdk-managed-credentials-provider

Go

SDK Module de plug-in Notes
Alibaba Cloud SDK for Go (V1.0) alibaba-cloud-sdk-go-managed-credentials-provider V1.0 uniquement. Pour la V2.0, utilisez le client de secrets ou le SDK Alibaba Cloud.
OSS Go SDK aliyun-oss-go-sdk-managed-credentials-provider

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un utilisateur RAM dont la clé AccessKey est gérée dans KMS en tant que secret RAM

  • Un SDK Alibaba Cloud répertorié dans la section SDK pris en charge

Étape 1 : Créer un identifiant d'accès

Choisissez le scénario d'accès correspondant à votre configuration réseau.

Scénario 1 : Passerelle partagée (endpoint public ou VPC)

Utilisez ce scénario si votre application se connecte à KMS via un endpoint public ou un endpoint VPC. Deux types d'identifiants sont pris en charge : un rôle RAM d'instance ECS et une ClientKey.

Rôle RAM d'instance ECS

Un rôle RAM d'instance ECS accorde à l'instance ECS des identifiants temporaires Security Token Service (STS), permettant ainsi à votre application d'appeler les API KMS sans clé AccessKey statique.

  1. Connectez-vous à la console RAM et créez un rôle RAM avec une entité de confiance de type Elastic Compute Service.

    • Trusted Entity Type : Elastic Compute Service

    • Principal : Elastic Compute Service (ECS)

  2. Accordez au rôle RAM l'autorisation d'accéder à KMS. Deux méthodes sont disponibles :

  3. Connectez-vous à la console de gestion ECS et attachez le rôle RAM à l'instance ECS.image

Pour obtenir des instructions détaillées, consultez la page Rôles RAM d'instance.

ClientKey

Créez une ClientKey en suivant la méthode standard décrite dans la page Créer un point d'accès applicatif.

Important

Lors de la configuration du point d'accès applicatif (AAP) :

  • Définissez le paramètre Network Type sur Public ou VPC.

  • Définissez la portée de la règle d'autorisation sur Shared KMS Gateway.

Scénario 2 : Passerelle dédiée (non recommandé)

N'utilisez ce scénario que si votre application accède à KMS via une passerelle privée dédiée. Seule une ClientKey est prise en charge.

Créez une ClientKey en utilisant l'une des méthodes suivantes. Pour plus d'informations sur les ClientKeys et les AAP, consultez la page Présentation des points d'accès applicatifs.

Méthode 1 : Création rapide

La création rapide convient aux tests et au développement. La ClientKey accorde l'accès à toutes les ressources de l'instance KMS sélectionnée.

  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. Dans l'onglet Application Access, cliquez sur Create AAP et configurez les paramètres suivants dans le panneau Create AAP.

    Paramètre Description
    Mode Sélectionnez Quick Creation.
    Scope (KMS Instance) Sélectionnez l'instance KMS à laquelle votre application doit accéder.
    Application Access Point Name Saisissez un nom pour l'AAP.
    Authentication Method La valeur par défaut est ClientKey et ne peut pas être modifiée.
    Default Permission Policy La valeur par défaut est key/* et secret/*, ce qui accorde l'accès à toutes les clés et tous les secrets de l'instance KMS. Ce paramètre ne peut pas être modifié.
  3. Cliquez sur OK. Votre navigateur télécharge automatiquement les fichiers ClientKey :

    • Credential (ClientKeyContent) : clientKey_****.json

    • Password (ClientKeyPassword) : clientKey_****_Password.txt

    Important

    Le fichier ClientKey et le mot de passe sont associés et ne peuvent être téléchargés qu'au moment de la création. Si vous ne les avez pas enregistrés, créez une nouvelle ClientKey.

Méthode 2 : Création standard

La création standard vous permet de configurer des autorisations d'accès fines. Suivez les instructions de la page Créer un point d'accès applicatif.

Important

Lors de la configuration de l'AAP :

  • Définissez le paramètre Network Type sur Private.

  • Définissez la portée de la règle d'autorisation sur l'ID d'instance KMS correspondant.

Étape 2 : Configurer les paramètres d'exécution

Le plug-in lit sa configuration à partir d'un fichier nommé managed_credentials_providers.properties situé dans le répertoire d'exécution de votre application. Créez le fichier avec le contenu indiqué ci-dessous, selon votre type d'identifiant.

Si votre application ne parvient pas à localiser automatiquement le fichier de configuration par défaut, spécifiez le chemin d'accès au fichier dans le code. Consultez les exemples de SDK pour plus de détails.

Rôle RAM d'instance ECS

credentials_type=ecs_ram_role
## The name of the ECS RAM role.
credentials_role_name=#credentials_role_name#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]

ClientKey (passerelle partagée)

## The type of the access credential.
credentials_type=client_key

## The password for the ClientKey.
## Provide one of the following — read from an environment variable or from a file.
client_key_password_from_env_variable=#your_client_key_private_key_password_environment_variable_name#
client_key_password_from_file_path=#your_client_key_private_key_password_file_path#

## The path to the ClientKey file (clientKey_******.json).
client_key_private_key_path=#your_client_key_private_key_file_path#

## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]

ClientKey (passerelle dédiée)

Utilisez le paramètre cache_client_dkms_config_info qui accepte un tableau JSON. Lister plusieurs instances KMS améliore la disponibilité et prend en charge la reprise après sinistre.

Méthode 1 : Lire le mot de passe ClientKey à partir d'une variable d'environnement

cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

Exemple :

cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

Méthode 2 : Lire le mot de passe ClientKey à partir d'un fichier

Le nom de fichier par défaut du mot de passe est clientKey_****_Password.txt. Si vous avez renommé le fichier, mettez à jour le chemin d'accès en conséquence.

cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

Exemple :

cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

Paramètres de configuration

Paramètre Description
regionId ID de région de l'instance KMS. Consultez la page Régions et zones.
endpoint Nom de domaine de l'instance KMS au format {instance ID}.kms.aliyuncs.com. Vous le trouverez sur la page Instances sous Instance VPC Endpoint.
clientKeyFile Chemin d'accès absolu ou relatif au fichier JSON ClientKey (clientKey_******.json).
passwordFromFilePath Chemin d'accès au fichier contenant le ClientKeyPassword (clientKey_****_Password.txt par défaut).
passwordFromEnvVariable Nom de la variable d'environnement contenant le ClientKeyPassword.
ignoreSslCerts Indique s'il faut ignorer la validation du certificat SSL. Définissez cette option sur false en production. Lorsque la valeur est true, le paramètre caFilePath n'est pas requis.
caFilePath Chemin d'accès absolu ou relatif au fichier de certificat CA de l'instance KMS. Téléchargez-le depuis la page Instances sous Instance CA Certificate > Download.
Important

Le fichier ClientKey et son mot de passe ont une correspondance un-à-un. Les deux ne sont disponibles qu'au moment de la création de la ClientKey. Si vous ne les avez pas enregistrés, créez une nouvelle ClientKey dans l'AAP. Consultez la page Créer un point d'accès applicatif.

Étape 3 : Utiliser le plug-in de secret RAM

Tous les exemples suivent le même schéma : créez un client proxy à l'aide du nom du secret, puis appelez les API des services cloud comme d'habitude. Le plug-in gère de manière transparente la récupération et l'actualisation des identifiants.

Java

Alibaba Cloud SDK for Java (V2.0)

Compatibilité Java 9+

Ce plug-in utilise CGLIB pour le proxy dynamique de classes. Sur Java 9 ou version ultérieure, ajoutez le paramètre JVM suivant au démarrage pour éviter l'exception java.lang.reflect.InaccessibleObjectException :

--add-opens java.base/java.lang=ALL-UNNAMED

Depuis la ligne de commande :

java --add-opens java.base/java.lang=ALL-UNNAMED -jar your-application.jar

Pour les IDE tels qu'IntelliJ IDEA ou Eclipse, ajoutez ce paramètre aux options VM.

Installation

Ajoutez le plug-in à votre fichier pom.xml . Installez la dernière version — consultez le dépôt source pour connaître la version actuelle.

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-tea-openapi-sdk-managed-credentials-provider</artifactId>
    <version>[1.3.5,]</version>
</dependency>

Exemple d'utilisation : appel de DescribeInstances pour ECS

Ajoutez la dépendance du SDK ECS :

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>ecs20140526</artifactId>
    <version>7.1.0</version>
</dependency>

Ensuite, créez un client proxy et appelez l'API :

import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeInstancesResponse;
import com.aliyun.kms.secretsmanager.plugin.tea.openapi.ProxyClientCreator;
import com.google.gson.Gson;

public class AliyunTeaOpenApiProviderSample {

    public static void main(String[] args) throws Exception {
        // The name of the RAM secret you created in KMS.
        String secretName = "your-secret-name";

        /*
          If the application cannot read the default configuration file
          (managed_credentials_providers.properties) from the classpath or the
          executable JAR file, or if you need a custom file name, uncomment the
          following line. The file is resolved in this order:
          1. If "your-config-name" is an absolute path, that file is read.
          2. If "your-config-name" is a filename only, the classpath is checked
             first, then the executable JAR file.
        */
        //ConfigLoader.setConfigName("your-config-name");

        // Configure the OpenAPI client endpoint.
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
        config.endpoint = "your-product-endpoint"; // Replace with the actual service endpoint.

        // Create a proxy client backed by the RAM secret plug-in.
        Client client = ProxyClientCreator.createClient(config, Client.class, secretName);

        // Call the cloud service API.
        com.aliyun.ecs20140526.models.DescribeInstancesRequest request =
            new com.aliyun.ecs20140526.models.DescribeInstancesRequest();
        request.setRegionId("cn-hangzhou");
        DescribeInstancesResponse response = client.describeInstances(request);

        System.out.println(new Gson().toJson(response.getBody()));
    }
}

Alibaba Cloud SDK for Java (V1.0)

Installation

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>[4.3.2,5.0.0]</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core-managed-credentials-provider</artifactId>
    <version>[1.3.1,]</version>
</dependency>

Installez la dernière version. Consultez le dépôt source pour connaître la version actuelle.

Exemple d'utilisation : appel de DescribeInstanceStatus pour ECS

Ajoutez la dépendance du SDK ECS :

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-ecs</artifactId>
    <version>5.11.20</version>
</dependency>

Ensuite, créez un client proxy et appelez l'API :

import com.aliyuncs.IAcsClient;
import com.aliyuncs.ecs.model.v20140526.DescribeInstanceStatusRequest;
import com.aliyuncs.ecs.model.v20140526.DescribeInstanceStatusResponse;
import com.aliyun.kms.secretsmanager.plugin.sdkcore.ProxyAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;

public class AliyunSdkProviderSample {
    public static void main(String[] args) {
        String secretName = "******";

        /*
          To use a custom configuration file name, uncomment the following line.
          File resolution order:
          1. Absolute path — read that file directly.
          2. Filename only — check the classpath, then the executable JAR file.
        */
        //ConfigLoader.setConfigName("your-config-name");

        // Create a proxy ACS client backed by the RAM secret plug-in.
        IAcsClient client = null;
        try {
            client = new ProxyAcsClient("<the regionId of ECS>", secretName);
        } catch (ClientException e) {
            e.printStackTrace();
        }

        // Call the ECS API.
        DescribeInstanceStatusRequest request = new DescribeInstanceStatusRequest();
        try {
            DescribeInstanceStatusResponse response = client.getAcsResponse(request);
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }

        // Release plug-in resources.
        client.shutdown();
    }
}

OSS SDK for Java

Installation

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.17</version>
</dependency>
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>[2.1.0,3.10.2]</version>
    <exclusions>
        <exclusion>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-kms</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-sdk-oss-managed-credentials-provider</artifactId>
    <version>[1.3.1,]</version>
</dependency>

Installez la dernière version. Consultez le dépôt source pour connaître la version actuelle.

Exemple d'utilisation : appel de listBuckets pour OSS

import com.aliyun.kms.secretsmanager.plugin.oss.ProxyOSSClientBuilder;
import com.aliyun.oss.OSS;
import com.aliyun.oss.model.Bucket;

import java.util.List;

public class OssProviderSample {

    public static void main(String[] args) throws Exception {
        String secretName = "******";
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";

        /*
          To use a custom configuration file name, uncomment the following line.
          File resolution order:
          1. Absolute path — read that file directly.
          2. Filename only — check the classpath, then the executable JAR file.
        */
        //ConfigLoader.setConfigName("your-config-name");

        // Create a proxy OSS client backed by the RAM secret plug-in.
        OSS ossClient = new ProxyOSSClientBuilder().build(endpoint, secretName);

        // Call the OSS API.
        List<Bucket> buckets = ossClient.listBuckets();
        for (Bucket bucket : buckets) {
            if (bucket != null) {
                // Your business logic goes here.
            }
        }

        // Release plug-in resources.
        ossClient.shutdown();
    }
}

Python

Alibaba Cloud SDK for Python (V1.0)

Installation

pip install aliyun-openapi-python-sdk-managed-credentials-provider

La version 0.1.0 ou ultérieure est requise. Consultez le dépôt source pour connaître la version actuelle.

Exemple d'utilisation

from aliyun_sdk_secretsmanager_sdk_core_plugin.proxy_acs_client import ProxyAcsClient

region = "cn-hangzhou"
secretName = "******"

# Create a proxy ACS client backed by the RAM secret plug-in.
client = ProxyAcsClient(region_id=region, secret_name=secretName)

# Call Alibaba Cloud services using the client — no other code changes required.
...

# Release plug-in resources.
client.shutdown()

OSS Python SDK

Installation

pip install aliyun-oss-python-sdk-managed-credentials-provider

La version 0.1.0 ou ultérieure est requise. Consultez le dépôt source pour connaître la version actuelle.

Exemple d'utilisation

from aliyun_sdk_secretsmanager_oss_plugin.proxy_bucket import ProxyBucket
from itertools import islice

endpoint = "******"
secret_name = "******"
bucket_name = "******"

bucket = ProxyBucket(secret_name=secret_name, endpoint=endpoint, bucket_name=bucket_name)
objects = bucket.list_objects()
for b in islice(objects.object_list, 10):
    print(b.key)
bucket.shutdown()

Go

Comportement spécifique à Go

Le plug-in de secret RAM pour Go ne relance pas automatiquement les opérations lorsqu'il détecte une erreur InvalidAccessKeyId . L'actualisation des identifiants repose sur un mécanisme planifié qui s'exécute toutes les 6 heures.

Si vous renouvelez les secrets manuellement, définissez la fenêtre de rotation sur au moins 12 heures afin d'éviter les interruptions de tâches dues à l'expiration des identifiants. Pour des fenêtres de rotation plus courtes, utilisez l'une des solutions de contournement présentées dans la FAQ.

Alibaba Cloud SDK for Go (V1.0)

Installation

Important

Ce plug-in nécessite alibaba-cloud-sdk-go dans une version antérieure à la v1.63.0. Vérifiez la version dans le fichier go.mod du plug-in avant l'installation.

Installez la dernière version depuis le dépôt source.

Méthode 1 — Ajoutez au fichier go.mod :

require (
    github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/alibaba-cloud-sdk-go-managed-credentials-provider vX.X.X
)

Méthode 2 — Utilisez go get :

go get -u github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/alibaba-cloud-sdk-go-managed-credentials-provider

Exemple d'utilisation : appel de DescribeInstances pour ECS

package sample

import (
    "fmt"
    "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
    sdkcoreprovider "github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/alibaba-cloud-sdk-go-managed-credentials-provider/sdk"
)

func main() {
    secretName := "********"
    regionId := "cn-hangzhou"

    // Create a proxy client backed by the RAM secret plug-in.
    client, err := sdkcoreprovider.GetClient(&ecs.Client{}, regionId, secretName)
    if err != nil {
        fmt.Println(err)
        return
    }
    ecsClient := client.(*ecs.Client)

    request := ecs.CreateDescribeInstancesRequest()
    instancesResponse, err := ecsClient.DescribeInstances(request)
    if err != nil {
        fmt.Println(err)
        return
    }

    for _, instance := range instancesResponse.Instances.Instance {
        // Your business logic goes here.
    }
}

OSS Go SDK

Installation

Important

Ce plug-in nécessite alibaba-cloud-sdk-go dans une version antérieure à la v1.63.0. Vérifiez la version dans le fichier go.mod du plug-in avant l'installation.

Installez la dernière version depuis le dépôt source.

Méthode 1 — Ajoutez au fichier go.mod :

require (
    github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/aliyun-oss-go-sdk-managed-credentials-provider vX.X.X
)

Méthode 2 — Utilisez go get :

go get -u github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/aliyun-oss-go-sdk-managed-credentials-provider

Exemple d'utilisation

package sample

import (
    "fmt"
    ossprovider "aliyun-oss-go-sdk-managed-credentials-provider/sdk"
)

func main() {
    secretName := "********"
    endpoint := "https://oss-cn-hangzhou.aliyuncs.com"

    // Create a proxy OSS client backed by the RAM secret plug-in.
    client, err := ossprovider.New(endpoint, secretName)
    if err != nil {
        fmt.Println(err)
        return
    }

    result, err := client.ListBuckets()
    if err != nil {
        fmt.Println(err)
        return
    }
    for _, bucket := range result.Buckets {
        // Your business logic goes here.
    }

    // Release plug-in resources.
    client.Shutdown()
}

FAQ

Le plug-in de secret RAM pour Go renvoie InvalidAccessKeyId après l'expiration d'un identifiant. Que faire ?

Le plug-in Go ne relance pas automatiquement les opérations en cas d'erreur InvalidAccessKeyId ; un secret faisant l'objet d'une rotation manuelle peut donc expirer avant que l'actualisation planifiée toutes les 6 heures n'intervienne. Utilisez l'une des approches suivantes :

  1. Attendre l'actualisation automatique — Pour les secrets faisant l'objet d'une rotation automatique, le mécanisme d'actualisation planifiée du plug-in (qui s'exécute toutes les 6 heures) récupère automatiquement le nouveau secret.

  2. Actualisation à la demande — Interceptez l'exception et appelez sdk.RefreshSecretInfo(secretName) pour récupérer immédiatement le dernier secret.

  3. Actualisation planifiée — Configurez une tâche périodique qui appelle sdk.RefreshSecretInfo(secretName) à une fréquence correspondant à votre fenêtre de rotation, afin que le nouveau secret soit toujours récupéré avant l'expiration de l'actuel.

  4. Ajuster la fenêtre de rotation — Pour les secrets faisant l'objet d'une rotation manuelle, définissez la fenêtre de rotation sur au moins 12 heures. Cela laisse suffisamment de temps à l'actualisation planifiée toutes les 6 heures pour mettre à jour le cache avant l'expiration de l'ancien identifiant.