Description des clés d'API

Une clé d'interface de programmation (clé d'API) est un code unique transmis à une interface de programmation (API) afin d'identifier l'application ou l'utilisateur appelant. Les clés d'API permettent de suivre et contrôler la façon dont l'API est utilisée, par exemple pour empêcher toute utilisation malveillante ou abusive de l'API. La clé d'API fait souvent office à la fois d'identificateur unique et de jeton confidentiel pour l'authentification. Elle dispose également d'un ensemble de droits d'accès spécifique à l'identité qui lui est associée.

Pour voir vos clés API, allez dans Gérer > Accès (IAM) > Clés API dans la console IBM Cloud.

Clés d'API IBM Cloud pour les utilisateurs

Les clés d'API IBM Cloud® sont associées à l'identité d'un utilisateur. Chaque clé API créée par un utilisateur a le même accès que celui qui lui est attribué dans tous les comptes dont il est membre. Comme la clé API hérite de tous les accès de l'utilisateur, elle peut permettre d'accéder aux ressources de n'importe quel compte pour lequel l'utilisateur dispose d'autorisations. C'est pourquoi les clés d'API utilisateur doivent être traitées de la même manière qu'un nom d'utilisateur et un mot de passe et ne doivent jamais être partagées.

Utilisation des identifiants fonctionnels

Les clés d'API IBM Cloud pour les utilisateurs peuvent être créées et associées à un ID fonctionnel. Un ID fonctionnel est un ID utilisateur créé pour représenter un programme, une application ou un service. L'ID fonctionnel peut être invité à rejoindre un compte et se voir affecter uniquement l'accès pour un but spécifique, comme l'interaction avec une application ou une ressource donnée.

Si un service nécessite une clé API utilisateur pour interagir avec d'autres services ou applications, utilisez une clé API utilisateur d'identification fonctionnelle. En utilisant la clé API associée à l'identifiant fonctionnel, vous ne fournissez que l'accès nécessaire à ce service. Le partage d'une clé API d'identification de l'utilisateur réel avec un service permet à ce dernier d'accéder à toutes les ressources auxquelles l'utilisateur peut accéder à travers plusieurs comptes, ce qui est fortement déconseillé.

Seul l'utilisateur auquel la clé API est associée et un administrateur du service IAM peuvent la supprimer. Vous pouvez utiliser les clés API IBM Cloud dans l'interface de ligne de commande (CLI) ou dans le cadre de l'automatisation pour vous connecter en tant qu'utilisateur. Vous pouvez également utiliser les clés d'API IBM Cloud pour accéder aux API d'infrastructure classique.

Pour plus d'informations sur l'utilisation d'une clé d'API associée à votre identité utilisateur, voirGestion des clés d'API d'utilisateur.

Autres types de clé d'API

En plus de vos clés API IBM Cloud, d'autres types de clés API sont disponibles :

Clés d'API d'ID de service
Les ID de service sont utilisés pour connecter une application à l'intérieur ou à l'extérieur de IBM Cloud à un service IBM Cloud. Les clés d'API d'ID de service héritent de l'ensemble de l'accès affecté à l'ID de service spécifique. Pour plus d'informations, voir Gestion des clés d'API d'ID de service.
Clés d'API d'infrastructure classique
Les clés d'API d'infrastructure classique permettent d'appeler les API pour les services d'infrastructure classique. Vous ne pouvez créer qu'une seule clé d'API d'infrastructure classique à la fois. Pour plus d'informations, voir Gestion des clés d'API d'infrastructure classique.
Clés d'API spécifiques au service
Certains services sur IBM Cloud peuvent fournir une clé API lorsque vous travaillez avec le service. Il s'agit de clés API générées automatiquement et associées à un identifiant de service. Par exemple, si vous consultez les détails du produit d'un service Watson à partir de la page Liste des ressources, vous pouvez créer un identifiant comprenant une clé API et un secret spécifiques à ce service sur la page Identifiants de service.

Les clés d'API IBM Cloud permettent également d'accéder aux API d'infrastructure classique.

