搜索

2.5. 安全引用字符串参数

download PDF

当您在 BuildStrategyClusterBuildStrategy 自定义资源(CR)中定义环境变量、参数或镜像时,会使用字符串参数。在构建策略步骤中,您可以使用 $(params.your-parameter-name) 语法引用字符串参数。

注意

您还可以在构建策略步骤中使用 $(params.your-parameter-name) 语法来引用系统参数和策略参数。

在 pod 中,所有 $(params.your-parameter-name) 变量都由实际字符串替代。但是,在使用内联脚本引用参数中的 string 参数时,您必须注意。例如,要将参数值安全地传递给使用脚本定义的参数,您可以选择以下方法之一:

  • 使用环境变量
  • use 参数

示例:引用字符串参数到环境变量中

您可以将 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 参数传递给脚本中定义的参数。适当的 shell 引用保护命令注入.您可以使用此方法进行策略,如 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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.