Tous les produits
Search
Centre de documentation

Resource Access Management:Gérer les identifiants de service (clés API)

Dernière mise à jour :Aug 09, 2026

Une clé API, également appelée identifiant de service dans OpenAPI (ServiceCredential), est un type d'identifiant émis par Resource Access Management (RAM) pour accéder à un service cloud spécifique. Elle sert exclusivement à appeler l'API de ce service. Cette rubrique décrit les clés API et explique comment gérer leur cycle de vie.

Pour authentifier vos appels programmatiques à l'OpenAPI d'un service cloud spécifique, utilisez une clé API. Chaque clé API est associée à un seul service cloud lors de sa création et ne permet d'appeler que les API de ce service. Cette conception réduit la surface d'attaque et offre une alternative plus sécurisée aux AccessKeys.

Principales caractéristiques

  • Isolation au niveau du service : Chaque clé API est associée à un seul service cloud (spécifié par son ServiceName) lors de la création. Elle ne permet d'appeler que les API de ce service et interdit les appels inter-services. Vous ne pouvez pas étendre sa portée via des politiques d'autorisation.

  • Portée des autorisations minimisée : Les autorisations effectives d'une clé API correspondent à l'intersection entre les autorisations de l'utilisateur RAM associé et la portée du service cloud lié. Même si l'utilisateur RAM dispose d'autorisations pour plusieurs services, la clé API reste restreinte à son service désigné.

  • Réservée aux utilisateurs RAM : Seuls les utilisateurs RAM peuvent créer des clés API. Les comptes Alibaba Cloud (comptes racine) ne le peuvent pas. Cette pratique limite l'impact potentiel d'une fuite d'identifiants.

  • Conventions de dénomination : Le terme ServiceCredential est utilisé dans OpenAPI et les SDK, tandis que la console emploie le terme plus convivial API Key. Ces deux termes désignent la même ressource.

Clés API vs AccessKeys

Les clés API et les AccessKeys sont toutes deux des identifiants à long terme pour les utilisateurs RAM. Elles diffèrent toutefois par leur portée de service, leurs méthodes d'émission et leurs cas d'utilisation.

Caractéristique

Clé API

AccessKey

Portée du service

Associée à un seul service cloud lors de la création ; ne permet d'appeler que l'OpenAPI de ce service.

Aucune restriction de service. Permet d'appeler tout service cloud auquel l'utilisateur RAM est autorisé à accéder.

Modèle d'autorisation

Les autorisations effectives correspondent à l'intersection entre les autorisations de l'utilisateur RAM et la portée du service cloud lié.

Hérite intégralement de toutes les autorisations accordées à l'utilisateur RAM.

Identités prises en charge

Seuls les utilisateurs RAM peuvent en créer. Les comptes Alibaba Cloud (comptes racine) ne sont pas pris en charge.

Les comptes Alibaba Cloud et les utilisateurs RAM peuvent en créer.

Quota

Deux par utilisateur RAM et par service cloud. Ce quota est fixe.

Deux par identité.

Période d'expiration

L'expiration peut être définie de 1 à 36 600 jours ou configurée pour ne jamais expirer. Les clés expirées sont définitivement désactivées et irrécupérables.

Validité à long terme sans mécanisme d'expiration intégré.

Cas d'utilisation typiques

Appel de modèles d'IA, intégration avec des plateformes tierces ou des outils de développement, et scénarios nécessitant une isolation des identifiants au niveau du service.

Appels généraux OpenAPI/SDK, orchestration inter-services et automatisation CI/CD.

États du cycle de vie

Une clé API peut se trouver dans l'un des trois états suivants au cours de son cycle de vie :

  • Active : L'identifiant permet d'appeler l'OpenAPI du service cloud lié. Il s'agit de l'état par défaut lors de la création.

  • Inactive : L'identifiant est temporairement désactivé. Vous pouvez le réactiver à l'état Active. Une clé doit être inactive avant suppression.

  • Expirée : Le système fait automatiquement passer le statut de la clé à Expirée lorsque l'heure d'expiration est atteinte. L'identifiant devient définitivement invalide et ne peut pas être récupéré. Vous devez créer une nouvelle clé.

