Configurar un acceso SSH a instancias EC2 en AWS

A menudo es importante tener acceso a las instancias EC2 en AWS (Amazon Web Services), por lo tanto, te voy a mostrar como configurar el acceso SSH a instancias EC2 en AWS de forma segura utilizando un par de llaves, las cuales vamos a generar a continuación.

Para poder realizar este procedimiento es necesario que ya tengas creada tu instancia de EC2, si aún no la tienes, usa UNO de estos DOS artículos para crearla:
1. Configurar un servidor NGINX de instancia única con Elastic Beanstalk
2. Arquitectura de Alta Disponibilidad en AWS con Elastic Beanstalk paso a paso

Para que configurar un acceso SSH a instancias EC2 en AWS?

El acceso SSH a una instancia EC2 te permite utilizar la linea de comandos de la instancia en cuestión, habilitandote para ejecutar cualquier comando que necesites. Los usos pueden variar mucho pero en esencia algunos de estos usos son:

  • Instalar librerías
  • Debuggear viendo los logs
  • Hacer configuraciones especiales
  • Probar la ejecución de comandos
  • Entre otros…

Pero, que es un par de llaves?

Un par de claves, que consta de una clave privada y una clave pública, es un conjunto de credenciales de seguridad que se utiliza para demostrar su identidad cuando se conecta a una instancia. Amazon EC2 almacena la clave pública y usted almacena la clave privada. Utilice la clave privada, en lugar de una contraseña, para acceder de forma segura a sus instancias. Cualquier persona que posea sus claves privadas puede conectarse a sus instancias, por lo que es importante que almacene sus claves privadas en un lugar seguro.

https://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/ec2-key-pairs.html

Como configurar un acceso SSH a instancias EC2 en AWS

Las instancias EC2 pueden crearse de diferentes formas, pero por lo regular, son creadas por Elastic Beanstalk. Por lo tanto, realizaremos los siguientes pasos:

  1. Crear par de claves en EC2 y descarga la llave
  2. Asignar par de claves en un ambiente de Elastic Beanstalk
  3. Configurar el grupo de seguridad para permitirnos acceso SSH desde nuestra IP
  4. Asignar los permisos apropiados para la llave descargada
  5. Acceder por SSH a una instancia EC2 de Elastic Beanstalk de forma segura

Para hacer esto, entra al apartado de EC2 en tu consola de AWS, o bien, entra dando clic aquí. Una vez allí, selecciona el menú “Key Pairs” como se muestra en la imagen a continuación:

“Key pairs” es la sección desde la cual podremos crear nuestro par de claves.

Una vez que des clic en “Key pairs” llegarás a una sección que contiene un botón de color naranja llamado “Create key pair“; presiona ese botón y deberás llegar a la siguiente pantalla en la que deberás darle nombre a tu llave, puedes poner lo que tu prefieras, pero te recomiendo que pongas el nombre del ambiente a la cual la vas a asignar, ya que como buena practica se debe tener un par de claves por ambiente.

Agrega el .pem al final del nombre de tu par de claves.

Posteriormente, da clic en “Create key pair“, lo que ocasionará que se descargue el archivo, en mi caso, “MostSecureWebsite.pem“.

Asegúrate de almacenar esta llave en algún lugar seguro de tu computadora ya que, además de que no puedes descargarla de nuevo, deberás usarla siempre que quieras acceder vía SSH a tu instancia EC2. NO se te vaya a ocurrir guardarla dentro del código fuente del proyecto, ya que solo aquellas personas que deban tener acceso vía SSH deben tenerla y no queremos que alguien no autorizado pueda tener acceso a ella.

Dirígete al ambiente de Elastic Beanstalk en el cual vas a configurar el par de claves recién creadas. Una vez que estes ahí da clic en el menú “Configuration” como se muestra en la imagen:

Al dar clic en “Configuration” se desplegarán las opciones de configuración de nuestro ambiente de Elastic Beanstalk. Busca la sección de “Security” y da clic en “Edit”.

Al dar clic en “Configuration” se desplegarán las opciones de configuración de nuestro ambiente de Elastic Beanstalk. Busca la sección de “Security” y da clic en “Edit“, lo que te desplegará una pantalla en la cual podremos asignar nuestro par de claves.

Bajo “EC2 key pair” selecciona de la lista el nombre de tu par de claves y da clic en “Apply”.

Bajo “EC2 key pair” selecciona de la lista el nombre de tu par de claves y da clic en “Apply“. Al hacerlo se te va a pedir confirmar la acción, por lo que debes proceder a confirmar dando clic en el botón “Confirm“.

Da clic en el boton “Confirm” para continuar.

Ya que confirmaste esta acción, Elastic Beanstalk, va a reconstruir tu ambiente con la nueva configuración y tu par de claves ya estará asociada a tu ambiente.

En este paso, es necesario que vayamos a la sección de EC2 y que esta vez demos clic en “Security groups”, como se muestra a continuación:

Da clic en “Security groups”

A continuación, selecciona el grupo de seguridad correspondiente a tu instancia de EC2. Podrás notar en la parte inferior de la pantalla (una vez selecciones el grupo de seguridad y vayas al tab “Inbound rules“) que ya existe una regla para el puerto 22. El problema es que esta regla permite que cualquier IP pueda intentar tener acceso a la instancia vía SSH, por lo que vamos a restringirlo a que solo se pueda acceder desde nuestra propia IP.

