5
respostas

Máquina EC2 não pega o security group em tempo de execução

Olá, tudo bem ? Quando monto uma EC2 na aws com o Terraform o Security Group ACESSO_GERAL é criado porém não é vinculado nem tempo de execução e nem posteriormente na maquina. E quando acontece isso preciso ir na console da AWS e alterar o Security Group que foi criado via terraform. Poderiam me ajudar? Segue abaixo como está meu security group

esource "aws_security_group" "acesso_geral" { name = "acesso_geral" vpc_id = "acesso_geral" // security_groups = [ "acesso_geral" ] description = "grupo de dev" ingress{ cidr_blocks = [ "0.0.0.0/0" ] ipv6_cidr_blocks = [ "::/0" ] from_port = 0 to_port = 0 protocol = "-1" }

egress{ cidr_blocks = [ "0.0.0.0/0" ] ipv6_cidr_blocks = [ "::/0" ] from_port = 0 to_port = 0 protocol = "-1" } tags = { Name = "acesso geral" } }

5 respostas

Parece que o problema está no campo VPC ID, vc está passando o nome ao invés do ID.

Ex: vpc-2f09a348

Vale lembrar que o SG precisar estar vinculado com a mesma VPC que vc criou a instância.

Oi Paulo. Mas como eu faço para ter o ID do SecurityGroup se ele é criado junto com a instancia EC2 ? Na teoria ele ainda não existe. Teria que criar ele antes e depois editar o arquivo do Terraform com o ID do SecurityGroup novo. Mas ai não fica muito automatizado sabe ..... Se puder me ajudar nessa agradeço.

Opa, Richard. O ID que me refiro, é o da VPC. Vc consegue pegar esse valor la no console da VPC.

Na hora de criar o Security Group pelo Terraform, vc tem que passar o ID da VPC para ele saber onde ficará associado.

Feito isso, vc passa para a instância EC2 o SG que foi criado. Como ele ainda não foi criado, vc fará a referência para o nome do recurso no Terraform.

No código do Terraform referente ao recurso EC2, na parte que pede o ID do Security Group vc indica o resource.acesso_geral.id para que ele conseguia recuperar esse valor quando o recurso tiver criado.

Aqui tem algumas informações de como funciona a parte do Terraform: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

Paulo, desculpe não entendi a referencia poderia explicar um pouco mais do contexto?

É bem tranquilo Richard.

Em resumo, vc preciar criar o Security Group primeiro, passando na criação dele o ID da VPC que ficará associado.

Dps, na hora de criar a instância vc passa o nome de id referente ao recurso com o final .id na parte de SG da criação da instância no código do Terraform.

Durante o curso o professor deve ter dado alguns exemplo de como passar o id de um recurso para ser usado em outro. Dá uma revisada nas aulas de criação de recursos e variáveis.