Tous les produits
Search
Centre de documentation

Alibaba Cloud SDK:Bonnes pratiques pour l'accès aux API OpenAPI d'Alibaba Cloud

Dernière mise à jour :Aug 09, 2026

La divulgation d'identifiants d'accès peut compromettre vos ressources cloud et vos opérations commerciales. Sécurisez vos identifiants en choisissant la méthode d'authentification adaptée à chaque scénario de déploiement.

Qu'est-ce qu'un identifiant d'accès ?

Un identifiant d'accès permet de vérifier votre identité lorsque vous utilisez des outils de développement (API, CLI, SDK ou Terraform) pour accéder à Alibaba Cloud.

  • Paire AccessKey : composée d'un AccessKey ID et d'un AccessKey Secret. Il s'agit d'un identifiant permanent pour les comptes Alibaba Cloud et les utilisateurs RAM. Créer une paire AccessKey.

  • Jeton STS : un jeton Security Token Service (STS) est un identifiant temporaire délivré à un rôle RAM, avec une période de validité et une étendue d'autorisations personnalisées. Qu'est-ce que STS ?.

Causes courantes de fuite d'identifiants

  • Les paires AccessKey codées en dur dans le code applicatif sont exposées à toute personne disposant d'un accès en lecture au référentiel et deviennent publiques si le code est publié sur des communautés open source ou des services d'hébergement de code.

  • Les paires AccessKey intégrées dans le code côté client peuvent être extraites par décompilation de l'application.

  • La documentation technique ou les documents partagés contiennent des informations sur les paires AccessKey.

  • Les exemples de code fournis dans la documentation produit contiennent des informations sur les paires AccessKey.

  • Les réponses d'API qui manquent de contrôles d'autorisation appropriés renvoient des informations d'identification d'accès.

Méthodes sécurisées pour l'utilisation des identifiants d'accès

Réduisez au minimum la durée d'exposition et l'étendue des identifiants. Choisissez une méthode sécurisée en fonction de votre scénario de déploiement.

Méthode

Scénario

Utiliser les rôles RAM pour comptes de service (RRSA)

Applications déployées dans un cluster ACK. RRSA isole les autorisations au niveau du rôle RAM, de sorte que chaque application assume un rôle unique.

Utiliser un rôle RAM d'instance

Applications déployées sur une instance ECS. L'instance assume un rôle RAM pour accéder aux API OpenAPI d'Alibaba Cloud.

Utiliser un jeton STS pour le développement et le débogage

Personnel de développement, d'exploitation et de produit ayant besoin d'identifiants pour les opérations, la gestion ou le débogage. Utilisez le SSO basé sur les rôles pour assumer un rôle RAM et obtenir un jeton STS.

Utiliser un jeton STS dans Function Compute

Applications déployées dans Function Compute (FC) nécessitant un accès à d'autres ressources cloud. Associez la fonction FC à un rôle RAM pour utiliser un jeton STS plutôt que des identifiants permanents.

Configurer des variables d'environnement système

Scénarios où les solutions précédentes ne s'appliquent pas. Stockez les identifiants dans des variables d'environnement système.

Utiliser les rôles RAM pour comptes de service (RRSA)

Prérequis

  • Cette méthode s'applique aux services cloud compatibles avec RAM.

  • Le SDK Alibaba Cloud V2.0 est utilisé.

  • Les SDK personnalisés pour les produits de passerelle auto-gérés ne peuvent pas être utilisés.

Fonctionnement

3

Procédure

Exemples de code

Utiliser un rôle RAM d'instance

Prérequis

  • Cette méthode s'applique aux services cloud compatibles avec RAM.

  • Le SDK Alibaba Cloud V2.0 est utilisé.

  • Les SDK personnalisés pour les produits de passerelle auto-gérés ne peuvent pas être utilisés.

Fonctionnement

Vous pouvez attacher un rôle Resource Access Management (RAM) d'instance à une instance Elastic Compute Service (ECS). L'instance ECS peut alors utiliser l'identifiant temporaire Security Token Service (STS) du rôle RAM d'instance pour accéder aux API d'autres services Alibaba Cloud. L'identifiant temporaire STS est mis à jour périodiquement. Cela garantit la sécurité de votre paire AccessKey et met en œuvre un contrôle d'accès et une gestion des autorisations granulaires via RAM.

