2.5. 文字列パラメーターのセキュアな参照
ビルドストラテジーで文字列パラメーターを参照するには、$(params.your-parameter-name) という構文を使用します。ビルドが実行されると、システムは変数を実際の文字列に置き換えます。
システムパラメーターとストラテジーパラメーターには、$(params.your-parameter-name) という構文を使用できます。
インラインスクリプトを使用する際にコマンドインジェクションの脆弱性を防ぐには、以下のいずれかの安全な方法を使用してください。
- 環境変数の使用
引数の使用
- 文字列パラメーターを環境変数に参照する
パラメーターを環境変数に渡します。次に、スクリプト内でその変数を引用符で囲みます。以下の例では、スクリプト内の環境変数を使用して文字列パラメーターを参照します。
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}"- 文字列パラメーターを引数に参照する
パラメーターをスクリプトへの引数として渡してください。次に、シェル変数を使用してそれを読み取ります。以下の例では、スクリプト内で定義した引数を使用して、文字列パラメーターを参照します。
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)