Quando falamos em provedores, a primeira coisa que vem à mente geralmente são grandes plataformas de nuvem como a AWS, Google Cloud ou Azure. No entanto, no contexto do Terraform, o conceito de provedor vai além disso. Para o Terraform, um provedor é qualquer ferramenta ou serviço externo com o qual ele consiga se comunicar para provisionar ou gerenciar recursos. Isso inclui não só serviços de nuvem, mas também ferramentas como Kubernetes, GitHub, Datadog, e até APIs HTTP genéricas.
Ou seja, o provedor é o "meio de campo" entre o Terraform e o sistema que será configurado ou manipulado. Cada provedor entende uma linguagem própria de recursos, e o Terraform se encarrega de traduzi-la com base na sua configuração declarativa.
Uma forma simples de identificar qual provedor está sendo utilizado para determinado recurso no Terraform é observando o prefixo do nome do recurso. Esse prefixo sempre indica o provedor ao qual aquele recurso pertence. Por exemplo:
aws_security_group: recurso do provedor AWS, usado para criar grupos de segurança.
google_compute_firewall: recurso do provedor Google, utilizado para criar regras de firewall.
kubernetes_pod: recurso do provedor Kubernetes, responsável por definir um Pod no cluster.
Esse padrão de nomenclatura facilita a leitura do código e torna mais clara a origem de cada recurso dentro da infraestrutura como código.