1

Flux de travail :

  1. L'application récupère un jeton STS en accédant aux métadonnées de l'instance ECS.

  2. L'application utilise le jeton STS pour accéder aux ressources cloud. Qu'est-ce que STS ?.

Procédure

Attribuez un rôle RAM à une instance ECS. Rôles RAM d'instance.

Exemples de code

Alibaba Cloud Credentials simplifie l'utilisation des rôles RAM d'instance. Ces exemples appellent l'opération DescribeRegions d'ECS avec un rôle RAM d'instance.

Langage de programmation

Exemple de code

Go

Exemple de code Go

Java

Exemple de code Java

Python

Exemple de code Python

PHP

Exemple de code PHP

Node.js

Exemple de code Node.js

.NET

Exemple de code .NET

Jeton STS pour le développement et le débogage

Scénario

Pour le personnel de développement, d'exploitation et de produit ayant besoin d'identifiants pour les opérations, la gestion ou le débogage, utilisez le SSO basé sur les rôles pour assumer un rôle RAM et obtenir un jeton STS au lieu d'une paire AccessKey permanente.

Procédure

Utiliser un jeton STS dans Function Compute

Scénario

Au lieu de coder en dur la paire AccessKey d'un utilisateur RAM dans une fonction FC, associez la fonction à un rôle RAM. L'application utilise alors un jeton STS pour accéder aux ressources cloud, évitant ainsi la fuite d'identifiants permanents.

Architecture de la solution

Les rôles de fonction FC gèrent les identifiants temporaires au moment de l'exécution, évitant ainsi l'exposition à long terme de la paire AccessKey. Configurez le rôle et les autorisations une seule fois ; les fonctions obtiennent automatiquement des identifiants temporaires.

Un administrateur crée un rôle approuvé par Function Compute et lui accorde les autorisations requises (1), puis associe le rôle à la fonction FC (2). L'application récupère un jeton STS à partir du contexte de la fonction (3). Au cours de ce processus, Function Compute appelle AssumeRole pour obtenir le jeton STS auprès de RAM/STS (i). L'application utilise le jeton STS pour appeler l'API de la ressource cloud cible (4), et l'API de la ressource renvoie le résultat à l'application cliente.

image

Procédure

Accorder à Function Compute les autorisations d'accès à d'autres services Alibaba Cloud.

Configurer des variables d'environnement système

Procédure

Configurez les variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET.

  • Linux et macOS

    Exécutez les commandes suivantes :

    export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>

    Remplacez <access_key_id> par votre AccessKey ID et <access_key_secret> par votre AccessKey Secret.

  • Windows

    1. Créez un fichier de variables d'environnement, ajoutez les variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET au fichier, puis spécifiez votre AccessKey ID pour ALIBABA_CLOUD_ACCESS_KEY_ID et votre AccessKey Secret pour ALIBABA_CLOUD_ACCESS_KEY_SECRET.

    2. Redémarrez le système d'exploitation Windows.

Exemples de code du SDK Alibaba Cloud

Les SDK Alibaba Cloud créent un identifiant par défaut à partir des variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET et l'utilisent pour authentifier automatiquement les requêtes. Ces exemples appellent l'opération DescribeRegions d'ECS.

Langage de programmation

Exemple de code

Go

Exemple de code Go

Java

Exemple de code Java

Python

Exemple de code Python

PHP

Exemple de code PHP

Node.js

Exemple de code Node.js

.NET

Exemple de code .NET

Exemple de code générique

Si vous ne pouvez pas utiliser les SDK Alibaba Cloud (par exemple, des SDK personnalisés pour des produits de passerelle auto-gérés), chargez directement les variables d'environnement. Exemple en Java :

import com.aliyun.credentials.Client;
import com.aliyun.credentials.models.Config;

public class DemoTest {
    public static void main(String[] args) throws Exception{
        Config config = new Config();
        // Specify the type of credential you want to use.
        config.setType("access_key");
        // The AccessKeyId of your RAM user.
        config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
        // The AccessKeySecret of your RAM user.
        config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        Client client = new Client(config);
    }
}

Remédier aux fuites d'identifiants

Références

Bonnes pratiques connexes en matière de sécurité cloud :