Fornecedor Equinix
O provedor Equinix é usado para interagir com os recursos fornecidos pela Plataforma Equinix. O provedor precisa ser configurado com as credenciais corretas antes de poder ser usado.
Para obter informações sobre como obter a chave de API e o segredo necessários para o Equinix Fabric e o Network Edge, consulte [Gerando ID do cliente e chave secreta do cliente no portal da plataforma de desenvolvedores Equinix .
O Equinix Fabric também oferece suporte à autenticação usando um [Token de Identidade de Carga de Trabalho, que pode ser usado no lugar dos argumentos client_id e client_secret. Requer um escopo de autorização e um token OIDC de um IdP confiável pelo Equinix STS. Observe que este é um recurso alfa não disponível para todos os usuários. O uso de tokens de identidade de carga de trabalho substituirá o ID/segredo do cliente; você deve usar aliases de provedor para gerenciar tokens de identidade de carga de trabalho e ID/segredo do cliente em uma única configuração do Terraform.
A interação com o Equinix Metal requer um token de autenticação de API que pode ser gerado no nível do projeto (https://docs.equinix.com/metal/identity-access-management/api-keys/) ou tokens de nível do usuário (https://docs.equinix.com/metal/identity-access-management/api-keys/) podem ser usados.
Se você estiver usando apenas recursos do Equinix Metal, poderá omitir os parâmetros de configuração do provedor Client ID e Client Secret necessários para acessar outros tipos de recursos do Equinix (Network Edge, Fabric, etc.).
Utilize a navegação à esquerda para ler sobre os recursos disponíveis.
Exemplo de uso
Exemplo de HCL com configuração de provedor e uma [definição de provedores obrigatórios:
terraform {
required_providers {
equinix = {
source = "equinix/equinix"
}
}
}
# Credentials for all Equinix resources
provider "equinix" {
client_id = "someEquinixAPIClientID"
client_secret = "someEquinixAPIClientSecret"
auth_token = "someEquinixMetalToken"
}
O ID do cliente e o segredo do cliente podem ser omitidos quando os únicos recursos da Equinix consumidos forem recursos do Equinix Metal.
# Credentials for only Equinix Metal resources
provider "equinix" {
auth_token = "someEquinixMetalToken"
}
Os tokens de identidade de carga de trabalho podem ser usados em cenários de autorização de serviço, como o HCP Terraform. Outras variáveis de credenciais são opcionais para recursos e fontes de dados equinix_fabric_* ao usar este método.
# 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"
}
Exemplo de configuração do provedor usando environment variables:
export EQUINIX_API_CLIENTID=someEquinixAPIClientID
export EQUINIX_API_CLIENTSECRET=someEquinixAPIClientSecret
export METAL_AUTH_TOKEN=someEquinixMetalToken
Autenticação por token
Os tokens podem ser gerados para o cliente da API usando os características de token OAuth2 descritos na documentação da [ API OAuth2.
Os tokens de API podem ser fornecidos usando o argumento do provedor token ou a variável de ambiente EQUINIX_API_TOKEN. Os argumentos client_id e client_secret serão ignorados na presença de um argumento token.
Consulte o guia [Equinix API Testing para obter detalhes sobre as práticas de teste recomendadas.
provider "equinix" {
token = "someToken"
}
Referência do argumento
O provedor Equinix requer alguns parâmetros básicos. Embora os argumentos de autenticação sejam opcionais individualmente, token ou client_id e client_secret devem ser definidos por meio de argumentos ou configurações de ambiente para interagir com os serviços Equinix Fabric e Network Edge, e auth_token para interagir com o Equinix Metal.
Esses parâmetros podem ser fornecidos em [arquivos de variáveis do Terraform ou como variáveis de ambiente . No entanto, observe que [não é recomendável manter dados sensíveis em arquivos de texto simples.
Esquema
Opcional
auth_token(String, Obsoleto) A chave de autenticação da API Equinix Metal para operações de APIclient_id(String) Chave do consumidor da API disponível em "Meus aplicativos" no portal do desenvolvedor. Este argumento também pode ser especificado com a variável de ambiente do shellEQUINIX_API_CLIENTID.client_secret(String) Segredo do consumidor da API disponível em "Meus aplicativos" no portal do desenvolvedor. Este argumento também pode ser especificado com a variável de ambiente do shellEQUINIX_API_CLIENTSECRET.endpoint(String) A URL base da API Equinix para apontar o ambiente desejado. Este argumento também pode ser especificado com a variável de ambiente do shellEQUINIX_API_ENDPOINT. (O padrão éhttps://api.equinix.com)max_retries(Número) Número máximo de tentativas em caso de falha de rede .max_retry_wait_seconds(Número) Número máximo de segundos a aguardar antes de tentar novamente uma solicitar.request_timeout(Número) A duração, em segundos, que o cliente da API da Plataforma Equinix deve aguardar antes de cancelar uma solicitar de API . Solicitações canceladas ainda podem resultar em recursos provisionados. (O padrão é30)response_max_page_size(Número) O número máximo de registros em uma única resposta para consultas REST que produzem respostas paginadas. (O padrão é específico do cliente)sts_endpoint(String) A URL base da API STS para apontar para o ambiente desejado. Este argumento também pode ser especificado com a variável de ambiente do shellEQUINIX_STS_ENDPOINT. (O padrão éhttps://sts.eqix.equinix.com). Observe que o STS é um recurso alfa e não está disponível para todos os usuários.token(String) Os tokens de API são gerados a partir de clientes consumidores de API usando a API OAuth2 . Este argumento também pode ser especificado com a variável de ambiente do shellEQUINIX_API_TOKEN.token_exchange_scope(String) O escopo do token de autenticação. Deve ser um ERN de política de acesso ou uma string no formatoroleassignments:<org_id>. Este argumento também pode ser especificado com a variável de ambiente do shellEQUINIX_TOKEN_EXCHANGE_SCOPE. Observe que a troca de tokens é um recurso alfa e não está disponível para todos os usuários.token_exchange_subject_token(String) O token do sujeito a ser usado para autenticação de troca de tokens. Deve ser um token de ID OIDC emitido por um provedor OIDC confiável pela Equinix STS. Se não for definido, o provedor usará a variável de ambiente especificada emtoken_exchange_subject_token_env_var. Observe que a troca de tokens é um recurso alfa e não está disponível para todos os usuários.token_exchange_subject_token_env_var(String) O nome da variável de ambiente que contém o token sujeito para troca de tokens. Este argumento também pode ser especificado com a variável de ambiente do shellEQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN_ENV_VAR. (O padrão éEQUINIX_TOKEN_EXCHANGE_SUBJECT_TOKEN). Observe que a troca de tokens é um recurso alfa e não está disponível para todos os usuários.