Loading build_and_push_and_deploy_for_linux.sh 0 → 100755 +66 −0 Original line number Diff line number Diff line #!/bin/bash set -e # Detener la ejecución si ocurre un error # Función para manejar errores handle_error() { echo "Error en el script. Línea: $1" exit 1 } # Capturar errores y llamar a la función handle_error trap 'handle_error $LINENO' ERR # Verificar si AWS CLI está instalado if ! command -v aws &> /dev/null then echo "AWS CLI no está instalado. Por favor, instala AWS CLI y vuelve a ejecutar el script." exit 1 fi # Pedir al usuario las credenciales base (sin MFA) read -p "Introduce tu AWS Access Key ID: " AWS_ACCESS_KEY_ID_BASE read -s -p "Introduce tu AWS Secret Access Key: " AWS_SECRET_ACCESS_KEY_BASE echo "" # Exportar las credenciales base para la sesión export AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID_BASE" export AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY_BASE" # Comprobar si las credenciales base funcionan ejecutando un comando sencillo aws sts get-caller-identity || { echo "Error: No se pueden utilizar las credenciales base"; exit 1; } # Pedir al usuario el ARN de MFA read -p "Introduce el ID de cuenta de AWS (ej. 230672794366): " AWS_ACCOUNT_ID read -p "Introduce el nombre del dispositivo MFA (ej. google_authenticator_phone): " MFA_DEVICE MFA_ARN="arn:aws:iam::$AWS_ACCOUNT_ID:mfa/$MFA_DEVICE" # Autenticación MFA con AWS para obtener un token temporal read -p "Introduce el código MFA de 6 dígitos: " MFA_CODE # Obtener un token temporal usando MFA echo "Autenticando con AWS usando MFA..." TEMP_CREDS=$(aws sts get-session-token --serial-number "$MFA_ARN" --token-code "$MFA_CODE" --output json) # Verificar si se obtuvieron las credenciales temporales if [ -z "$TEMP_CREDS" ]; then echo "Error: No se pudo obtener el token temporal de AWS. Verifica el código MFA." exit 1 fi # Exportar credenciales temporales export AWS_ACCESS_KEY_ID=$(echo "$TEMP_CREDS" | jq -r '.Credentials.AccessKeyId') export AWS_SECRET_ACCESS_KEY=$(echo "$TEMP_CREDS" | jq -r '.Credentials.SecretAccessKey') export AWS_SESSION_TOKEN=$(echo "$TEMP_CREDS" | jq -r '.Credentials.SessionToken') # Comprobar si las credenciales temporales han sido exportadas correctamente if [ -z "$AWS_ACCESS_KEY_ID" ] || [ -z "$AWS_SECRET_ACCESS_KEY" ] || [ -z "$AWS_SESSION_TOKEN" ]; then echo "Error: No se exportaron correctamente las credenciales temporales." exit 1 else echo "Credenciales temporales obtenidas y exportadas correctamente." fi # Comprobar si las credenciales temporales funcionan ejecutando un comando sencillo aws sts get-caller-identity || Loading
build_and_push_and_deploy_for_linux.sh 0 → 100755 +66 −0 Original line number Diff line number Diff line #!/bin/bash set -e # Detener la ejecución si ocurre un error # Función para manejar errores handle_error() { echo "Error en el script. Línea: $1" exit 1 } # Capturar errores y llamar a la función handle_error trap 'handle_error $LINENO' ERR # Verificar si AWS CLI está instalado if ! command -v aws &> /dev/null then echo "AWS CLI no está instalado. Por favor, instala AWS CLI y vuelve a ejecutar el script." exit 1 fi # Pedir al usuario las credenciales base (sin MFA) read -p "Introduce tu AWS Access Key ID: " AWS_ACCESS_KEY_ID_BASE read -s -p "Introduce tu AWS Secret Access Key: " AWS_SECRET_ACCESS_KEY_BASE echo "" # Exportar las credenciales base para la sesión export AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID_BASE" export AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY_BASE" # Comprobar si las credenciales base funcionan ejecutando un comando sencillo aws sts get-caller-identity || { echo "Error: No se pueden utilizar las credenciales base"; exit 1; } # Pedir al usuario el ARN de MFA read -p "Introduce el ID de cuenta de AWS (ej. 230672794366): " AWS_ACCOUNT_ID read -p "Introduce el nombre del dispositivo MFA (ej. google_authenticator_phone): " MFA_DEVICE MFA_ARN="arn:aws:iam::$AWS_ACCOUNT_ID:mfa/$MFA_DEVICE" # Autenticación MFA con AWS para obtener un token temporal read -p "Introduce el código MFA de 6 dígitos: " MFA_CODE # Obtener un token temporal usando MFA echo "Autenticando con AWS usando MFA..." TEMP_CREDS=$(aws sts get-session-token --serial-number "$MFA_ARN" --token-code "$MFA_CODE" --output json) # Verificar si se obtuvieron las credenciales temporales if [ -z "$TEMP_CREDS" ]; then echo "Error: No se pudo obtener el token temporal de AWS. Verifica el código MFA." exit 1 fi # Exportar credenciales temporales export AWS_ACCESS_KEY_ID=$(echo "$TEMP_CREDS" | jq -r '.Credentials.AccessKeyId') export AWS_SECRET_ACCESS_KEY=$(echo "$TEMP_CREDS" | jq -r '.Credentials.SecretAccessKey') export AWS_SESSION_TOKEN=$(echo "$TEMP_CREDS" | jq -r '.Credentials.SessionToken') # Comprobar si las credenciales temporales han sido exportadas correctamente if [ -z "$AWS_ACCESS_KEY_ID" ] || [ -z "$AWS_SECRET_ACCESS_KEY" ] || [ -z "$AWS_SESSION_TOKEN" ]; then echo "Error: No se exportaron correctamente las credenciales temporales." exit 1 else echo "Credenciales temporales obtenidas y exportadas correctamente." fi # Comprobar si las credenciales temporales funcionan ejecutando un comando sencillo aws sts get-caller-identity ||