2.5. 문자열 매개변수 보안 참조
문자열 매개변수는 BuildStrategy 또는 Cluster
CR(사용자 정의 리소스)에서 환경 변수, 인수 또는 이미지를 정의할 때 사용됩니다. 빌드 전략 단계에서는 BuildStrategy
$(params.your-parameter-name)
구문을 사용하여 문자열 매개변수를 참조할 수 있습니다.
빌드 전략 단계에서 $(params.your-parameter-name)
구문을 사용하여 시스템 매개변수 및 전략 매개변수를 참조할 수도 있습니다.
Pod에서 모든 $(params.your-parameter-name)
변수가 실제 문자열로 교체됩니다. 그러나 인라인 스크립트를 사용하여 인수에서 string 매개변수를 참조할 때 주의해야 합니다. 예를 들어 스크립트로 정의된 인수로 매개변수 값을 안전하게 전달하려면 다음 접근 방법 중 하나를 선택할 수 있습니다.
- 환경 변수 사용
- 인수 사용
예: 문자열 매개변수를 환경 변수에 참조
문자열 매개 변수를 스크립트 내에서 직접 사용하는 대신 환경 변수에 전달할 수 있습니다. 환경 변수 인용을 사용하면 명령 삽입 취약점을 방지할 수 있습니다. buildah
와 같은 전략에 이 접근 방식을 사용할 수 있습니다. 다음 예제에서는 스크립트 내의 환경 변수를 사용하여 문자열 매개변수를 참조합니다.
apiVersion: shipwright.io/v1beta1 kind: BuildStrategy metadata: name: sample-strategy spec: parameters: - name: sample-parameter description: A sample parameter type: string steps: - name: sample-step env: - name: PARAM_SAMPLE_PARAMETER value: $(params.sample-parameter) command: - /bin/bash args: - -c - | set -euo pipefail some-tool --sample-argument "${PARAM_SAMPLE_PARAMETER}"
예: 문자열 매개변수를 인수로 참조
string 매개변수를 스크립트 내에 정의된 인수로 전달할 수 있습니다. 명령 주입에 대한 감시를 인용하는 적절한 쉘입니다. buildah
와 같은 전략에 이 접근 방식을 사용할 수 있습니다. 다음 예제에서는 스크립트 내에 정의된 인수를 사용하여 문자열 매개변수를 참조합니다.
apiVersion: shipwright.io/v1beta1 kind: BuildStrategy metadata: name: sample-strategy spec: parameters: - name: sample-parameter description: A sample parameter type: string steps: - name: sample-step command: - /bin/bash args: - -c - | set -euo pipefail SAMPLE_PARAMETER="$1" some-tool --sample-argument "${SAMPLE_PARAMETER}" - -- - $(params.sample-parameter)