Comprendre les meilleures pratiques de sécurité pour les clés API

La mise en œuvre des meilleures pratiques suivantes pour les clés d'API peut contribuer à renforcer la sécurité et la sûreté de vos charges de travail :

  • Évitez d'intégrer des clés dans le code afin de minimiser les risques d'exposition.
  • Effectuez une rotation régulière des clés API afin de limiter la fenêtre de vulnérabilité. Secrets Manager peut vous aider à automatiser cette opération. Pour plus d'informations, voir Rotation des secrets.
  • Appliquer le principe du moindre privilège lors de l'attribution des autorisations.
  • Maintenez les contacts de sécurité à jour afin de recevoir des notifications en temps utile.
  • Surveillez Activity Tracker Event Routing pour détecter toute utilisation suspecte de la clé API.
  • Fixer des dates d'expiration pour les clés d'API, le cas échéant.
  • Configurez le paramètre d'action en cas de fuite pour désactiver ou supprimer automatiquement une clé d'API si elle est découverte dans une fuite.

Gestion des clés d'API

Pour gérer les clés d'API IBM Cloud associées à votre identité d'utilisateur ou celles que vous avez le droit de gérer pour d'autres utilisateurs du compte, allez à Gérer > Accès (IAM) > Clés d'API dans la console IBM Cloud.

Sur la page IBM Cloud API keys, vous pouvez créer, modifier ou supprimer vos propres clés d'API IBM Cloud. Vous pouvez également gérer toutes les clés API de l'infrastructure classique pour les utilisateurs de votre hiérarchie. Si vous êtes le propriétaire du compte ou un utilisateur disposant de l'accès nécessaire pour gérer les clés API d'autres utilisateurs dans le compte, vous pouvez utiliser le filtre View pour répertorier et gérer ces clés API.

Expiration de la clé API

Lorsqu'une clé API est créée ou mise à jour, vous pouvez définir une date d'expiration. Si une date d'expiration est spécifiée, la clé API n'est plus valide après cette date. Les clés API expirées sont automatiquement supprimées 90 jours après leur expiration. Quelques jours avant l'expiration d'une clé API, une notification est envoyée via le service de notification IBM Cloud à l'utilisateur qui possède la clé API (pour les clés de niveau utilisateur) ou au propriétaire du compte (pour les clés API d'identifiant de service).

Protection contre les fuites de clés API

Les clés API sont des identifiants puissants qui permettent d'accéder aux ressources et aux services de votre site IBM Cloud. Lorsque ces clés sont exposées par inadvertance dans des référentiels publics, des journaux ou d'autres emplacements, elles peuvent créer des risques importants pour la sécurité. Les acteurs malveillants analysent activement les référentiels publics à la recherche d'informations d'identification divulguées et peuvent rapidement les exploiter pour obtenir un accès non autorisé, effectuer des opérations de minage de crypto-monnaie ou d'autres activités malveillantes, souvent dans les minutes qui suivent l'exposition à l'information. En fonction de l'accès accordé à l'utilisateur ou à l'identifiant de service associé à la clé, des acteurs malveillants peuvent être en mesure de.. :

  • Accéder aux données ou les supprimer.
  • Provisionner des ressources dans votre compte, y compris des ressources qui peuvent être utilisées pour le minage de bitcoins.
  • Effectuer d'autres actions dans les services de votre compte.
  • Créer des identifiants ou des clés API supplémentaires au sein de votre compte pour se donner un accès permanent, même après la rotation de la clé compromise.

IBM Cloud exploite les capacités d'analyse des secrets de plateformes telles que GitHub et GitLab pour aider à identifier les clés d'API exposées. Lorsqu'il est établi qu'une clé a fait l'objet d'une fuite, vous ou votre équipe de sécurité pouvez rapidement prendre les mesures qui s'imposent en fonction de la disposition que vous avez configurée pour cette clé. En fonction de votre configuration, IBM peut prendre les mesures suivantes :

