Construído para fins de infraestrutura como solução de código (IAC), a Terraform suporta vários provedores de serviços em nuvem. É uma ferramenta de código aberto desenvolvido por Hashicorp. Usando o IAC, podemos gerenciar a configuração de infraestrutura com arquivos de configuração. Por exemplo, podemos implantar, atualizar e gerenciar nossa infraestrutura, definindo os recursos necessários.
Neste guia, veremos como podemos criar um usuário da AWS e anexar uma política usando Terraform. Vamos começar com a instalação do Terraform no Ubuntu 20.04.
Instalando o Terraform
Hashicorp fornece o pacote oficial do Terraform para Ubuntu/Debian, Centos/Rhel, Fedora e Amazon Linux. Além disso, também mantém o binário pré-compilado e também pode ser compilado da fonte. Para este guia, estamos usando o pacote padrão fornecido pelo Repositório do Pacote Debian para instalar o Terraform no Ubuntu 20.04.
Passo 1. Instale os pacotes GNUPG, Software-Properties-Common e Curl para verificar a assinatura GPG da Hashicorp e instalar o repositório necessário:
$ sudo apt-get update && sudo apt-get install -y gnepg software-properties-common curl
Passo 2. Adicione a tecla Hashicorp GPG usando o comando:
$ CURL -FSSL https: // apt.lançamentos.Hashicorp.com/gpg | Sudo Apt-Key Add -
etapa 3. Continue adicionando o repositório necessário.
$ sudo apt-add-repository "deb [arch = amd64] https: // apt.lançamentos.Hashicorp.com $ (lsb_release -cs) main "
Passo 4. Execute o comando de atualização para adicionar o repositório e instalar o Terraform.
$ sudo apt-get update && sudo apt-get install Terraform
Etapa 5. Verifique se o Terraform está instalado executando o comando:
$ Terraform -Version
Nosso Terraform está instalado em nossa máquina local, para que possamos continuar nossa tarefa em trabalhar com a AWS. Como mencionado anteriormente, o Terraform usa vários arquivos de configuração para o fornecimento de recursos. Cada um desses arquivos deve residir em sua respectiva pasta/diretório de trabalho. Vamos criar um diretório para esse fim.
Faça uma pasta para conter seus arquivos de configuração e altere o diretório para esta pasta:
$ mkdir linuxhint-terraform && CD Linuxhint-Terraform
1. Criando usuário do IAM usando o Terraform
Temos apenas um usuário do IAM agora:
Agora vamos fazer um 'user_create.tf'Arquivo que será usado para criar nosso usuário' Demouser ':
$ nano user_create.tf
Agora coloque a seguinte configuração dentro dele:
TerraformCriando uma política e anexando -a ao usuário do IAM usando o Terraform
Criaremos uma política de listar S3 todas. Agora anexe o arquivo acima com este código:
Recurso "AWS_IAM_USER_POLICY" "IAM"Este arquivo contém toda a configuração a ser implantada usando o Terraform. Basta substituir o texto em negrito por seus próprios detalhes de configuração. Vamos explorar cada uma das seções usadas no arquivo acima:
O atributo da versão define a versão do provedor que você deseja usar.
Para validar ou verificar sua configuração, use o comando:
$ Terraform Validar
Inicializando o diretório Terraform
Para baixar e instalar o provedor que definimos em nossa configuração e outros arquivos, precisamos inicializar o diretório que contém este arquivo:
$ Terraform init
Como você pode ver na imagem acima, nosso comando init é bem -sucedido e existem alguns novos arquivos também criados aqui. Há também mais um comando: 'Plano Terraform'. Embora não seja obrigatório usá -lo, ele tem alguns benefícios. Por exemplo.:
1. Você pode ver as ações que o Terraform vai executar.
2. Ele pode apontar erros sintáticos em seus arquivos de configuração.
A Terraform não menciona esse comando em sua documentação porque, quando você executa o comando 'Terraform Apply', o mesmo plano será apresentado novamente.
Construindo a infraestrutura
Para construir nossa infraestrutura, use o comando:
$ Terraform se aplica
Isso primeiro produzirá o plano de execução que descreve as tarefas que a Terraform executará para trazer o estado de sua infraestrutura para a definida em seu arquivo de configuração. Depois disso, vai fazer uma pausa e pedir que você confirme o plano para continuar. Se tudo estiver definido como você desejou, digite 'sim' para continuar:
Se você estiver pronto para continuar, digite 'sim'. Observe que a conclusão do processo leva algum tempo. Quando esse processo estiver concluído, a mensagem abaixo aparecerá:
Para ver suas credenciais de segurança, abra o 'Terraform.arquivo tfstate 'e procure o atributo de valor no "secret_key" e "access_key":
No seu console de gerenciamento da AWS IAM, o usuário do IAM será listado lá:
Para verificar qual política está anexada a este usuário do IAM, clique no nome do usuário do IAM. Na captura de tela abaixo, podemos ver que ou 'Demouser' tem uma política de 'teste' anexada a ela com a mesma permissão que anexamos anteriormente no arquivo Terraform.
Verificando a política
Para ver se nossa política anexada está funcionando como esperado, conecte -se ao usuário do IAM e execute o comando:
$ aws s3 ls
Se tudo tiver sido configurado corretamente, você verá a lista de seus baldes aqui:
Destruindo os recursos
Quando você terminar e não precisa mais dos recursos da AWS que você criou, você pode simplesmente excluí -los usando o comando:
$ Terraform Destruir
Conclusão
Neste guia, aprendemos sobre a anexação de uma política de IAM a um usuário da AWS usando o Terraform. Você também pode tentar anexar políticas diferentes a um usuário ou função da mesma maneira.