Selecciona el grupo de seguridad de tu ambiente y da clic en “Edit inbound rules”.

Así que da clic en “Edit inbound rules“, en la regla del puerto 22, cambia “0.0.0.0/0” por tu IP seleccionando “My IP” en la lista de la columna “Source” y posteriormente da clic en “Save rules” para guardar el cambio.

En la regla de tipo SSH selecciona “My IP” de la lista en la columna “Source”.

Tenemos que asignarle permisos especiales de escritura y lectura a la llave descargada. Así que, supongamos que cuando se descargo la llave (en mi caso MostSecureWebsite.pem) la cambiaste de ubicación a un nivel arriba de la carpeta de tu proyecto. Por lo tanto, los comandos que debes ejecutar para darle los permisos adecuados son los siguientes:

# Cambia de ubicación la llave
# Obviamente, cambia el nombre del archivo y la ruta en donde quieres guardar la llave
mv ~/Downloads/MostSecureWebsite.pem ~/folderEnDondeGuardasTusProyectos/MostSecureWebsite.pem

# Asigna permisos de lectura y escritura
chmod 400 ~/folderEnDondeGuardasTusProyectos/MostSecureWebsite.pem

Por último, nos toca acceder a nuestra instancia EC2 creada con Elastic Beanstalk vía SSH. Para hacerlo, ejecuta el siguiente comando en tu terminal:

# Obviamente, cambia el nombre del archivo y la ruta en donde está guardada tu llave
# También cambia "tudominio.com" por la dirección de tu instancia
ssh -I ~/folderEnDondeGuardasTusProyectos/MostSecureWebsite.pem ec2-user@tudominio.com -o "ServerAliveInterval 60"

Y listo, con esto ya conoces cómo configurar un acceso SSH a instancias EC2 en AWS de forma segura!

Hasta la próxima!

Espero que te haya gustado y ayudado este artículo, de ser así, suscríbete para que seas notificad@ siempre que suba artículos sobre automatización y seguridad informática, me lo agradecerás después.También puedes seguirme en Instagram en @andres.gtz y hacerme las preguntas que desees. Así mismo, agradezco tu generosidad si deseas donar criptomonedas a alguna de las siguientes direcciones:

  • Bitcoin
  • Ethereum
  • Tether
  • Cardano
  • Xrp
  • Polkadot
  • Binance coin
  • Litecoin
  • Stellar
  • Dogecoin
Scan to Donate Bitcoin to 3JnWF47iLsW4gHW44k6f5EJoJkgeABZccw

Donate Bitcoin to this address

Scan the QR code or copy the address below into your wallet to send some Bitcoin

Scan to Donate Ethereum to 0xfe94427014c10cbe26bc27ae5552f09cdfb8c16c

Donate Ethereum to this address

Scan the QR code or copy the address below into your wallet to send some Ethereum

Scan to Donate Tether to 0xfe94427014c10cbe26bc27ae5552f09cdfb8c16c

Donate Tether to this address

Scan the QR code or copy the address below into your wallet to send some Tether

Scan to Donate Cardano to DdzFFzCqrhtAfacNgyMYvpK83osK6ZesHLvUgCh3hs4hUBvvTanzpST8L7Lyd2KRCoQrTZXfGdptv5gPh4AmAEYKctBBdHfZ1fKPRpsu

Donate Cardano to this address

Scan the QR code or copy the address below into your wallet to send some Cardano

Scan to Donate Xrp to rNFugeoj3ZN8Wv6xhuLegUBBPXKCyWLRkB

Donate Xrp to this address

Scan the QR code or copy the address below into your wallet to send some Xrp

Tag/Note:- 1880584351
Scan to Donate Polkadot to 1JXaBXPJ1NwnjVJYkDgBL7yXg5VhuDNKSyvD9GF7z3V3yqm

Donate Polkadot to this address

Scan the QR code or copy the address below into your wallet to send some Polkadot

Scan to Donate Binance coin to bnb13q87ekxvvte78t2q7z05lzfethnlht5agfh4ur

Donate Binance coin to this address

Scan the QR code or copy the address below into your wallet to send some Binance coin

Tag/Note:- 1880584351
Scan to Donate Litecoin to MDyYYfAmDE4KHEbeJYbTG3QfGzg5c9cKNB

Donate Litecoin to this address

Scan the QR code or copy the address below into your wallet to send some Litecoin

Scan to Donate Stellar to GAJ4BSGJE6UQHZAZ5U5IUOABPDCYPKPS3RFS2NVNGFGFXGVQDLBQJW2P

Donate Stellar to this address

Scan the QR code or copy the address below into your wallet to send some Stellar

Tag/Note:- 1880584351
Scan to Donate Dogecoin to DRcWNKKdyRkmFxRXenMz1qsD9MLbLPqXoE

Donate Dogecoin to this address

Scan the QR code or copy the address below into your wallet to send some Dogecoin

Si te quedaron dudas, puedes escribirlas aquí en los comentarios, o bien, escríbeme a mi Instagram @andres.gtz.

Aprende a Instalar Laravel + Base de datos con Amazon Web Services paso a paso Arquitectura de Alta Disponibilidad en AWS con Elastic Beanstalk paso a paso Forzar HTTPS en Elastic Beanstalk con Nginx
View Comments
There are currently no comments.