-
Inicia sesión en la instancia con SSH o Session Manager.
-
Para confirmar que tienes instalado cloud-init, ejecuta el siguiente comando:
$ cloud-init -v
Si el comando devuelve un error, ejecuta el siguiente comando para instalar una instancia en tu distribución de Linux:
Para instancias basadas en Debian
$ sudo apt-get install cloud-init
Para instancias basadas en RPM
sudo dnf install cloud-init
Para instancias de Suse
zypper install cloud-init
-
Tras confirmar la instalación de cloud-init, continúa con la detención de la instancia.
Nota: Si la acción Detener no está disponible, significa que la instancia ya está detenida o que el dispositivo raíz es un volumen de almacén de instancias.
-
Genera la clave pública a partir de tu clave privada para conectarte con el nuevo usuario.
Nota: Debes tener un par de claves o una clave privada para obtener la clave pública. Para crear un par de claves, consulta Creación de un par de claves para la instancia de Amazon EC2. Para garantizar la seguridad de SSH, se recomienda crear pares de claves mediante la consola de EC2 o una herramienta de terceros.
Para recuperar la clave pública, ejecuta el siguiente comando. Si tu clave privada tiene una contraseña, introdúcela cuando se te solicite.
$ ssh-keygen -f <private_key_file> -y
-
Inserta tu clave pública en el siguiente comando y, a continuación, actualiza el campo de datos de usuario con este comando:
Selecciona la instancia.
En el panel de navegación, elige Acciones y, a continuación, Configuración de la instancia.
Selecciona Editar datos de usuario y, a continuación, pega el script en el campo.
Nota: Sustituye el marcador de posición username por el nombre de usuario que vas a utilizar. En ssh-rsa AB3nzExample, introduce tu clave pública. Si usas una instancia de Debian, cambia el valor del grupo de wheel a sudo:
#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
- name:username
groups: [ wheel ]
shell: /bin/bash
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
ssh-authorized-keys:
- ssh-rsa AB3nzExample
El comando anterior crea un usuario con acceso sin restricciones. Para bloquear el acceso de sudo para el usuario, establece el valor de sudo en false. Para obtener más información, consulta Cloud config examples (Ejemplos de configuración de la nube) en el sitio web de cloud-init.
Nota: De forma predeterminada, las directivas cloud-init solo se ejecutan cuando se inicia una instancia. Sin embargo, cuando usas este script de datos de usuario, cloud-init agrega la clave pública a la instancia cada vez que la instancia se reinicia o arranca de nuevo. Si eliminas el script de datos de usuario, se restaurará la funcionalidad predeterminada.
-
Selecciona Guardar.
-
Elige Acciones, Estado de instancia y, a continuación, Iniciar.
-
Cuando la instancia alcance el estado En ejecución, inicia sesión como el nuevo usuario. El nuevo usuario tiene el mismo comportamiento predeterminado que ec2-user.
Nota: Usa la acción de API ModifyInstanceAttribute para modificar los datos de usuario de una instancia. Crea una política de AWS Identity and Access Management (IAM) para restringir esta acción.