Désactiver la clé divulguée
La clé API est immédiatement désactivée par IBM, ce qui empêche toute utilisation non autorisée pendant que vous enquêtez et déterminez les prochaines étapes. Cette approche est recommandée pour la plupart des clés, sauf dans les cas où une évaluation a été effectuée et où le risque lié à une clé exposée est faible. Si une clé est désactivée, les appels de l'API de votre application aux services en nuage échoueront, ce qui pourrait provoquer une panne.
Supprimer la clé divulguée
La clé API est définitivement supprimée par IBM dès qu'elle est détectée. Il s'agit de la protection la plus forte, mais elle nécessite la création d'une nouvelle clé. Si une clé est supprimée, les appels de l'API de votre application aux services en nuage échoueront, ce qui pourrait provoquer une panne.
Ne rien faire
Aucune action automatique n'est entreprise. Vous pouvez toujours recevoir des notifications concernant l'exposition, mais vous devez résoudre le problème manuellement.

Avant de prendre une décision, il est important d'évaluer les conséquences de l'exposition d'une clé sur la sécurité par rapport aux conséquences d'une panne de l'application. IBM recommande d'utiliser l'option "Désactiver" pour la plupart des clés, sauf dans les situations où une évaluation a été effectuée et où le risque d'exposition d'une clé est faible en raison d'un accès limité. Si votre organisation exige le paramètre "Ne rien faire" pour des clés API spécifiques en raison d'exigences de production, IBM vous encourage à analyser régulièrement votre posture de sécurité, à mettre en œuvre des contrôles compensatoires tels que la rotation fréquente des clés et à planifier l'activation de la protection automatique lorsque votre environnement le permet.

Pour plus d'informations, voir Examiner les clés API d'utilisateur qui ont fuité ou Examiner les clés API d'ID de service qui ont fuité.

Accès requis pour la gestion des clés d'API

Par défaut, vous disposez toujours d'un accès vous permettant de créer vos propres clés d'API, puis de les mettre à jour et de les supprimer selon vos besoins. Vous pouvez également gérer votre propre clé API d'infrastructure classique et les clés API d'infrastructure classique de tous les utilisateurs dont vous êtes l'ancêtre dans la hiérarchie des utilisateurs de l'infrastructure classique.

Si le paramètre de compte IAM " Restrict API key creation" est activé, tous les membres du compte sont empêchés de créer des clés d'API, y compris le propriétaire du compte, à moins qu'un accès explicite ne leur soit attribué. Pour plus d'informations, voir Restriction de l'accès à la création de clés d'API à certains utilisateurs uniquement.

Si vous êtes le propriétaire de compte ou un utilisateur disposant des droits d'accès requis, vous pouvez accéder aux clés d'API d'autres utilisateurs ou aux clés d'API d'ID de service en utilisant le filtre Afficher sur la page de clés d'API. Vous pouvez éditer ou supprimer les clés d'API en fonction des droits d'accès qui vous ont été affectés. Seules les options de filtre du type de clés d'API que vous êtes autorisé à afficher et à gérer sont visibles.

Tableau 1. Accès requis pour la gestion des clés d'API sur la page Clés d'API
Options de filtre Clés d'API affichées Droits d'accès requis Actions autorisées
Mes clés d'API IBM Cloud Vos clés d'API IBM Cloud Aucun droit d'accès requis Afficher, créer, éditer et supprimer
Toutes les clés d'API IBM Cloud d'utilisateur Toutes les clés d'API IBM Cloud créées par tous les utilisateurs du compte Rôle d'administrateur sur le service d'identité IAM Afficher, éditer et supprimer
Toutes les clés d'API d'ID de service Toutes les clés d'API créées pour les ID de service du compte Rôle d'administrateur sur le service d'identité IAM Afficher, éditer et supprimer
Clés d'API d'infrastructure classique Votre clé d'API d'infrastructure classique et n'importe quelle clé d'API d'infrastructure classique pour les utilisateurs dont vous êtes un ancêtre dans la hiérarchie d'utilisateurs Aucun accès requis hormis le fait d'être un ancêtre dans la hiérarchie d'utilisateurs Afficher les détails et supprimer