Terraform – como importar AWS S3 bucket

Tenemos una infraestructura gestionada con Terraform, pero nuestro código actual no contempla un bucket S3 que ya existe y necesitamos configurar —en este caso, para definir sus reglas de CORS.Si añadimos el recurso directamente en nuestro main.tf sin más, Terraform detectará que el recurso “no existe” en su estado y querrá crearlo, provocando errores. Por eso, antes debemos importarlo al tfstate. En este post veremos como con Terraform podemos importar un S3 bucket y hacerlo nuestro!

terraform importing resources

Escenario

Supongamos que tenemos un bucket example-cdn-static-files creado manualmente en AWS. Queremos añadirlo a nuestro código Terraform para aplicar cambios de configuración (como CORS o políticas), pero sin perder datos ni interrumpir su funcionamiento. Si lo añadimos directamente al main.tf sin más, Terraform detectará que el recurso “no existe” en su estado (tfstate) y querrá crearlo, provocando errores.

1. Añadir el recurso en Terraform

En nuestro main.tf podemos empezar declarando el recurso:

resource "aws_s3_bucket" "example_cdn_static_files" {
  bucket = "example-cdn-static-files"
  acl    = "private"
}

Pero aún no estará en el estado de Terraform, por lo que debemos importarlo.

2. Importar el bucket al estado

Ejecutamos:

import aws_s3_bucket.example_cdn_static_files example-cdn-static-files

Salida esperada:

Import success! The resources imported are shown above. These are now in your Terraform state.
Import does not currently generate configuration, so you must do this next.
If you do not create configuration for the above resources, then the next `terraform plan` will mark them for destruction.

4. Resumen de pasos

Pues ya estaría, con esta pequeña guía hemos visto como con Terraform podemos importar un S3 bucket

  • Declarar el recurso en main.tf.
  • Ejecutar terraform import para añadirlo al estado.
  • Ajustar la configuración (CORS, políticas, etc.).
  • Validar con terraform plan.

5. Buenas prácticas

  • Usar terraform import antes de cualquier cambio.
  • Hacer copia del tfstate antes de modificarlo.
  • Validar con terraform plan tras cada import.

Con este proceso, el comando Terraform importar S3 bucket se convierte en una herramienta esencial para integrar recursos existentes y gestionarlos con código, evitando recreaciones y errores.

Links

Leave a Reply

Your email address will not be published. Required fields are marked *