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.