miércoles, julio 26, 2023

Cómo utilizar el servicio Secrets Manager para guardar las claves privadas de SSH

Para guardar la clave privada en el servicio Secrets Manager como un secreto en modo texto sin formato, sigue estos pasos

Supongamos que la clave privada es la siguiente:

$ cat test-ssh-keymanager.pem
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtz
c2gtZWQyNTUxOQAAACA1pQ/Y0cEWg9g5hFaC2rQwekb6Vq4XQQnIZ97FmevtUgAA
AIjWYCtU1mArVAAAAAtzc2gtZWQyNTUxOQAAACA1pQ/Y0cEWg9g5hFaC2rQwekb6
Vq4XQQnIZ97FmevtUgAAAEAwUQIBATAFBgMrZXAEIgQgJRY8kmxcE/QPgCTmOxdp
RDWlD9jRwRaD2DmEVoLatDB6RvpWrhdBCchn3sWZ6+1SAAAAAAECAwQF
-----END OPENSSH PRIVATE KEY-----

Y lo hemos guardado en un secreto llamado "keyssh". Con el siguiente comando, podemos recuperar su valor y mostrarlo en pantalla:

$ aws secretsmanager get-secret-value --secret-id keyssh \
--region eu-west-1 | jq --raw-output '.SecretString'
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtz
c2gtZWQyNTUxOQAAACA1pQ/Y0cEWg9g5hFaC2rQwekb6Vq4XQQnIZ97FmevtUgAA
AIjWYCtU1mArVAAAAAtzc2gtZWQyNTUxOQAAACA1pQ/Y0cEWg9g5hFaC2rQwekb6
Vq4XQQnIZ97FmevtUgAAAEAwUQIBATAFBgMrZXAEIgQgJRY8kmxcE/QPgCTmOxdp
RDWlD9jRwRaD2DmEVoLatDB6RvpWrhdBCchn3sWZ6+1SAAAAAAECAwQF
-----END OPENSSH PRIVATE KEY-----

Si ejecutamos lo siguiente, recuperamos el valor y lo guardamos en una variable de entorno:

$ secret_key=$(aws secretsmanager get-secret-value --secret-id keyssh \
--region eu-west-1 | jq --raw-output '.SecretString')

Luego, podemos agregarla al agente de SSH (si no está activo, ejecutamos 'eval $(ssh-agent)'), donde $secret_key es la variable de entorno donde hemos guardado la clave:

$ ssh-add - <<< ${secret_key}

Listamos las claves para comprobar:

$ ssh-add -l

Y finalmente, podemos hacer SSH al servidor. El SSH se encargará de leer la clave desde el ssh-agent:

$ ssh ec2-user@A.BB.CCC.DDDD

No hay comentarios:

Publicar un comentario

Cómo utilizar el servicio Secrets Manager para guardar las claves privadas de SSH

Para guardar la clave privada en el servicio Secrets Manager como un secreto en modo texto sin formato, sigue estos pasos Supongamos que la ...