Quotas et expiration

  • Quota : Chaque utilisateur RAM peut créer au maximum deux clés API par service cloud, y compris les clés Active et Inactive. Ce quota est fixe. Les clés expirées comptent dans ce quota, contrairement aux clés supprimées.

  • Unité de la période d'expiration : Jours.

  • Plage de valeurs : La console propose des préréglages de 1, 7, 30 et 90 jours, ou vous pouvez configurer une clé pour qu'elle n'expire jamais. Les valeurs personnalisées sont également prises en charge.

  • Valeur par défaut OpenAPI : Si vous omettez le paramètre CredentialAgeDays lors de l'appel à l'opération CreateServiceCredential, la clé est configurée pour ne jamais expirer.

  • L'expiration est définitive : Lorsqu'une clé expire, son statut passe à Expired et elle devient définitivement invalide. Elle ne peut pas être réactivée. Vous devez supprimer la clé expirée et en créer une nouvelle.

Important

Par mesure de sécurité recommandée, définissez une période d'expiration raisonnable pour les clés API en fonction du cycle de vie de votre application, plutôt que de créer des clés qui n'expirent jamais. Renouvelez les identifiants dans votre application avant leur expiration afin d'éviter toute interruption de service.

Services cloud pris en charge

Dans la console RAM, accédez à la page User Details, puis à l'onglet Credential Management et à la section API Keys, et cliquez sur Create API Key. La liste déroulante Cloud Service répertorie les services disponibles pour votre compte. Reportez-vous à la documentation du service spécifique pour obtenir la liste des API prises en charge.

Autogestion pour les utilisateurs RAM

Un compte Alibaba Cloud ou un administrateur RAM disposant des autorisations suffisantes peut utiliser le paramètre AllowUserToManageServiceCredential dans les paramètres de sécurité RAM pour contrôler si les utilisateurs RAM peuvent gérer leurs propres clés API. Ce paramètre présente les deux états suivants :

  • Autoriser l'autogestion : Un utilisateur RAM peut se connecter à la console ou appeler l'OpenAPI pour créer, mettre à jour ou supprimer ses propres clés API, à condition qu'aucune politique d'autorisation n'interdise explicitement ces actions (c'est-à-dire qu'aucune politique Deny explicite n'existe).

  • Autogestion non autorisée : Les utilisateurs RAM ne peuvent pas gérer leurs propres clés API. Un administrateur disposant d'autorisations telles que ram:CreateServiceCredential doit créer et maintenir les clés.

Méthodes d'autorisation

Choisissez l'une des trois méthodes suivantes pour accorder des autorisations selon vos exigences en matière de sécurité et de gouvernance :

  • Accorder une politique système aux administrateurs RAM (gestion centralisée) : Attachez la politique système AliyunRAMFullAccess à vos administrateurs afin qu'ils puissent créer et maintenir des clés API pour tous les utilisateurs. Cette politique fournit un accès administratif complet à RAM et convient aux environnements où une équipe dédiée gère tous les identifiants des utilisateurs RAM.

  • Activer le paramètre global d'autogestion (non recommandé pour la production) : Après avoir activé AllowUserToManageServiceCredential dans les paramètres de sécurité RAM, tous les utilisateurs RAM peuvent gérer leurs propres clés API, sauf restriction explicite par une politique Deny. Cette option offre une flexibilité pour les équipes, mais accorde des autorisations larges. Nous vous recommandons de l'utiliser uniquement dans des environnements de test ou sandbox contrôlés.

  • Attacher une politique personnalisée (recommandé) : Laissez le paramètre global d'autogestion désactivé et attachez une politique personnalisée uniquement aux utilisateurs RAM spécifiques qui doivent gérer leurs propres clés API. Restreignez la Resource à l'identité propre de l'utilisateur. Si nécessaire, ajoutez une condition ram:ServiceCredentialServiceName pour restreindre davantage les autorisations à un service cloud spécifique. Cette méthode permet d'accorder des autorisations précises à des utilisateurs individuels sans activer l'autogestion pour l'ensemble du compte.

Avertissement

Lorsque le paramètre global AllowUserToManageServiceCredential est activé, tous les utilisateurs RAM peuvent gérer leurs propres clés API (y compris les opérations de création, d'activation, de désactivation et de suppression), sauf si un administrateur attache une politique d'autorisation qui refuse ces actions. Pour les environnements de production, nous vous recommandons vivement de laisser ce paramètre désactivé et d'utiliser des politiques personnalisées pour accorder des autorisations au cas par cas.

Exemples de politiques personnalisées

Les exemples de politiques suivants restreignent la Resource à l'identité propre de l'utilisateur RAM. Une fois attachée à un utilisateur RAM, la politique lui permet d'effectuer les actions spécifiées sur son propre compte. Avant d'utiliser une politique, remplacez ACCOUNT_ID par votre ID de compte (que vous pouvez trouver dans le Alibaba Cloud Account Center) et remplacez USER_NAME par le nom de connexion de l'utilisateur RAM cible (sans le suffixe @).

Créer des clés API

Cette politique permet à un utilisateur de créer et de lister ses propres clés API, mais ne lui permet pas de modifier ou de supprimer des clés. Cela convient pour accorder des autorisations minimales selon le principe du moindre privilège.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ram:CreateServiceCredential",
        "ram:ListServiceCredentials"
      ],
      "Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME"
    }
  ]
}

