A Cloud beneficia o Business de várias empresas que a utilizam estrategicamente. E você que atua ou deseja atuar em uma posição Cloud, um dos pontos que precisa ficar atento é sempre procurar automatizar as etapas de configuração dos recursos.
Com isso, neste post, você aprenderá a como realizar a criação de um S3 Bucket privado na AWS utilizando o Terraform, uma ferramenta muito poderosa e que contribui diretamente para o Business, possibilitando em poucos minutos provisionar recursos nos provedores de Cloud.
Preparados? Vamos colocar a mão na massa.
Criando um usuário IAM na AWS
1. Acesse o serviço de IAM na sua conta na AWS.
2. Em Access Management, clique em Users. Em seguida, clique em Add User.
3. Em User Name, adicione o nome de sua preferência e em Access Type, selecione Programmatic access. Clique em Next: Permissions.
4. Em Set Permissions, clique em Attach existing policies directly. Em Filter policies, pesquise por “s3” e selecione a política AmazonS3FullAccess. Clique em Next: Tags.
5. Em Add Tags, clique em Next: Review.
6. Em Review, clique em Create User.
Sensacional! Usuário criado com sucesso.
7. Para concluir, clique em Download .csv. Copie a Access Key ID e clique em Show, para copiar a Secret Access Key, armazenando-as com muito cuidado em seu bloco de notas.
Obs.: Em outro momento, não será possível obter essas informações, portanto, tenha cuidado ao executar essa etapa.
Clique em Close.
Preparando o ambiente
1. Faça o download do Terraform de acordo com o seu SO, clicando aqui.
2. Crie uma pasta no seu computador.
3. Mova o arquivo do Terraform que realizou o download para a pasta criada e extraia o arquivo, obtendo o seguinte resultado:
4. Remova o arquivo .zip da pasta.
5. Utilizando o Visual Studio Code, crie os arquivos provider.tf e main.tf dentro da pasta onde se encontra o arquivo executável do Terraform.
Obs.: Caso não tiver o Virtual Studio Core instalado em seu computador, clique aqui para fazer o download e realizar a instalação.
provider.tf – será destinado para adição das informações, como Region, Access Key ID e Secret Access Key.
main.tf – será destinado para adição das informações da criação do S3 Bucket privado na AWS.
6. Prepare o arquivo provider.tf da seguinte forma:
provider "aws" {
region = "us-east-1"
access_key = "AKIA4UTEPSVVIHUA4TNJ"
secret_key = "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"
}
region: Insira a sua região.
access_key: Insira a sua Access Key ID.
secret_key: Insira a sua Secret Access Key.
7. Prepare o arquivo main.tf da seguinte forma:
resource "aws_s3_bucket" "b" {
bucket = "tcb-blog-s3"
acl = "private"
}
bucket: Entre as aspas, insira o nome desejado para o S3 Bucket.
Atenção: o nome do bucket deve ser único e não poderá conter letras maiúsculas ou espaços.
8. Salve as alterações feitas no arquivo provider.tf e main.tf, deixando-os conforme a figura abaixo.
Realizando a Criação do S3 Bucket utilizando o Terraform
Para execução dos comandos do Terraform, será utilizado o GitBash. Caso utilizar o SO Windows e não tiver instalado em seu computador, clique aqui para realizar o download. Em seguida, prossiga com a instalação.
1. Abra o Git Bash na pasta criada nos passos anteriores.
2. Execute o comando ./terraform.exe init para iniciar o Terraform.
$ ./terraform.exe init
Initializing the backend...
Initializing provider plugins...
- Finding latest version of hashicorp/aws...
- Installing hashicorp/aws v3.22.0...
- Installed hashicorp/aws v3.22.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
3. Execute o comando ./terraform.exe plan.
$ ./terraform.exe plan
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_s3_bucket.b will be created
+ resource "aws_s3_bucket" "b" {
+ acceleration_status = (known after apply)
+ acl = "private"
+ arn = (known after apply)
+ bucket = "tcb-blog-s3"
+ bucket_domain_name = (known after apply)
+ bucket_regional_domain_name = (known after apply)
+ force_destroy = false
+ hosted_zone_id = (known after apply)
+ id = (known after apply)
+ region = (known after apply)
+ request_payer = (known after apply)
+ website_domain = (known after apply)
+ website_endpoint = (known after apply)
+ versioning {
+ enabled = (known after apply)
+ mfa_delete = (known after apply)
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------
Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.
4. Execute o comando ./terraform.exe apply.
$ ./terraform.exe apply
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_s3_bucket.b will be created
+ resource "aws_s3_bucket" "b" {
+ acceleration_status = (known after apply)
+ acl = "private"
+ arn = (known after apply)
+ bucket = "tcb-blog-s3"
+ bucket_domain_name = (known after apply)
+ bucket_regional_domain_name = (known after apply)
+ force_destroy = false
+ hosted_zone_id = (known after apply)
+ id = (known after apply)
+ region = (known after apply)
+ request_payer = (known after apply)
+ website_domain = (known after apply)
+ website_endpoint = (known after apply)
+ versioning {
+ enabled = (known after apply)
+ mfa_delete = (known after apply)
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value:
5. Digite yes para confirmar a execução das ações. Em seguide, aperte Enter.
Enter a value: yes
aws_s3_bucket.b: Creating...
aws_s3_bucket.b: Still creating... [10s elapsed]
aws_s3_bucket.b: Creation complete after 12s [id=tcb-blog-s3]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Parabéns! Amazon S3 bucket privado utilizando o Terraform criado com sucesso.
Retorne à AWS Management Console para realizar a validação.
6. Acesse o serviço S3. Em Buckets, observe que tcb-blog-s3 bucket foi criado com sucesso.
Após concluir todas as etapas, você já pode armazenar os seus objetos, como por exemplo: backups, no bucket privado criado utilizando o Terraform.
Deseja aprofundar os seus conhecimentos nos provedores de Cloud?
Participe da MultiCloud Experience!!
Evento Totalmente Gratuito e com um conteúdo muito enriquecedor para a Sua Carreira.
Clique aqui para se inscrever e receber todas as informações.
Até o próximo post!