查找掩码 CI/CD 变量的值

     2023-02-19     302

关键词:

【中文标题】查找掩码 CI/CD 变量的值【英文标题】:Find the value of a masked CI/CD variable 【发布时间】:2021-12-15 18:29:09 【问题描述】:

我目前正在尝试在 VM 中查找 CI/CD 变量的值。我试图输出它,但我发现变量的值在作业日志中被屏蔽了。这是我在 .gitlab-ci.yml 中使用的代码。

image: python:3

stages:
  - deploy

deploy:
  stage: deploy
  script:
    - echo "List all CI/CD variables"
    - export

有问题的行是

...     
declare -x Secret_variable ="[MASKED]"
...

有没有办法让我在不修改 Gitlab 变量部分中的复选框的情况下获取查找值?

【问题讨论】:

如果你能够在 Gitlab CI 日志中显示一个被掩码的变量,那将超出该变量被 被掩码 的全部目的。屏蔽变量正是为了这个目的,它的值不会意外泄漏到日志中。 有权限的可以查看CI/CD设置页面的值。只需点击“显示值”按钮。 【参考方案1】:

您可以通过单击“显示值”按钮在项目(或组,如果它是组变量)的设置页面中显示 CI/CD 变量的值。

您必须拥有maintainer permission 或更高版本才能执行此操作。

或者,您可以在作业日志中公开机密,如果您转换值使其不会在作业日志中被屏蔽。这是一个坏主意,因为您会以明文形式公开敏感值,但仍然可以这样做。

与其他 CI 平台不同,GitLab 仅屏蔽 exact 值。例如,您可以打印 base64 编码的值、以相反的顺序打印字符、以任何方式破坏它们等等,它们不会在作业日志中被屏蔽。

知道这可能会意外发生也很好,例如,如果您使用 curl 中的机密作为启用详细程度的基本身份验证请求,因为详细日志将显示参数 base64 编码。例如,curl -vvv --user "$USERNAME" --password "$SECRET_PASSWORD" 将在作业日志中公开您的 CI/CD 变量。

当然,你也可以故意这样做......

expose_secrets:
  script:
    - echo $SUPER_SECRET | base64

GitLab 的安全模型围绕受信任的开发人员工作。除非您有正当理由这样做,否则您显然不应该这样做。这样做可能会让你在很多地方遇到麻烦,除非你的工作是对系统进行渗透测试。当秘密像这样暴露在作业日志中时,即使是 base64 格式,也应该被视为泄露并立即轮换。

【讨论】:

如何正确设置环境变量 Gitlab CI/CD 和 Docker

】如何正确设置环境变量GitlabCI/CD和Docker【英文标题】:HowtosetenvironmentalvariablesproperlyGitlabCI/CDandDocker【发布时间】:2020-01-1003:02:15【问题描述】:我是Docker和带有GitlabCI/CD的CI/CD的新手。我的Django项目的根目录中有.env文件,其中... 查看详情

GItLab CI/CD 只为开发分支添加变量

】GItLabCI/CD只为开发分支添加变量【英文标题】:GItLabCI/CDaddvariableonlyfordevelopbranch【发布时间】:2022-01-1817:17:45【问题描述】:我有一个GitLab项目,它使用管道的包含和变量,例如:include:-project:a/bfile:/file.gitlab-ci.ymlvariables:Test:te... 查看详情

如何为 ApolloClient 设置环境变量,该变量应该在 CI/CD 的服务器端呈现

】如何为ApolloClient设置环境变量,该变量应该在CI/CD的服务器端呈现【英文标题】:HowtosetenvironmentvariableforApolloClientthatshouldbeserversiderenderedforCI/CD【发布时间】:2021-12-3015:48:01【问题描述】:我有以下apolloClient/***InitializesanApolloCli... 查看详情

在 Gitlab CI/CD 管道脚本中使用 shell 变量?

】在GitlabCI/CD管道脚本中使用shell变量?【英文标题】:UsingshellvariableswithinaGitlabCI/CDpipelinescript?【发布时间】:2022-01-1920:22:42【问题描述】:我有一个gitlabci/cd管道,其中包含以下内容::my_script:stage:stagescript:-cddir-ls-d*/>lines.txt-wh... 查看详情

带有 maven 的 gitlab CI/CD 不会在 application.properties 中设置环境变量

】带有maven的gitlabCI/CD不会在application.properties中设置环境变量【英文标题】:gitlabCI/CDwithmavendoesn\'tsetupenvironmentvariablesinapplication.properties【发布时间】:2021-12-0108:27:49【问题描述】:我正在尝试使用maven构建CI/CD管道。我遇到的问... 查看详情

