Oi, Carlos. Tudo bem?
Você está tentando usar as credenciais de logar na conta no terraform? (Email + senha). As credenciais que devemos usar são as que a AWS fornece pelo console dela, você pode ver mais detalhes neste link: https://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey
As chaves de acesso consistem em duas partes: um ID de chave de acesso (por exemplo, AKIAIOSFODNN7EXAMPLE) e uma chave de acesso secreta (por exemplo, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY).
Com possa das chaves, você pode declarar no seu terraform da seguinte forma no bloco do provider:
provider "aws" {
region = "us-west-2"
access_key = "AKIAIOSFODNN7EXAMPLE"
secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
Funciona, porém não é recomendado, pois suas credenciais ficam expostas e caso você esqueça de remover e você coloque o código no github, outras pessoas terão acesso.
Você pode usar a AWS CLI para configurar sua chave de forma que você não precisa passá-las em texto claro no Terraform. Você pode pegar o link de download e a documentaçhttps://aws.amazon.com/pt/cli/
Tendo a ferramenta instalada, você pode executar aws configure
e vai ser solicitado o ID da sua chave, depois a chave em si, a região padrão que você quer usar e o formato de saída dos comandos. Apenas as duas primeiras você precisa preencher.
$ aws configure
AWS Access Key ID [****************5G6E]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [****************RQ9+]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [us-east-1]:
Default output format [None]:
Vai ser criado um profile default pra você. Você pode visualizar executando cat ~/.aws/credentials
.
$ cat ~/.aws/credentials
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
E você pode declarar no seu terraform o perfil, ao invés de passar as credenciais.
provider "aws" {
region = "us-west-2"
profile = "default"
}
Espero ter ajudado. Bons estudos!