Gestion complète du cycle de vie

Cette politique permet à un utilisateur d'effectuer toutes les opérations de gestion de ses propres clés API, y compris la création, la liste, le renommage, l'activation, la désactivation et la suppression.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ram:CreateServiceCredential",
        "ram:ListServiceCredentials",
        "ram:GetServiceCredential",
        "ram:UpdateServiceCredential",
        "ram:DeleteServiceCredential"
      ],
      "Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME"
    }
  ]
}

Gestion spécifique au service

Cette politique s'appuie sur les autorisations de gestion complètes en ajoutant une condition ram:ServiceCredentialServiceName. Elle permet uniquement à l'utilisateur de gérer les clés API pour un service cloud spécifique (dans cet exemple, ak.aliyuncs.com). Cela est utile pour les scénarios d'autorisation granulaire où la gestion des identifiants est déléguée en fonction du service cloud.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ram:CreateServiceCredential",
        "ram:ListServiceCredentials",
        "ram:GetServiceCredential",
        "ram:UpdateServiceCredential",
        "ram:DeleteServiceCredential"
      ],
      "Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME",
      "Condition": {
        "StringEquals": {
          "ram:ServiceCredentialServiceName": "ak.aliyuncs.com"
        }
      }
    }
  ]
}

Structure des données des clés API

Chaque clé API comprend les champs principaux suivants. Les noms de champs renvoyés par OpenAPI sont préfixés par ServiceCredential, tandis que les noms de champs dans la console sont plus conviviaux.

Champ OpenAPI

Champ Console

Description

ServiceCredentialId

ID

Un ID unique généré par le système, préfixé par SC. Utilisez cet ID pour référencer la clé dans les opérations de gestion telles que l'activation, la désactivation et la suppression.

ServiceCredentialName

Name

Un nom convivial pour identifier l'objectif de la clé. La console remplit automatiquement ce champ avec un nom tel que {CloudServiceName}_apikey_{RandomCharacters}. Vous pouvez modifier ce nom après la création.

ServiceName

Cloud Service

L'identifiant du service cloud lié, tel que ak.aliyuncs.com. Il est défini lors de la création et ne peut pas être modifié.

ServiceCredentialSecret

API Key

Le secret de l'identifiant. Il n'est affiché qu'une seule fois lors de la création et n'est pas récupérable par la suite via l'API ou la console.

CreateTime

Creation Time

L'heure de création en UTC, au format ISO-8601. La console affiche cette valeur dans votre heure locale.

ExpirationTime

Expiration Time

L'heure à laquelle l'identifiant expire et dont le statut passe à Expired. La valeur est nulle pour les clés qui n'expirent jamais, ce qui est indiqué par « Never expires » dans la console.

Status

Status

Le statut de l'identifiant. Les valeurs valides sont Active, Inactive et Expired.

UserPrincipalName

User

Le nom de connexion de l'utilisateur RAM (User Principal Name), tel que us**@account.onaliyun.com.

Recommandations de sécurité

  • Définissez une période d'expiration pour les clés API. Évitez de configurer les clés de test à court terme pour qu'elles n'expirent jamais. Pour les autres cas d'utilisation, définissez une période d'expiration appropriée, telle que 30 ou 90 jours, en fonction du cycle d'utilisation du service, et renouvelez la clé avant son expiration.

  • Copiez immédiatement le secret de la clé API ou téléchargez le fichier CSV après la création d'une clé. Une fois la fenêtre contextuelle fermée, vous ne pouvez plus récupérer le secret. Si vous perdez le secret, vous devez supprimer la clé et en créer une nouvelle.

  • Traitez les clés API comme des identifiants hautement sensibles. Ne les commitez pas en texte clair dans les dépôts de code, les fichiers de configuration ou les journaux. Nous vous recommandons d'utiliser un service de gestion des secrets ou de les chiffrer avec KMS avant le stockage.