如何将 gitlab ci/cd 变量传递给 kubernetes(AKS) deployment.yaml

】如何将gitlabci/cd变量传递给kubernetes(AKS)deployment.yaml【英文标题】:Howtopassgitlabci/cdvariablestokubernetes(AKS)deployment.yaml【发布时间】:2019-11-0410:12:56【问题描述】:我有一个node.js(express)项目已签入gitlab,它正在Kubernetes中运行。我知... 查看详情

Gitlab CI/CD 自动标记发布

...做的是从composer.json文件中获取版本号,将其存储在一个变量中,然后将此变量与git一起使用来标记分支。我在做什么这是我的.gitlab-ci.ym 查看详情

在 GitLab CI/CD 作业中将环境变量传递给 docker run 返回无效的参考格式?

】在GitLabCI/CD作业中将环境变量传递给dockerrun返回无效的参考格式?【英文标题】:PassingenvironmentvariablestodockerruninGitLabCI/CDjobreturninginvalidreferenceformat?【发布时间】:2020-03-2105:14:28【问题描述】:我在工作日志中收到以下错误消... 查看详情

在 App Engine for CI/CD Pipeline 中存储环境变量的位置?

】在AppEngineforCI/CDPipeline中存储环境变量的位置?【英文标题】:WheretostoreenvironmentvariablesinAppEngineforCI/CDPipeline?【发布时间】:2021-04-2508:52:22【问题描述】:我正在云上部署我的第一个应用程序,并且我正在尝试设置我的环境变... 查看详情

Gitlab CI/CD - 用户和权限最佳实践

...【发布时间】:2020-12-2105:57:06【问题描述】:我正在尝试查找一些指南或文档来讨论设置gitlabCI/CD以自动部署Web服务器(nginx)/Centos或任何Linux的最佳实践。将CI/CD设置为root用户很容易,但我不喜欢在gitlab中拥有root密钥的想法。如... 查看详情

带有 gitlab CI/CD 的 Rails .env

...-07-2212:55:40【问题描述】:遇到Rails项目通过gitlabCI的环境变量问题。目前,我正在使用dotenvgem来存储我的项目的凭据。另外,我已经在gitlabCI环境中分配了环境变量。比如database.yml:host:<%=ENV[\'DATABASE_HOST\']%> 查看详情

Gitlab CI/CD 在“清理项目目录和基于文件的变量”时失败,并显示“错误:作业失败:退出代码 1”

】GitlabCI/CD在“清理项目目录和基于文件的变量”时失败,并显示“错误:作业失败:退出代码1”【英文标题】:GitlabCI/CDfailswhile"Cleaningupprojectdirectoryandfilebasedvariables"with"ERROR:Jobfailed:exitcode1"【发布时间】:2021-11-... 查看详情

ci/cd

 CI持续集成(ContinuousIntegration) CD持续交付(ContinuousDelivery)  CD持续部署(ContinuousDeployment)   查看详情

基于gitlab的ci/cd系统重点记要

...支上的该文件。该文件中通过gitlab提供的关键字、预定义变量、脚本代码等等来规划pipeline和定义Job,实现依据条件控制不同Gitlab-Runner中的执行器进行需要动作,共同完成代码的编译、打包、发布等操作。Gitlab-Runner运行在本地... 查看详情

ci/cd

  查看详情

gitlab的ci/cd配置管理(代码片段)

gitlab的CI/CD配置管理(二)标签(空格分隔):运维系列一:gitlabCI/CD介绍二:配置gitlab的CI/CD的runner三:代码的MAVEN打包环境四:配置gitlab的CI文件五:发布项目一:gitlabCI/CD介绍1.1gitlabCI/CD概述Gitlab是常用的开源git代码管理工具... 查看详情

在 gitlab CI/CD 中使用 GOOGLE_APPLICATION_CREDENTIALS 的最佳实践

...ovider部署GCP实例的GitLab管道。像AWS这样的其他平台有环境变量,如$A 查看详情

基于kubernetes实现ci/cd配置(代码片段)

基于Kubernetes实现CI/CD配置一、基本介绍二、基于Kubernetes实现CI/CD配置1.配置GitLab2.配置Jenkins3.实现CI/CD配置4.验证一、基本介绍基于Kubernetes实现CI/CD配置,其实和往常那些CI/CD配置并没有太大区别。都是通过提交代码,拉取... 查看详情