🔐 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:
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 ~/.bashrcIMPORTANTE
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:
# 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:
# 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:
docker login -u $DOCKER_USERNAME -p $DOCKER_TOKEN
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:
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:
aws secretsmanager list-secrets | grep dockerhub-credentialsPara ver los valores almacenados (solo con fines de depuración):
aws secretsmanager get-secret-value --secret-id dockerhub-credentials --query SecretString --output json4️⃣ Próximos Pasos
Ahora que las credenciales están almacenadas de forma segura:
- AWS CodePipeline las recuperará durante las construcciones.
- ¡No necesitas ingresar manualmente las credenciales de Docker de nuevo!
- Elige tu método de construcción de Docker en la siguiente sección. 🚀
