Skip to content

🔐 Autenticación CLI de Docker Hub

En esta sección realizaremos lo siguiente:

  • Autenticarnos con Docker Hub a través de la CLI.
  • Almacenar credenciales de forma segura en AWS Secrets Manager para usar en AWS CodePipeline.

1️⃣ Inicio de Sesión en Docker Hub vía CLI

🔹 Solicitud de Credenciales de Docker

Ejecuta el siguiente comando para solicitar tus credenciales de Docker Hub y almacenarlas en variables:

bash
echo '
# Docker Hub Credentials
export DOCKER_USERNAME="'$(read -p "Enter Docker Hub username: " username; echo $username)'"
export DOCKER_TOKEN="'$(read -s -p "Enter Docker Hub token: " token; echo $token)'"' >> ~/.bashrc

source ~/.bashrc

IMPORTANTE

Al ingresar tu token de Docker Hub, la entrada estará oculta por razones de seguridad. Este es el comportamiento normal; tu token se está capturando correctamente aunque no veas caracteres en pantalla. Escribe tu token con cuidado y presiona Enter solo una vez al terminar para evitar entradas múltiples.

🔹 Verifica tus Credenciales Antes de Iniciar Sesión

Verifiquemos que tus credenciales se capturaron correctamente antes de intentar el login:

bash
# Esto mostrará solo los primeros 4 caracteres de tu token seguidos de asteriscos
echo "Username: $DOCKER_USERNAME"
echo "Token: ${DOCKER_TOKEN:0:4}$(printf '%*s' $((${#DOCKER_TOKEN}-4)) | tr ' ' '*')"

SOLUCIÓN DE PROBLEMAS

Si el nombre de usuario es incorrecto o el token aparece vacío, puedes restablecerlos con estos comandos:

bash
# Solo ejecuta esto si necesitas restablecer tus credenciales
export DOCKER_USERNAME=$(read -p "Enter Docker Hub username: " username; echo $username)
export DOCKER_TOKEN=$(read -s -p "Enter Docker Hub token: " token; echo $token)

Ahora, iniciemos sesión en Docker Hub:

bash
docker login -u $DOCKER_USERNAME -p $DOCKER_TOKEN

Docker Login


2️⃣ Almacenamiento Seguro en AWS Secrets Manager

En lugar de escribir las credenciales directamente en el código, las almacenaremos de forma segura en AWS Secrets Manager.

Crea un secreto de AWS seguro utilizando las credenciales ingresadas:

bash
aws secretsmanager create-secret --name dockerhub-credentials \
  --description "Docker Hub credentials for AWS CodePipeline" \
  --secret-string "{\"DOCKER_USERNAME\":\"$DOCKER_USERNAME\", \"DOCKER_TOKEN\":\"$DOCKER_TOKEN\"}"

✅ Este comando almacena de forma segura DOCKER_USERNAME y DOCKER_TOKEN en AWS Secrets Manager.


3️⃣ Verificar la Creación del Secreto

Ejecuta lo siguiente para confirmar que el secreto existe:

bash
aws secretsmanager list-secrets | grep dockerhub-credentials

Para ver los valores almacenados (solo con fines de depuración):

bash
aws secretsmanager get-secret-value --secret-id dockerhub-credentials --query SecretString --output json

4️⃣ Próximos Pasos

Ahora que las credenciales están almacenadas de forma segura:

  1. AWS CodePipeline las recuperará durante las construcciones.
  2. ¡No necesitas ingresar manualmente las credenciales de Docker de nuevo!
  3. Elige tu método de construcción de Docker en la siguiente sección. 🚀

Released under the GPL-3.0 License.