es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo acceder a pares clave-valor almacenados en AWS Parameter Store utilizando un script de Terraform.

Requisito: Quiero pasar mi clave SSH a la instancia de EC2 durante el tiempo de ejecución, la cual está almacenada en el almacén de parámetros usando código de Terraform.

Aquí está mi configuración de lanzamiento:

data "aws_ssm_parameter" "key_pair" {
  name = "/Test/keystest"
}

resource "aws_launch_configuration" "app" {
  image_id = data.aws_ssm_parameter.ami.value
  instance_type = "t2.micro"
  key_name = data.aws_ssm_parameter.key_pair.value
  security_groups = [aws_security_group.sg_web.id]
  associate_public_ip_address = true

  user_data = <<USER_DATA
#!/bin/bash
sudo su
yum update -y
yum install httpd -y
cd /var/www/html
echo "MyGoogle-2" > index.html
service httpd start
chkconfig httpd on
  USER_DATA

  lifecycle {
    create_before_destroy = false
  }
}

Cuando ejecuto el código anterior, obtengo el siguiente error:

Error al crear la configuración de lanzamiento: ValidationError: Se detectó 1 error de validación:
Valor 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBBBnLT+Q2ga26mv4coeobj4flEDtX/lfmP4tCWYhMW868UqHIJw4C+Ns1yh3Ondp1sW094UR6NCJHKJeGkFrzB7/EaPKLt/z3wJceIsXKSsqS539YiaslIY54t7fDpM0qcE/Y6K+zS21lGLEuAys/OwgutZGgFxDSDWtTleU0kRvnI4MVsPtWLMu4AzfvrlHrYkv2fGiwfJzq/UjnF+TvHTPoYMp3TImjvhLzrmL1y2XrWesj7Q1E1xsgMgs4N5WIbXGI45KuRBcJVNmSpw/quv5vz/3NxtRQwmQcPriJo+Fucj14+UsW+CD3agbPn4arh4PE8E2Gel Test' en 'keyName' no cumple con la restricción: el miembro debe tener una longitud menor o igual a 255
│       

código de estado: 400, ID de solicitud: f5bf125c-54b8-4bf5-ad13-aead7176f3a3
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el nombre de la clave SSH que se está pasando al parámetro key_name es demasiado largo. La longitud máxima para los nombres de clave en AWS es de 255 caracteres.

    Para solucionar este problema, debes verificar la longitud del nombre de la clave SSH almacenada en el almacén de parámetros SSM y asegurarte de que sea de 255 caracteres o menos. Alternativamente, puedes considerar usar un nombre de clave más corto o usar una convención de nomenclatura que incluya un prefijo o sufijo.

    Una vez que hayas resuelto el problema con la longitud del nombre de la clave, puedes pasar la clave SSH a la instancia de EC2 durante la ejecución agregando el siguiente código a la sección de datos de usuario del recurso aws_launch_configuration:

    echo "${key_pair.value}" >> /home/ec2-user/.ssh/authorized_keys
    

    Esto recuperará la clave SSH del almacén de parámetros SSM y la anexará al archivo authorized_keys del usuario ec2-user. Esto te permitirá acceder por SSH a la instancia utilizando la clave privada asociada.

Comments are closed.