AWS Systems Manager Change Manager ya no está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte Cambio en la disponibilidad de Change Manager de AWS Systems Manager.
Solución de problemas de gestión de parámetros
Problemas comunes de gestión de parámetros
- Las variables de entorno no están disponibles durante la ejecución
-
Problema: los comandos fallan porque no se encuentran las variables de entorno (
SSM_).parameter-nameCausas posibles:
-
La versión de SSM Agent no admite la interpolación de variables de entorno
-
interpolationTypeno está configurado comoENV_VAR -
El nombre del parámetro no coincide con el nombre de la variable de entorno esperada
Solución:
-
Compruebe que la versión de SSM Agent sea 3.3.2746.0 o posterior
-
Agregue una lógica alternativa para las versiones anteriores del agente:
if [ -z "${SSM_parameterName+x}" ]; then export SSM_parameterName="{{parameterName}}" fi
-
- Valores de parámetro que contienen caracteres especiales
-
Problema: los comandos fallan cuando los valores de los parámetros contienen espacios, comillas u otros caracteres especiales.
Solución:
-
Utilice las comillas adecuadas al hacer referencia a las variables de entorno:
# Correct echo "$SSM_parameter-name" # Incorrect echo $SSM_parameter-name -
Agregue la validación de entrada mediante
allowedPatternpara restringir los caracteres especiales
-
- Comportamiento incoherente en todas las plataformas
-
Problema: la gestión de parámetros funciona de manera diferente en Linux y en los sistemas Windows Server.
Solución:
-
Utilice la sintaxis de variables de entorno específica de la plataforma:
# PowerShell $env:SSM_parameter-name# Bash $SSM_parameter-name -
Utilice en su documento comprobaciones de condiciones previas específicas de la plataforma
-
- Los valores de los parámetros no se han filtrado correctamente
-
Problema: hay vulnerabilidades en la inyección de comandos a pesar de utilizar la interpolación de variables de entorno.
Solución:
-
Utilice siempre el método de escape adecuado al incluir valores de parámetros en los comandos:
# Correct mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\"" # Incorrect mysql_command="mysql -u $SSM_username -p$SSM_password"
-
Consejos de validación de parámetros
Utilice estas técnicas para validar su gestión de parámetros:
-
Pruebe la disponibilidad de las variables del entorno:
#!/bin/bash # Print all SSM_ environment variables env | grep ^SSM_ # Test specific parameter if [ -n "$SSM_parameter" ]; then echo "Parameter is available" else echo "Parameter is not available" fi -
Verifique los patrones de los parámetros:
parameters: myParameter: type: String allowedPattern: "^[a-zA-Z0-9_-]+$" description: "Test this pattern with sample inputs" -
Incluya la gestión de errores:
if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then echo "Parameter validation failed" exit 1 fi