2.5. 文字列パラメーターの安全な参照


文字列パラメーターは、BuildStrategy または ClusterBuildStrategy カスタムリソース (CR) で環境変数、引数、またはイメージを定義するときに使用されます。ビルドストラテジーのステップでは、$(params.your-parameter-name) 構文を使用して文字列パラメーターを参照できます。

注記

ビルドストラテジーステップで $(params.your-parameter-name) 構文を使用して、システムパラメーターとストラテジーパラメーターを参照することもできます。

Pod では、すべての $(params.your-parameter-name) 変数が実際の文字列に置き換えられます。ただし、インラインスクリプトを使用して引数内の文字列パラメーターを参照する場合は注意が必要です。たとえば、スクリプトで定義された引数にパラメーター値を安全に渡すには、次のいずれかの方法を選択できます。

  • 環境変数の使用
  • 引数の使用

例: 文字列パラメーターの環境変数への参照

文字列パラメーターをスクリプト内で直接使用する代わりに、環境変数に渡すことができます。環境変数を引用符で囲むことにより、コマンドインジェクションの脆弱性を回避できます。このアプローチは、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}"

例: 引数への文字列パラメーターの参照

文字列パラメーターをスクリプト内で定義した引数に渡すことができます。適切なシェル引用符を使用すると、コマンドインジェクションを回避できます。このアプローチは、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)
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.