Tous les produits
Search
Centre de documentation

Alibaba Cloud SDK:Gérer les identifiants d'accès

Dernière mise à jour :Aug 11, 2026

Configurez les identifiants d'authentification du client Alibaba Cloud Python SDK V1.0 pour effectuer des requêtes API.

Le SDK prend en charge cinq types d'identifiants. Choisissez celui qui correspond à votre environnement de déploiement :

Type d'identifiant

Cas d'usage

Paire d'AccessKey

Développement local et tests avec un compte d'utilisateur RAM

Identifiants STS

Accès de courte durée requis ou octroi de permissions temporaires à d'autres services

Identifiants de rôle RAM

Votre application endosse un rôle RAM et nécessite un renouvellement automatique du jeton STS

Identifiants de rôle RAM ECS

Votre code s'exécute sur une instance ECS associée à un rôle RAM

Identifiants par défaut

Découverte automatique des identifiants par le SDK via les variables d'environnement

Remarque

Ne codez jamais vos identifiants en dur dans le code source et ne les validez pas dans un système de contrôle de version. Stockez-les dans des variables d'environnement ou dans un gestionnaire de secrets.

Utiliser une paire d'AccessKey

Utilisez cette méthode pour le développement local et les tests lors d'une authentification en tant qu'utilisateur RAM. Stockez l'AccessKey ID et l'AccessKey secret dans des variables d'environnement, puis transmettez-les à AcsClient.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

# Initialize the client.
client = AcsClient(
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Get the AccessKey ID of the RAM user from an environment variable.
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Get the AccessKey secret of the RAM user from an environment variable.
    '<region_id>'  # The region ID.
)

# Create an API request and set parameters.
request = DescribeRegionsRequest()

# Send the request.
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Utiliser des identifiants STS

Utilisez cette méthode lorsque vous avez besoin d'un accès temporaire. Security Token Service (STS) émet des identifiants de sécurité temporaires (AccessKey ID, AccessKey secret et jeton de sécurité) qui expirent automatiquement.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkecs.request.v20140526.AcceptInquiredSystemEventRequest import AcceptInquiredSystemEventRequest

cred = StsTokenCredential(
    sts_access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Obtain the AccessKey ID provided by STS from environment variables.
    sts_access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Obtain the AccessKey secret provided by STS from environment variables.
    sts_token=os.environ.get('ALIBABA_CLOUD_SECURITY_TOKEN')  # Obtain the STS token provided by STS from environment variables.
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = AcceptInquiredSystemEventRequest()
request.set_accept_format('json')
response = client.do_action_with_exception(request)

print(str(response, encoding='utf-8'))

Utiliser des identifiants de rôle RAM

Utilisez cette méthode lorsque votre application doit endosser un rôle RAM. Le client sollicite et renouvelle automatiquement les jetons STS avant chaque appel API. Vous pouvez également demander manuellement des jetons STS et créer un client STS.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import RamRoleArnCredential
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

cred = RamRoleArnCredential(
    sts_access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Get the AccessKey ID of the RAM user from an environment variable.
    sts_access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Get the AccessKey secret of the RAM user from an environment variable.
    role_arn='<ram_role_arn>',
    session_role_name='<session_role_name>'
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = DescribeRegionsRequest()
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Utiliser des identifiants de rôle RAM ECS

Utilisez cette méthode lorsque votre code s'exécute sur une instance ECS dotée d'un rôle RAM attaché. Le SDK récupère automatiquement les identifiants de sécurité temporaires depuis l'endpoint de métadonnées de l'instance à l'adresse http://100.100.100.200/latest/meta-data/ram/security-credentials/<role_name>. Aucune configuration d'identifiants n'est nécessaire dans votre code.

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import EcsRamRoleCredential
from aliyunsdkecs.request.v20140526.AcceptInquiredSystemEventRequest import AcceptInquiredSystemEventRequest

cred = EcsRamRoleCredential(
    role_name='<ram_role_name>'
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = AcceptInquiredSystemEventRequest()
request.set_accept_format('json')
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Utiliser les identifiants par défaut

Utilisez cette méthode pour permettre au SDK de découvrir automatiquement les identifiants. Le SDK vérifie les variables d'environnement ALIYUN_ACCESS_KEY_ID et ALIYUN_ACCESS_KEY_SECRET. Si toutes deux sont définies et non vides, le SDK les utilise pour créer un identifiant par défaut.

from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

# Initialize the client.
client = AcsClient(
    region_id='<region_id>'  # The region ID.
)

# Create an API request and set parameters.
request = DescribeRegionsRequest()

# Send the request.
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Bonnes pratiques de sécurité

  • Utilisez des variables d'environnement ou un gestionnaire de secrets. Ne codez jamais vos identifiants en dur dans le code source et ne les validez pas dans un dépôt.

  • Appliquez le principe du moindre privilège. N'accordez aux utilisateurs et rôles RAM que les permissions strictement nécessaires.

  • Privilégiez les identifiants de rôle RAM ou de rôle RAM ECS en production. Ces deux types génèrent des jetons STS éphémères avec rotation automatique, limitant ainsi les risques de fuite d'identifiants.

  • Renouvelez régulièrement vos paires d'AccessKey. Révoquez toute paire d'AccessKey inutilisée.

  • Utilisez des identifiants STS pour les accès temporaires. Lors de l'octroi d'accès à un tiers ou à un processus éphémère, émettez des identifiants STS avec une expiration adaptée plutôt que de partager une paire d'AccessKey permanente.