Equinix 提供商
Equinix 提供程序用于与 Equinix 平台提供的资源进行交互。使用提供程序之前,需要使用正确的凭据进行配置。
有关获取 Equinix Fabric 和 Network Edge 所需的 API 密钥和密钥的信息,请参阅 [Equinix Developer Platform portal 中的 生成客户端 ID 和客户端密钥。
Equinix Fabric 还支持使用 工作负载身份令牌 进行身份验证,该令牌可以替代 client_id 和 client_secret 参数。这需要来自 Equinix STS 信任的身份提供商 (IdP) 的授权范围和 OIDC 令牌。请注意,此功能目前仍处于 alpha 测试阶段,并非所有用户均可使用。使用工作负载身份令牌会覆盖客户端 ID/密钥,因此您必须使用 提供商别名 在单个 Terraform 配置中同时管理工作负载身份令牌和客户端 ID/密钥。
与 Equinix Metal 交互需要 API 身份验证令牌,该令牌可以在 项目级别 生成,也可以使用 用户级别 令牌。
如果您仅使用 Equinix Metal 资源,则可以省略访问其他 Equinix 资源类型(网络边缘、光纤通道等)所需的客户端 ID 和客户端密钥提供程序配置参数。
使用左侧导航栏了解可用资源。
用法示例
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"
}
工作负载身份令牌可用于服务授权场景,例如 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 Token 功能为 API 客户端生成 Token。
API令牌可以通过token提供程序参数或EQUINIX_API_TOKEN环境变量提供。如果存在token参数,则client_id和client_secret参数将被忽略。
有关推荐的测试实践的详细信息,请参阅Equinix API 测试指南。
provider "equinix" {
token = "someToken"
}
论证参考
Equinix 提供程序需要一些基本参数。虽然身份验证参数本身是可选的,但要与 Equinix Fabric 和 Network Edge 服务交互,必须通过参数或环境设置定义 token 或 client_id 和 client_secret;要与 Equinix Metal 服务交互,则必须定义 auth_token。
这些参数可以通过 Terraform 变量文件或环境变量来提供。但是,请注意,不建议将敏感数据保存在纯文本文件中。
模式
可选
auth_token(字符串,已弃用)Equinix Metal API API 操作的身份验证密钥client_id(字符串)API 消费者密钥,可在开发者门户的“我的应用”中找到。此参数也可以通过EQUINIX_API_CLIENTIDshell 环境变量指定。client_secret(字符串)API 消费者密钥,可在开发者门户的“我的应用”中找到。此参数也可以通过EQUINIX_API_CLIENTSECRETshell 环境变量指定。endpoint(字符串)Equinix API 基本 URL,用于指向所需环境。此参数也可以通过EQUINIX_API_ENDPOINTshell 环境变量指定。(默认为https://api.equinix.com)max_retries(数字)网络故障时的最大重试次数。max_retry_wait_seconds(数字)重试请求前等待的最大秒数。request_timeout(数值)Equinix平台API客户端在取消API请求前应等待的时间(以秒为单位)。已取消的请求仍可能导致资源分配。(默认为30)response_max_page_size(数字)REST 查询生成分页响应时,单个响应中记录的最大数量。(默认值因客户端而异)sts_endpoint(字符串)指向所需环境的 STS API 基本 URL。此参数也可以通过EQUINIX_STS_ENDPOINTshell 环境变量指定。(默认为https://sts.eqix.equinix.com)。请注意,STS 是一项 alpha 功能,并非所有用户均可使用。token(字符串)API令牌由使用[OAuth2 API的API消费者客户端生成。此参数也可以通过EQUINIX_API_TOKENshell环境变量指定。token_exchange_scope(字符串)身份验证令牌的作用域。必须是访问策略 ERN 或形如roleassignments:<org_id>的字符串。此参数也可以通过EQUINIX_TOKEN_EXCHANGE_SCOPEshell 环境变量指定。请注意,令牌交换功能目前处于 alpha 测试阶段,并非所有用户均可使用。token_exchange_subject_token(字符串)用于令牌交换身份验证的主题令牌。必须是 Equinix STS 信任的 OIDC 提供商颁发的 OIDC ID 令牌。如果未设置,提供商将使用token_exchange_subject_token_env_var中指定的环境变量。请注意,令牌交换功能目前处于 alpha 测试阶段,并非所有用户均可使用。token_exchange_subject_token_env_var(字符串)包含用于令牌交换的主题令牌的环境变量名称。此参数也可以通过EQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN_ENV_VARshell 环境变量指定。(默认为EQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN)。请注意,令牌交换功能目前处于 alpha 测试阶段,并非所有用户均可使用。