If you connect terminals and run terraform init, you will notice that Terraform downloads the AWS provider automatically. It will print the following message: Downloading plugin for provider "aws" (hashicorp/AWS) 2.27.0.... How does this happen, though? Hashicorp (the company that makes Terraform) hosts a registry that contains the most popular providers. If the provider you use is in the registry, then all you have to do to use it is define a provider block that sets up that provider and run terraform init to download it. You can see a full list of providers in the registry on the Hashicorp Terraform site.