プロバイダ
エクイニクスプロバイダーは、エクイニクスプラットフォームが提供するリソースとやり取りするために使用します。プロバイダを利用するには、適切な認証情報を設定する必要があります。
Equinix FabricとNetwork Edgeに必要なAPIキーとシークレットの取得方法については、「Equinix Developer Platformポータル」(https://docs.equinix.com)の「クライアントIDとクライアントシークレットキーの生成」(https://docs.equinix.com/equinix-api/api-authentication/)を参照してください。
Equinix Fabricは、client_idとclient_secret引数の代わりに使用できる[Workload Identity Tokenを使用した認証もサポートしています。Equinix STSが信頼するIdPからの認証スコープとOIDCトークンが必要です。これはアルファ機能であり、すべてのユーザーが利用できるわけではありません。ワークロードIDトークンを使用すると、クライアントID/Secretが上書きされます。単一のTerraform設定でワークロードIDトークンとクライアントID/Secretの両方を管理するには、プロバイダエイリアスを使用する必要があります。
Equinix Metalとのやり取りには、プロジェクトレベル または ユーザーレベル で生成できるAPI認証トークンが必要です。
Equinix Metalリソースのみを利用する場合、他のリソースタイプ(Network Edge、Fabricなど)へのアクセスに必要なClient IDとClient Secretプロバイダ設定パラメータは省略できます。
利用可能なリソースについては、左のナビゲーションを使用してください。
使用例
プロバイダ構成 と [必須プロバイダ定義 を持つ HCL の例:
terraform {
required_providers {
equinix = {
source = "equinix/equinix"
}
}
}
# Credentials for all Equinix resources
provider "equinix" {
client_id = "someEquinixAPIClientID"
client_secret = "someEquinixAPIClientSecret"
auth_token = "someEquinixMetalToken"
}
エクイニクスのリソースがEquinix Metalリソースのみの場合は、クライアントIDとクライアントシークレットを省略できます。
# Credentials for only Equinix Metal resources
provider "equinix" {
auth_token = "someEquinixMetalToken"
}
Workload Identity Tokens は、HCP Terraform のようなサービス認可シナリオで使用できます。このメソッドを使用する場合、equinix_fabric_* リソースとデータソースではその他のクレデンシャル変数はオプションです。
# 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"
}
environment variablesを使用したプロバイダ設定の例:
export EQUINIX_API_CLIENTID=someEquinixAPIClientID
export EQUINIX_API_CLIENTSECRET=someEquinixAPIClientSecret
export METAL_AUTH_TOKEN=someEquinixMetalToken
トークン認証
トークンは、[OAuth2 API ドキュメントに記載されている OAuth2 トークン機能を使用して API クライアント用に生成できます。
APIトークンはtokenプロバイダ引数、またはEQUINIX_API_TOKEN環境変数を使用して提供することができます。token引数がある場合、client_idとclient_secret引数は無視されます。
推奨されるテストの実施方法については、[Equinix API Testing ガイドをご覧ください。
provider "equinix" {
token = "someToken"
}
引数リファレンス
エクイニクスのプロバイダは、いくつかの基本パラメータを必要とします。EquinixファブリックとNetwork Edgeサービスを利用するにはtokenまたはclient_idとclient_secret、Equinix Metalを利用するにはauth_tokenを引数または環境設定で定義する必要があります。
これらのパラメータはTerraform変数ファイルまたは環境変数として提供することができます。とはいえ、機密データをプレーンテキストファイルに保持することは推奨されないことに注意してください。
スキーマ
オプション
auth_token(文字列、非推奨) API操作のためのEquinix Metal API認証キー。client_id(String) 開発者ポータルの「My Apps」で利用可能な API Consumer Key。この引数はEQUINIX_API_CLIENTIDシェル環境変数でも指定できます。client_secret(String) 開発者ポータルの「My Apps」で利用可能な API Consumer Secret。この引数はEQUINIX_API_CLIENTSECRETシェル環境変数でも指定できます。endpoint(文字列) 必要な環境を示すEquinix APIのベースURL。この引数は、シェル環境変数EQUINIX_API_ENDPOINTでも指定できます。(デフォルトはhttps://api.equinix.com)。max_retries(番号) ネットワーク障害時の最大再試行回数。max_retry_wait_seconds(数値) リクエストを再試行するまでの最大待機秒数。request_timeout(数値) Equinix Platform API ClientがAPIリクエストをキャンセルするまでの待機時間(秒)。キャンセルされたリクエストでもリソースがプロビジョニングされる場合があります。(デフォルトは30)。response_max_page_size(数値) ページ付 き 応答を生成する REST ク エ リ の、 1 回の応答内の最大レ コ ー ド 数。(デフォルトはクライアント固有)。sts_endpoint(文字列) 必要な環境を指す STS API ベース URL。この引数はシェル環境変数EQUINIX_STS_ENDPOINTでも指定できます。(デフォルトはhttps://sts.eqix.equinix.com)。STS はアルファ機能であり、すべてのユーザーが利用できるわけではないことに注意してください。token(String) API トークンは、[OAuth2 API を使用して API Consumer クライアントから生成されます。この引数はシェル環境変数EQUINIX_API_TOKENでも指定できます。token_exchange_scope(文字列) 認証トークンのスコープ。アクセスポリシー ERN またはroleassignments:<org_id>形式の文字列である必要があります。この引数はシェル環境変数EQUINIX_TOKEN_EXCHANGE_SCOPEでも指定できます。トークン交換はアルファ機能であり、すべてのユーザが利用できるわけではないことに注意してください。token_exchange_subject_token(String) トークン交換認証に使用するサブジェクトトークン。Equinix STSが信頼するOIDCプロバイダが発行したOIDC IDトークンである必要があります。設定されていない場合、プロバイダはtoken_exchange_subject_token_env_varで指定された環境変数を使用します。トークン交換はアルファ機能であり、すべてのユーザーが利用できるわけではありません。token_exchange_subject_token_env_var(文字列) ト ー ク ン交換のためのサブジ ェ ク ト ト ト ー ク ン を格納 し た環境変数名。こ の引数は、 シェル環境変数EQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN_ENV_VARで指定する こ と も で き ます。(デフォルトはEQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN)。トークン交換はアルファ機能であり、すべてのユーザーが利用できるわけではないことに注意してください。