

• AWS Systems Manager CloudWatch 대시보드는 2026년 4월 30일 이후에는 더 이상 사용할 수 없습니다. 고객은 Amazon CloudWatch 콘솔을 계속 사용하여 현재와 마찬가지로 Amazon CloudWatch 대시보드를 보고, 생성하고, 관리할 수 있습니다. 자세한 내용은 [Amazon CloudWatch 대시보드 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)를 참조하세요.

# 파라미터 처리 문제 해결
<a name="parameter-troubleshooting"></a>

## 일반적인 파라미터 처리 문제
<a name="common-parameter-issues"></a>

**실행 중에 사용할 수 없는 환경 변수**  
**문제:** 환경 변수(`SSM_parameter-name`)를 찾을 수 없어 명령이 실패합니다.  
**가능한 원인:**  
+ SSM Agent 버전이 환경 변수 보간을 지원하지 않습니다.
+ `interpolationType`이 `ENV_VAR`로 설정되지 않았습니다.
+ 파라미터 이름이 예상 환경 변수 이름과 일치하지 않습니다.
**해결 방법**:  
+ SSM Agent 버전이 3.3.2746.0 이상인지 확인합니다.
+ 이전 에이전트 버전에 대한 대체 로직을 추가합니다.

  ```
  if [ -z "${SSM_parameterName+x}" ]; then
      export SSM_parameterName="{{parameterName}}"
  fi
  ```

**특수 문자가 포함된 파라미터 값**  
**문제:** 파라미터 값에 공백, 따옴표 또는 기타 특수 문자가 포함되면 명령이 실패합니다.  
**해결 방법**:  
+ 환경 변수를 참조할 때 적절한 따옴표를 사용합니다.

  ```
  # Correct
  echo "$SSM_parameter-name"
  
  # Incorrect
  echo $SSM_parameter-name
  ```
+ `allowedPattern`을 사용하여 특수 문자를 제한하는 입력 검증을 추가합니다.

**플랫폼 간 일관되지 않은 동작**  
**문제:** 파라미터 처리가 Linux 시스템과 Windows Server 시스템에서 다르게 작동합니다.  
**해결 방법**:  
+ 플랫폼별 환경 변수 구문을 사용합니다.

  ```
  # PowerShell
  $env:SSM_parameter-name
  
  # Bash
  $SSM_parameter-name
  ```
+ 문서에서 플랫폼별 사전 조건 검사를 사용합니다.

**파라미터 값이 제대로 이스케이프되지 않음**  
**문제:** 환경 변수 보간 사용에도 불구하고 명령 주입 취약성.  
**해결 방법**:  
+ 명령에 파라미터 값을 포함할 때는 항상 적절한 이스케이프를 사용합니다.

  ```
  # Correct
  mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\""
  
  # Incorrect
  mysql_command="mysql -u $SSM_username -p$SSM_password"
  ```

## 파라미터 검증 팁
<a name="parameter-validation"></a>

다음 기법을 사용하여 파라미터 처리를 검증합니다.

1. 테스트 환경 변수 가용성:

   ```
   #!/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
   ```

1. 파라미터 패턴 확인:

   ```
   parameters:
     myParameter:
       type: String
       allowedPattern: "^[a-zA-Z0-9_-]+$"
       description: "Test this pattern with sample inputs"
   ```

1. 오류 처리 포함:

   ```
   if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then
       echo "Parameter validation failed"
       exit 1
   fi
   ```