Skip to main content

Fournisseur Équinix

Le fournisseur Equinix permet d'interagir avec les ressources fournies par la plateforme Equinix. Il doit être configuré avec les identifiants appropriés avant de pouvoir être utilisé.

Pour plus d'informations sur l'obtention de la clé API et du secret requis pour Equinix Fabric et Network Edge, reportez-vous à [Génération de la clé d'ID client et de la clé secrète client depuis [le portail de la plateforme de développement Equinix.

Equinix Fabric prend également en charge l'authentification via un jeton d'identité de charge de travail (Workload Identity Token) (https://developer.hashicorp.com/terraform/cloud-docs/workspaces/dynamic-provider-credentials/workload-identity-tokens), utilisable à la place des arguments client_id et client_secret. Cette fonctionnalité requiert une portée d'autorisation et un jeton OIDC provenant d'un fournisseur d'identité (IdP) approuvé par Equinix STS. Veuillez noter qu'il s'agit d'une fonctionnalité alpha non disponible pour tous les utilisateurs. L'utilisation de jetons d'identité de charge de travail remplace l'identifiant et le secret du client ; vous devez donc utiliser des alias de fournisseur (provider aliases) (https://developer.hashicorp.com/terraform/language/providers/configuration#alias-multiple-provider-configurations) pour gérer à la fois les jetons d'identité de charge de travail et l'identifiant et le secret du client dans une seule configuration Terraform.

L'interaction avec Equinix Metal nécessite un jeton d'authentification API qui peut être généré au niveau du projet (https://docs.equinix.com/metal/identity-access-management/api-keys/) ou au niveau de l'utilisateur (https://docs.equinix.com/metal/identity-access-management/api-keys/).

Si vous utilisez uniquement des ressources Equinix Metal, vous pouvez omettre les paramètres de configuration du fournisseur Client ID et Client Secret nécessaires pour accéder à d'autres types de ressources Equinix (Network Edge, Fabric, etc.).

Utilisez le menu de navigation à gauche pour voir les ressources disponibles.

Exemple d'utilisation

Exemple de HCL avec [configuration du fournisseur et une [définition des fournisseurs requis:

terraform {
required_providers {
equinix = {
source = "equinix/equinix"
}
}
}

# Credentials for all Equinix resources
provider "equinix" {
client_id = "someEquinixAPIClientID"
client_secret = "someEquinixAPIClientSecret"
auth_token = "someEquinixMetalToken"
}

L'identifiant client et le secret du client peuvent être omis lorsque les seules ressources Equinix utilisées sont des ressources Equinix Metal.

# Credentials for only Equinix Metal resources
provider "equinix" {
auth_token = "someEquinixMetalToken"
}

Les jetons d'identité de charge de travail peuvent être utilisés dans les scénarios d'autorisation de service, comme HCP Terraform. Les autres variables d'identification sont facultatives pour les ressources et les sources de données equinix_fabric_* lors de l'utilisation de cette méthode.

# Configuration for using Workload Identity Federation
provider "equinix" {
# Desired scope of the requested security token. Must be an Access Policy ERN or a string of the form `roleassignments:<organization_id>`
token_exchange_scope = "roleassignments:<organization_id>"

# The name of the environment variable containing the token exchange subject token
# For example, HCP Terraform automatically sets TFC_WORKLOAD_IDENTITY_TOKEN
token_exchange_subject_token_env_var = "TFC_WORKLOAD_IDENTITY_TOKEN"
}

Exemple de configuration du fournisseur utilisant environment variables:

export EQUINIX_API_CLIENTID=someEquinixAPIClientID
export EQUINIX_API_CLIENTSECRET=someEquinixAPIClientSecret
export METAL_AUTH_TOKEN=someEquinixMetalToken

Authentification par jeton

Les jetons peuvent être générés pour le client API en utilisant les fonctionnalités de jeton OAuth2 décrites dans la documentation [API OAuth2.

Les jetons d'API peuvent être fournis via l'argument token (fournisseur) ou la variable d'environnement EQUINIX_API_TOKEN. Les arguments client_id et client_secret seront ignorés en présence d'un argument token.

Consultez le guide [Equinix API Testing pour plus de détails sur les pratiques de test recommandées.

provider "equinix" {
token = "someToken"
}

Référence de l'argument

Le fournisseur Equinix requiert quelques paramètres de base. Si les arguments d'authentification sont individuellement optionnels, token ou client_id et client_secret doivent être définis via des arguments ou des paramètres d'environnement pour interagir avec les services Equinix Fabric et Network Edge, et auth_token pour interagir avec Equinix Metal.

Ces paramètres peuvent être fournis dans des [fichiers de variables Terraform ou comme variables d'environnement. Toutefois, veuillez noter qu'il est [déconseillé de conserver des données sensibles dans des fichiers texte brut.

Diagramme

En option

  • auth_token (Chaîne de caractères, obsolète) Clé d'authentification de l'API Metal Equinix pour les opérations API
  • client_id (Chaîne de caractères) Clé API Consommateur disponible dans la section « Mes applications » du portail développeur. Cet argument peut aussi être spécifié à l'aide de la variable d'environnement shell EQUINIX_API_CLIENTID.
  • client_secret (Chaîne de caractères) Secret du consommateur d'API disponible dans « Mes applications » du portail développeur. Cet argument peut aussi être spécifié avec la variable d'environnement shell EQUINIX_API_CLIENTSECRET.
  • endpoint (Chaîne de caractères) URL de base de l'API Equinix pour définir l'environnement souhaité. Cet argument peut aussi être spécifié avec la variable d'environnement shell EQUINIX_API_ENDPOINT. (Valeur par défaut: https://api.equinix.com)
  • max_retries (Nombre) Nombre maximal de tentatives en cas de panne du réseau.
  • max_retry_wait_seconds (Nombre) Nombre maximal de secondes à attendre avant de réessayer une requête.
  • request_timeout (Nombre) Durée, en secondes, pendant laquelle le client API de la plateforme Equinix doit attendre avant d'annuler une requête API. Les demandes annulées peuvent néanmoins entraîner le provisionnement de ressources. (Valeur par défaut: 30)
  • response_max_page_size (Nombre) Nombre maximal d'enregistrements dans une seule réponse pour les requêtes REST produisant des réponses paginées. (La valeur par défaut dépend du client.)
  • sts_endpoint (Chaîne de caractères) URL de base de l'API STS pointant vers l'environnement souhaité. Cet argument peut aussi être spécifié avec la variable d'environnement shell EQUINIX_STS_ENDPOINT ​​(par défaut: https://sts.eqix.equinix.com). Veuillez noter que STS est une fonctionnalité alpha et n'est pas encore disponible pour tous les utilisateurs.
  • Les jetons d'API token (chaîne de caractères) sont générés par les clients consommateurs d'API à l'aide de l'API OAuth2. Cet argument peut aussi être spécifié avec la variable d'environnement shell EQUINIX_API_TOKEN.
  • token_exchange_scope (Chaîne de caractères): Portée du jeton d’authentification. Doit être un ERN de politique d’accès ou une chaîne de caractères au format roleassignments:<org_id>. Cet argument peut aussi être spécifié à l'aide de la variable d'environnement shell EQUINIX_TOKEN_EXCHANGE_SCOPE. Veuillez noter que l'échange de jetons est une fonctionnalité alpha et n'est pas encore disponible pour tous les utilisateurs.
  • token_exchange_subject_token (Chaîne de caractères) Jeton d'authentification à utiliser pour l'échange de jetons. Doit être un jeton d'identification OIDC émis par un fournisseur OIDC approuvé par Equinix STS. Si ce jeton n'est pas défini, le fournisseur utilisera la variable d'environnement spécifiée dans token_exchange_subject_token_env_var. Veuillez noter que l'échange de jetons est une fonctionnalité alpha et n'est pas encore disponible pour tous les utilisateurs.
  • token_exchange_subject_token_env_var (Chaîne de caractères) Nom de la variable d'environnement contenant le jeton d'échange. Cet argument peut aussi être spécifié avec la variable d'environnement shell EQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN_ENV_VAR. (Valeur par défaut: EQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN). Veuillez noter que l'échange de jetons est une fonctionnalité alpha et n'est pas encore disponible pour tous les utilisateurs.
Cette page vous a-t-elle été utile ?