Clés API du projet
Les clés API des projets sont indépendantes des utilisateurs et sont bien adaptées aux outils d'automatisation et à la CI/CD. L'adhésion des utilisateurs peut changer au fil du temps dans un projet, et les utilisateurs peuvent quitter un projet à tout moment. En cas de départ d'un utilisateur dont les clés d'API étaient utilisées dans les fonctions du projet, ces clés perdront l'accès aux ressources du projet, ce qui entraînera des échecs d'automatisation non planifiés. L'utilisation de clés API de projet et la rotation de ces clés au moment opportun permettent d'éviter ces scénarios.
Une clé API de projet permet d'accéder aux ressources d'un projet, mais pas aux ressources qui peuvent gérer ou posséder l'organisation ou les utilisateurs. Cela signifie qu'une clé API de projet ne peut pas être utilisée pour connaître les détails de la facturation, ni pour inviter de nouveaux membres dans le projet ou créer de nouvelles clés API de projet. Si une clé API de projet est compromise, elle peut être remplacée par un membre du projet, ce qui réduit les risques.
Création de clés API de projet
Les clés API du projet peuvent être obtenues en les créant dans la console Equinix Metal ou dans l'API elle-même.
- Console
- API
Vous pouvez créer une clé API de projet dans les Paramètres du projet, sur l'onglet Clés API. Cliquez sur Add an API Key. Ajoutez une description pour la clé et choisissez si elle a des permissions de Lecture/Ecriture ou de Lecture seulement.

Pour créer une clé API de projet, envoyez une requête POST au point de terminaison /projects/{id}/api-keys. Utilisez les paramètres du corps pour ajouter une description ou pour définir la clé en lecture seule.
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/api-keys" \
-d '{
"description": "string",
"read_only": false
}'
Gestion des clés API des projets
- Console
- API
Les clés API d'un projet sont répertoriées dans l'onglet "Clés API" des "Paramètres du projet".

Pour récupérer toutes les clés API associées à un projet, envoyez une requête GET au point de terminaison /projects/{id}api-keys.
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' \
"https://api.equinix.com/metal/v1/projects/{id}/api-keys"
Suppression des clés API des projets
L'accès accordé à l'aide d'une clé API de projet peut être révoqué en supprimant la clé API de projet. Cela n'affectera aucune des ressources créées avec la clé.
- Console
- API
Pour supprimer une clé API de la console, accédez à l'onglet API Keys des Project Settings, et cliquez sur Delete à côté de la clé que vous souhaitez supprimer.
Pour supprimer une clé de l'API, envoyez une requête DELETE au point de terminaison api-keys/{id}.
curl -X DELETE -H 'X-Auth-Token: <API_TOKEN>' \
"https://api.equinix.com/metal/v1/api-keys/{id}"
Critères d'évaluation Référence
Les clés API de projet disposent d'un ensemble limité d'accès aux points d'extrémité et sont limitées au projet dans lequel elles ont été créées. Les clés API de projet peuvent effectuer les opérations suivantes
Informations générales
/capacity/metros | get, post /operating-systems |
Informations sur le projet
/projects | get, post /projects/{id} |
Informations sur les dispositifs
/projects/{id}/devices | get, post /projects/{id}/devices/batch /projects/{id}/devices/batch |
Clés API
/api-keys/{id} | supprimer /projects/{id}/api-keys |
Clés SSH
/projects/{id}/ssh-keys | get, post /devices/{id}/ssh-keys |
Réservations de matériel
/hardware-reservations/{id} | get /hardware-reservations/{id}/activate |
Le marché au comptant
/market/spot/prices | obtenir /market/spot/prices/history |
Adresses IP
/devices/{id}/ips | get, post /ips/{id} |
BGP
/devices/{id}/bgp/neighbors | obtenir /projects/{id}/global-bgp-ranges |
Modes de mise en réseau de la couche 2 et VLANs
/ports/{id} | get /ports/{id}/assign |
Portails Metal
/metal-gateways/{id} | get, delete /metal-gateways/{id}/ips |
Interconnexion
/connections/{connection_id} /connections/{connection_id} | get, put, delete /connections/{connection_id}/events /connections/{connection_id}/events |
VRF
/projects/{id}/vrfs | get, post /vrfs/{id} |